RE: [PATCH 3/5] hwmon: adt7475: Change to use adt7475_read macro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Guenter-san,

Thank you so much for your help.

> A driver should return the error codes it receives from lower level
> drivers, ie
> in this case the error code from the i2c controller driver. It should
> not modify
> error return codes. In fact, if a driver does modify error return codes,
> static analyzers will complain.

  Noted about this I will try to consider to do this.

Regards,
Ikegami

> -----Original Message-----
> From: Guenter Roeck [mailto:groeck7@xxxxxxxxx] On Behalf Of Guenter
> Roeck
> Sent: Thursday, July 12, 2018 11:06 PM
> To: IKEGAMI Tokunori; Jean Delvare
> Cc: PACKHAM Chris; linux-hwmon@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 3/5] hwmon: adt7475: Change to use adt7475_read macro
> 
> On 07/12/2018 06:47 AM, IKEGAMI Tokunori wrote:
> > Hi Guenter-san,
> >
> > Sorry but let me consult one more thing.
> >
> > Since I have just remembered that there are -EAGAIN and -ETIMEDOUT
> possible to be returned by I2C driver.
> > Those were mentioned to be able to be checked by the hwmon adt7475 driver
> in our company not long ago.
> > Also I have just confirmed the Documentation/i2c/fault-codes so it
> seems still correct.
> >
> > How do you think about this?
> > Still those errors also should be just returned to user space?
> >
> 
> A driver should return the error codes it receives from lower level
> drivers, ie
> in this case the error code from the i2c controller driver. It should
> not modify
> error return codes. In fact, if a driver does modify error return codes,
> static analyzers will complain.
> 
> Hope this helps,
> Guenter
> 
> > Sorry for many times asking you but if you have a time please let me
> know your opinion.
> >
> > Regards,
> > Ikegami
> >
> >> -----Original Message-----
> >> From: IKEGAMI Tokunori
> >> Sent: Thursday, July 12, 2018 3:23 PM
> >> To: 'Guenter Roeck'; Jean Delvare
> >> Cc: PACKHAM Chris; linux-hwmon@xxxxxxxxxxxxxxx
> >> Subject: RE: [PATCH 3/5] hwmon: adt7475: Change to use adt7475_read
> macro
> >>
> >> Hi Guenter-san,
> >>
> >> Thank you so much for the explanation.
> >> I could understand enough it.
> >> I will abandon these patches for now.
> >>
> >>> What is an "I2C error unit" ?
> >>
> >>    The error unit is caused by the I2C isolator failure device then
> bad
> >> I2C signals causes the error.
> >>    Our products have been replaced the device to other new device for
> the
> >> manufacturing.
> >>    But still there are many units using the old device and it is
> possible
> >> to be caused the failure behavior in future.
> >>    We tried to change the I2C clock speed on the error unit but the
> issue
> >> was not able to be resolved.
> >>    By the way we have fixed our original user space driver for other
> >> feature to retry for the error.
> >>
> >>> Yes, the driver should check for errors, but it should report all
> errors
> >>> to user space and neither retry nor silently hide/ignore errors
> (unless
> >>> a problem is known to be a chip problem).
> >>
> >>    I will do consider this in future.
> >>    But at first I will investigate the cause of another voltage
> warning
> >> issue at first.
> >>    It is not caused by the I2C error but sometimes detected the voltage
> >> warning actually.
> >>
> >> Regards,
> >> Ikegami
> >>
> >>> -----Original Message-----
> >>> From: Guenter Roeck [mailto:groeck7@xxxxxxxxx] On Behalf Of Guenter
> >>> Roeck
> >>> Sent: Thursday, July 12, 2018 1:23 PM
> >>> To: IKEGAMI Tokunori; Jean Delvare
> >>> Cc: PACKHAM Chris; linux-hwmon@xxxxxxxxxxxxxxx
> >>> Subject: Re: [PATCH 3/5] hwmon: adt7475: Change to use adt7475_read
> >> macro
> >>>
> >>> On 07/11/2018 09:01 PM, IKEGAMI Tokunori wrote:
> >>>> Hi Guenter-san,
> >>>>
> >>>> Thank you so much for your comments.
> >>>>
> >>>> Oh I see and actually we have some I2C error units in our products.
> >>>> The patch is for the error case mainly.
> >>>
> >>> What is an "I2C error unit" ?
> >>>
> >>>> But I think that sometimes the I2C error is still caused on the normal
> >>> units also actually.
> >>>> I am not sure about that the normal units error behavior is caused
> >> by
> >>> the board (I2C controller) or the chip ADT7476A but probably the
> former
> >>> but not sure.
> >>>> So should these patches not be applied to the adt7475 driver as you
> >>> mentioned?
> >>>>
> >>>
> >>> Drivers are not responsible for handling bad board behavior, so
> retries
> >>> due to controller or board issues should not be handled by the chip
> >>> driver.
> >>> Otherwise we would end up having to sprinkle retries into all i2c
> >> drivers
> >>> in the kernel.
> >>>
> >>> If the problem is caused by the controller, it should be handled in
> >> the
> >>> controller driver. If the problem is caused by bad i2c signals, it
> >> should
> >>> be handled by hardware (or maybe by selecting a different clock
> speed).
> >>>
> >>>> At first I thought that the I2C SMBus APIs return error codes but
> >> adt7475
> >>> driver does not check so it should be checked the error codes.
> >>>> Is this not correct?
> >>>>
> >>>
> >>> Yes, the driver should check for errors, but it should report all
> errors
> >>> to user space and neither retry nor silently hide/ignore errors
> (unless
> >>> a problem is known to be a chip problem).
> >>>
> >>> Guenter
> >>>
> >>>> To make sure let me confirm above.
> >>>>
> >>>> Regards,
> >>>> Ikegami
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: linux-hwmon-owner@xxxxxxxxxxxxxxx
> >>>>> [mailto:linux-hwmon-owner@xxxxxxxxxxxxxxx] On Behalf Of Guenter
> >>> Roeck
> >>>>> Sent: Thursday, July 12, 2018 12:42 PM
> >>>>> To: IKEGAMI Tokunori; Jean Delvare
> >>>>> Cc: PACKHAM Chris; linux-hwmon@xxxxxxxxxxxxxxx
> >>>>> Subject: Re: [PATCH 3/5] hwmon: adt7475: Change to use adt7475_read
> >>> macro
> >>>>>
> >>>>> On 07/11/2018 07:52 PM, IKEGAMI Tokunori wrote:
> >>>>>> Hi Guenter-san,
> >>>>>>
> >>>>>> Thank you so much for your comments.
> >>>>>> Okay now I am thinking to change the adt7475_read macro to a
> function
> >>>>> to repeat for the error case.
> >>>>>> If you have any comment about this please let me know.
> >>>>>
> >>>>> Yes - we should only do this if it is known to be a chip problem.
> >>>>> Patching the chip driver for a board (or i2c controller) problem
> >>>>> is not appropriate.
> >>>>>
> >>>>> Guenter
> >>>>>
> >>>>>> Anyway I will do send v2 version patches later.
> >>>>>>
> >>>>>> Regards,
> >>>>>> Ikegami
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: Guenter Roeck [mailto:groeck7@xxxxxxxxx] On Behalf Of
> >> Guenter
> >>>>>>> Roeck
> >>>>>>> Sent: Thursday, July 12, 2018 10:50 AM
> >>>>>>> To: IKEGAMI Tokunori; Jean Delvare
> >>>>>>> Cc: PACKHAM Chris; linux-hwmon@xxxxxxxxxxxxxxx
> >>>>>>> Subject: Re: [PATCH 3/5] hwmon: adt7475: Change to use
> >> adt7475_read
> >>>>> macro
> >>>>>>>
> >>>>>>> On 07/11/2018 06:04 PM, Tokunori Ikegami wrote:
> >>>>>>>> It shoudl be same as with other functions to use adt7475_read.
> >>>>>>>> So change to use it instead of i2c_smbus_read_byte_data.
> >>>>>>>>
> >>>>>>>
> >>>>>>> I don't see a point in this change. Replacing a function name
> >> doesn't
> >>>>>>> make
> >>>>>>> the code easier to read. If anything, you could consider dropping
> >>>>>>> adt7475_read
> >>>>>>> and calling i2c_smbus_read_byte_data() directly.
> >>>>>>>
> >>>>>>> Guenter
> >>>>>>>
> >>>>>>>> Signed-off-by: Tokunori Ikegami
> <ikegami@xxxxxxxxxxxxxxxxxxxx>
> >>>>>>>> Cc: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>
> >>>>>>>> Cc: linux-hwmon@xxxxxxxxxxxxxxx
> >>>>>>>> ---
> >>>>>>>>      drivers/hwmon/adt7475.c | 2 +-
> >>>>>>>>      1 file changed, 1 insertion(+), 1 deletion(-)
> >>>>>>>>
> >>>>>>>> diff --git a/drivers/hwmon/adt7475.c
> b/drivers/hwmon/adt7475.c
> >>>>>>>> index a40eb62ee6b1..bad250729e99 100644
> >>>>>>>> --- a/drivers/hwmon/adt7475.c
> >>>>>>>> +++ b/drivers/hwmon/adt7475.c
> >>>>>>>> @@ -1012,7 +1012,7 @@ static ssize_t
> >>>>>>> pwm_use_point2_pwm_at_crit_store(struct device *dev,
> >>>>>>>>      		return -EINVAL;
> >>>>>>>>
> >>>>>>>>      	mutex_lock(&data->lock);
> >>>>>>>> -	data->config4 = i2c_smbus_read_byte_data(client,
> >>>>>>> REG_CONFIG4);
> >>>>>>>> +	data->config4 = adt7475_read(REG_CONFIG4);
> >>>>>>>>      	if (val)
> >>>>>>>>      		data->config4 |= CONFIG4_MAXDUTY;
> >>>>>>>>      	else
> >>>>>>>>
> >>>>>>
> >>>>>
> >>>>> --
> >>>>> To unsubscribe from this list: send the line "unsubscribe
> >> linux-hwmon"
> >>>>> in
> >>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >>>>> More majordomo info at
> >> http://vger.kernel.org/majordomo-info.html
> >

��.n��������+%������w��{.n�����{��&��^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�

[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux