diff options
author | Jean Delvare <jdelvare@suse.de> | 2014-11-12 04:24:07 -0500 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2014-11-12 10:26:32 -0500 |
commit | ae9447171748180d4e946839c5eed6123f07f943 (patch) | |
tree | 81c59814e9f22eb01626ec7d4a8e0558405f2987 /drivers/i2c | |
parent | b3b8df97723d84c826d7419bf727a711a4efa068 (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.c | 6 |
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) | |||
1269 | exit_free_irq: | 1270 | exit_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); |
1272 | exit_release: | ||
1273 | pci_release_region(dev, SMBBAR); | 1273 | pci_release_region(dev, SMBBAR); |
1274 | exit: | 1274 | exit: |
1275 | kfree(priv); | 1275 | kfree(priv); |