summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2012-07-24 14:13:59 +0200
committerJean Delvare <khali@endymion.delvare>2012-07-24 14:13:59 +0200
commit29b608540b030d38a978c972cbe99d40efdb7267 (patch)
treedf817d0745398435629f4bb8b7c8334137e18f7f
parent636752bcb5177a301d0266270661581de8624828 (diff)
i2c-i801: Enable interrupts on ICH5/7/8/9/10
Enable interrupts on more devices. ICH5, ICH7(-M) and ICH10 have been tested to work OK. ICH8 and ICH9 are expected to work just fine as they are very close to ICH7 and ICH10. Ultimately we want to enable this feature on at least every device since the ICH5, but for now we limit the exposure. We'll enable it for other devices if we don't get negative feedback. As a bonus, let the user know when interrupts are used. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Daniel Kurtz <djkurtz@chromium.org>
-rw-r--r--drivers/i2c/busses/i2c-i801.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index bcce18dfcc3..003196fffd2 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -863,8 +863,14 @@ static int __devinit i801_probe(struct pci_dev *dev,
break;
}
- /* IRQ processing only tested on CougarPoint PCH */
- if (dev->device == PCI_DEVICE_ID_INTEL_COUGARPOINT_SMBUS)
+ /* IRQ processing tested on CougarPoint PCH, ICH5, ICH7-M and ICH10 */
+ if (dev->device == PCI_DEVICE_ID_INTEL_COUGARPOINT_SMBUS ||
+ dev->device == PCI_DEVICE_ID_INTEL_82801EB_3 ||
+ dev->device == PCI_DEVICE_ID_INTEL_ICH7_17 ||
+ dev->device == PCI_DEVICE_ID_INTEL_ICH8_5 ||
+ dev->device == PCI_DEVICE_ID_INTEL_ICH9_6 ||
+ dev->device == PCI_DEVICE_ID_INTEL_ICH10_4 ||
+ dev->device == PCI_DEVICE_ID_INTEL_ICH10_5)
priv->features |= FEATURE_IRQ;
/* Disable features on user request */
@@ -918,8 +924,6 @@ static int __devinit i801_probe(struct pci_dev *dev,
dev_dbg(&dev->dev, "SMBus using interrupt SMI#\n");
/* Disable SMBus interrupt feature if SMBus using SMI# */
priv->features &= ~FEATURE_IRQ;
- } else {
- dev_dbg(&dev->dev, "SMBus using PCI Interrupt\n");
}
/* Clear special mode bits */
@@ -937,6 +941,7 @@ static int __devinit i801_probe(struct pci_dev *dev,
dev->irq, err);
goto exit_release;
}
+ dev_info(&dev->dev, "SMBus using PCI Interrupt\n");
}
/* set up the sysfs linkage to our parent device */