Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0ae87a4 authored by Jean Delvare's avatar Jean Delvare Committed by Mark M. Hoffman
Browse files

hwmon: (lm90) Use generic i2c reads during detection



As indirectly reported by Olof Johansson, the lm90 driver uses a
custom i2c read function even during detection, at which point we
don't know yet what device we're talking with. It would make more
sense to only use the generic i2c read function at this point, so
that we don't log irrelevant errors on misdetection.

Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarMark M. Hoffman <mhoffman@lightlink.com>
parent 72240307
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -531,24 +531,24 @@ static int lm90_detect(struct i2c_adapter *adapter, int address, int kind)
		kind = lm90;

	if (kind < 0) { /* detection and identification */
		u8 man_id, chip_id, reg_config1, reg_convrate;

		if (lm90_read_reg(new_client, LM90_REG_R_MAN_ID,
				  &man_id) < 0
		 || lm90_read_reg(new_client, LM90_REG_R_CHIP_ID,
		 		  &chip_id) < 0
		 || lm90_read_reg(new_client, LM90_REG_R_CONFIG1,
		 		  &reg_config1) < 0
		 || lm90_read_reg(new_client, LM90_REG_R_CONVRATE,
		 		  &reg_convrate) < 0)
		int man_id, chip_id, reg_config1, reg_convrate;

		if ((man_id = i2c_smbus_read_byte_data(new_client,
						LM90_REG_R_MAN_ID)) < 0
		 || (chip_id = i2c_smbus_read_byte_data(new_client,
						LM90_REG_R_CHIP_ID)) < 0
		 || (reg_config1 = i2c_smbus_read_byte_data(new_client,
						LM90_REG_R_CONFIG1)) < 0
		 || (reg_convrate = i2c_smbus_read_byte_data(new_client,
						LM90_REG_R_CONVRATE)) < 0)
			goto exit_free;
		
		if ((address == 0x4C || address == 0x4D)
		 && man_id == 0x01) { /* National Semiconductor */
			u8 reg_config2;
			int reg_config2;

			if (lm90_read_reg(new_client, LM90_REG_R_CONFIG2,
					  &reg_config2) < 0)
			if ((reg_config2 = i2c_smbus_read_byte_data(new_client,
						LM90_REG_R_CONFIG2)) < 0)
				goto exit_free;

			if ((reg_config1 & 0x2A) == 0x00