hwmon: (emc2305) fix unable to probe emc2301/2/3
authorXingjiang Qiao <nanpuyue@gmail.com>
Tue, 6 Dec 2022 05:53:30 +0000 (13:53 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:32:23 +0000 (13:32 +0100)
[ Upstream commit 4d50591ebf60ccf79380fff3a4c23659c61c482f ]

The definitions of 'EMC2305_REG_PRODUCT_ID' and 'EMC2305_REG_DEVICE' are
both '0xfd', they actually return the same value, but the values returned
by emc2301/2/3/5 are different, so probe emc2301/2/3 will fail, This patch
fixes that.

Signed-off-by: Xingjiang Qiao <nanpuyue@gmail.com>
Link: https://lore.kernel.org/r/20221206055331.170459-1-nanpuyue@gmail.com
Fixes: 0d8400c5a2ce1 ("hwmon: (emc2305) add support for EMC2301/2/3/5 RPM-based PWM Fan Speed Controller.")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hwmon/emc2305.c

index aa1f25a..9a78ca2 100644 (file)
@@ -16,7 +16,6 @@ static const unsigned short
 emc2305_normal_i2c[] = { 0x27, 0x2c, 0x2d, 0x2e, 0x2f, 0x4c, 0x4d, I2C_CLIENT_END };
 
 #define EMC2305_REG_DRIVE_FAIL_STATUS  0x27
-#define EMC2305_REG_DEVICE             0xfd
 #define EMC2305_REG_VENDOR             0xfe
 #define EMC2305_FAN_MAX                        0xff
 #define EMC2305_FAN_MIN                        0x00
@@ -524,7 +523,7 @@ static int emc2305_probe(struct i2c_client *client, const struct i2c_device_id *
        struct device *dev = &client->dev;
        struct emc2305_data *data;
        struct emc2305_platform_data *pdata;
-       int vendor, device;
+       int vendor;
        int ret;
        int i;
 
@@ -535,10 +534,6 @@ static int emc2305_probe(struct i2c_client *client, const struct i2c_device_id *
        if (vendor != EMC2305_VENDOR)
                return -ENODEV;
 
-       device = i2c_smbus_read_byte_data(client, EMC2305_REG_DEVICE);
-       if (device != EMC2305_DEVICE)
-               return -ENODEV;
-
        data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
        if (!data)
                return -ENOMEM;