diff options
-rw-r--r-- | drivers/i2c/busses/i2c-i801.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index c31699d8df3a..0b1b1ae5e228 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c | |||
@@ -502,7 +502,7 @@ static s32 i801_access(struct i2c_adapter * adap, u16 addr, | |||
502 | /* Some BIOSes don't like it when PEC is enabled at reboot or resume | 502 | /* Some BIOSes don't like it when PEC is enabled at reboot or resume |
503 | time, so we forcibly disable it after every transaction. Turn off | 503 | time, so we forcibly disable it after every transaction. Turn off |
504 | E32B for the same reason. */ | 504 | E32B for the same reason. */ |
505 | if (hwpec) | 505 | if (hwpec || block) |
506 | outb_p(inb_p(SMBAUXCTL) & ~(SMBAUXCTL_CRC | SMBAUXCTL_E32B), | 506 | outb_p(inb_p(SMBAUXCTL) & ~(SMBAUXCTL_CRC | SMBAUXCTL_E32B), |
507 | SMBAUXCTL); | 507 | SMBAUXCTL); |
508 | 508 | ||
@@ -625,6 +625,11 @@ static int __devinit i801_probe(struct pci_dev *dev, const struct pci_device_id | |||
625 | else | 625 | else |
626 | dev_dbg(&dev->dev, "SMBus using PCI Interrupt\n"); | 626 | dev_dbg(&dev->dev, "SMBus using PCI Interrupt\n"); |
627 | 627 | ||
628 | /* Clear special mode bits */ | ||
629 | if (i801_features & (FEATURE_SMBUS_PEC | FEATURE_BLOCK_BUFFER)) | ||
630 | outb_p(inb_p(SMBAUXCTL) & ~(SMBAUXCTL_CRC | SMBAUXCTL_E32B), | ||
631 | SMBAUXCTL); | ||
632 | |||
628 | /* set up the sysfs linkage to our parent device */ | 633 | /* set up the sysfs linkage to our parent device */ |
629 | i801_adapter.dev.parent = &dev->dev; | 634 | i801_adapter.dev.parent = &dev->dev; |
630 | 635 | ||