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

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

[PATCH] hwmon: Fix reboot on it87 driver load



Only scan I2C address 0x2d. This is the default address and no IT87xxF
chip was ever seen on I2C at a different address. These chips are
better accessed through their ISA interface anyway.

This fixes bug #5889, although it doesn't address the whole class
of problems. We'd need the ability to blacklist arbitrary I2C addresses
on systems known to contain I2C devices which behave badly when probed.

Plan the I2C interface for removal as well. If nobody complains within
a year, it will confirm my impression that the I2C interface isn't
actually needed by anyone.

Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent e53004e2
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -162,3 +162,12 @@ What: pci_module_init(driver)
When:	January 2007
Why:	Is replaced by pci_register_driver(pci_driver).
Who:	Richard Knutsson <ricknu-0@student.ltu.se> and Greg Kroah-Hartman <gregkh@suse.de>

---------------------------

What:	I2C interface of the it87 driver
When:	January 2007
Why:	The ISA interface is faster and should be always available. The I2C
	probing is also known to cause trouble in at least one case (see
	bug #5889.)
Who:	Jean Delvare <khali@linux-fr.org>
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ Supported chips:
               http://www.ite.com.tw/
  * IT8712F
    Prefix: 'it8712'
    Addresses scanned: I2C 0x28 - 0x2f
    Addresses scanned: I2C 0x2d
                       from Super I/O config space (8 I/O ports)
    Datasheet: Publicly available at the ITE website
               http://www.ite.com.tw/
+6 −2
Original line number Diff line number Diff line
@@ -45,8 +45,7 @@


/* Addresses to scan */
static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
					0x2e, 0x2f, I2C_CLIENT_END };
static unsigned short normal_i2c[] = { 0x2d, I2C_CLIENT_END };
static unsigned short isa_address;

/* Insmod parameters */
@@ -830,6 +829,11 @@ static int it87_detect(struct i2c_adapter *adapter, int address, int kind)
	if ((err = i2c_attach_client(new_client)))
		goto ERROR2;

	if (!is_isa)
		dev_info(&new_client->dev, "The I2C interface to IT87xxF "
			 "hardware monitoring chips is deprecated. Please "
			 "report if you still rely on it.\n");

	/* Check PWM configuration */
	enable_pwm_interface = it87_check_pwm(new_client);