aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c
diff options
context:
space:
mode:
authorJean Delvare <jdelvare@suse.de>2014-11-12 04:24:07 -0500
committerWolfram Sang <wsa@the-dreams.de>2014-11-12 10:26:32 -0500
commitae9447171748180d4e946839c5eed6123f07f943 (patch)
tree81c59814e9f22eb01626ec7d4a8e0558405f2987 /drivers/i2c
parentb3b8df97723d84c826d7419bf727a711a4efa068 (diff)
i2c: i801: Fallback to polling if request_irq() fails
The i2c-i801 driver can work without interrupts, so there is no reason to make a request_irq failure fatal. Instead we can simply fallback to polling. Signed-off-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/busses/i2c-i801.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 67661bbcbdd3..a6f3bc38fbe5 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -1239,10 +1239,11 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
1239 if (err) { 1239 if (err) {
1240 dev_err(&dev->dev, "Failed to allocate irq %d: %d\n", 1240 dev_err(&dev->dev, "Failed to allocate irq %d: %d\n",
1241 dev->irq, err); 1241 dev->irq, err);
1242 goto exit_release; 1242 priv->features &= ~FEATURE_IRQ;
1243 } 1243 }
1244 dev_info(&dev->dev, "SMBus using PCI Interrupt\n");
1245 } 1244 }
1245 dev_info(&dev->dev, "SMBus using %s\n",
1246 priv->features & FEATURE_IRQ ? "PCI interrupt" : "polling");
1246 1247
1247 /* set up the sysfs linkage to our parent device */ 1248 /* set up the sysfs linkage to our parent device */
1248 priv->adapter.dev.parent = &dev->dev; 1249 priv->adapter.dev.parent = &dev->dev;
@@ -1269,7 +1270,6 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
1269exit_free_irq: 1270exit_free_irq:
1270 if (priv->features & FEATURE_IRQ) 1271 if (priv->features & FEATURE_IRQ)
1271 free_irq(dev->irq, priv); 1272 free_irq(dev->irq, priv);
1272exit_release:
1273 pci_release_region(dev, SMBBAR); 1273 pci_release_region(dev, SMBBAR);
1274exit: 1274exit:
1275 kfree(priv); 1275 kfree(priv);