Re: [PATCH] lm75: add lm75b detection

From: Guenter Roeck
Date: Tue Oct 29 2019 - 10:03:01 EST


On 10/28/19 2:46 AM, Jean Delvare wrote:
On Sun, 27 Oct 2019 16:03:39 -0700, Guenter Roeck wrote:
On 10/26/19 1:10 AM, Rain Wang wrote:
The National Semiconductor LM75B is very similar as the
LM75A, but it has no ID byte register 7, and unused registers
return 0xff rather than the last read value like LM75A.

Please send hwmon-related patches to the linux-hwmon list.

Signed-off-by: Rain Wang <rain_wang@xxxxxxxxx>

I am quite hesitant to touch the detect function for this chip.
Each addition increases the risk for false positives. What is the
use case ?

I'm positively certain I don't want this. Ideally there should be no
detection at all for device without ID registers. The only reason there
are some occurrences of that is because there were no way to explicitly
instantiate I2C devices back then, and we have left the detection in
place to avoid perceived regressions. But today there are plenty of
ways to explicitly instantiate your I2C devices so there are no excuses
for more crappy detect functions. Ideally we would even get rid of
existing ones at some point in the future.

This patch is bad anyway as it only changes the device name without
implementing proper support for the LM75B.

FWIW, I don't think there is anything to implement; I don't see any
differences in functionality.

I am much more concerned about weakening the already weak detection even further:
As written, each chip with register 0x07 != 0xa1 will be identified as LM75B.
Even if that was strengthened to actually check if the register value is 0xff,
we have no idea what other vendors might implement in those registers. it would
most certainly mis-identify LM75C as LM75B. Not that it really matters if
the chip _is_ a LM75C, but who knows if other chips fit that identification
pattern.

Overall, my suggestion is to add a small startup script to affected systems
to instantiate the chip directly, and avoid weakening the detect function.

Guenter