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

Commit e693810c authored by Jean Delvare's avatar Jean Delvare Committed by Greg Kroah-Hartman
Browse files

hwmon: Let w83781d and lm78 load again



Let the w83781d and lm78 hardware monitoring drivers load even when
no chip was detected at the ISA address. There can still be supported
chips connected to an I2C bus or SMBus.

This fixes bug #7293.

Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 14992c7e
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -815,17 +815,17 @@ static int __init sm_lm78_init(void)
	if (res)
		return res;

	res = i2c_isa_add_driver(&lm78_isa_driver);
	if (res) {
		i2c_del_driver(&lm78_driver);
		return res;
	}
	/* Don't exit if this one fails, we still want the I2C variants
	   to work! */
	if (i2c_isa_add_driver(&lm78_isa_driver))
		isa_address = 0;

	return 0;
}

static void __exit sm_lm78_exit(void)
{
	if (isa_address)
		i2c_isa_del_driver(&lm78_isa_driver);
	i2c_del_driver(&lm78_driver);
}
+6 −6
Original line number Diff line number Diff line
@@ -1685,11 +1685,10 @@ sensors_w83781d_init(void)
	if (res)
		return res;

	res = i2c_isa_add_driver(&w83781d_isa_driver);
	if (res) {
		i2c_del_driver(&w83781d_driver);
		return res;
	}
	/* Don't exit if this one fails, we still want the I2C variants
	   to work! */
	if (i2c_isa_add_driver(&w83781d_isa_driver))
		isa_address = 0;

	return 0;
}
@@ -1697,6 +1696,7 @@ sensors_w83781d_init(void)
static void __exit
sensors_w83781d_exit(void)
{
	if (isa_address)
		i2c_isa_del_driver(&w83781d_isa_driver);
	i2c_del_driver(&w83781d_driver);
}
+1 −1
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ int i2c_isa_add_driver(struct i2c_driver *driver)
	/* Now look for clients */
	res = driver->attach_adapter(&isa_adapter);
	if (res) {
		dev_err(&isa_adapter.dev,
		dev_dbg(&isa_adapter.dev,
			"Driver %s failed to attach adapter, unregistering\n",
			driver->driver.name);
		driver_unregister(&driver->driver);