Add comment explaining why smbus_disable is needed in probe

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Guenter Roeck
2017-12-03 10:28:15 -08:00
parent 348c4c1272
commit 6d26a04b3b

11
it87.c
View File

@@ -3949,6 +3949,17 @@ static int it87_probe(struct platform_device *pdev)
/* Initialize register pointers */ /* Initialize register pointers */
it87_init_regs(pdev); it87_init_regs(pdev);
/*
* We need to disable SMBus before we can read any registers in
* the envmon address space, even if it is for chip identification
* purposes. If the chip has SMBus client support, it likely also has
* multi-page envmon registers, so we have to set the page anyway
* before accessing those registers. Kind of a chicken-and-egg
* problem.
* Fortunately, the chip was already identified through the SIO
* address space, only recent chips are affected, and this is just
* an additional safeguard.
*/
err = smbus_disable(data); err = smbus_disable(data);
if (err) if (err)
return err; return err;