diff options
Diffstat (limited to 'drivers/i2c')
| -rw-r--r-- | drivers/i2c/busses/i2c-iop3xx.c | 9 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-mpc.c | 5 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-mv64xxx.c | 4 |
3 files changed, 16 insertions, 2 deletions
diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c index 1414851a17b8..d00a02fc23e4 100644 --- a/drivers/i2c/busses/i2c-iop3xx.c +++ b/drivers/i2c/busses/i2c-iop3xx.c | |||
| @@ -434,7 +434,7 @@ static int | |||
| 434 | iop3xx_i2c_probe(struct platform_device *pdev) | 434 | iop3xx_i2c_probe(struct platform_device *pdev) |
| 435 | { | 435 | { |
| 436 | struct resource *res; | 436 | struct resource *res; |
| 437 | int ret; | 437 | int ret, irq; |
| 438 | struct i2c_adapter *new_adapter; | 438 | struct i2c_adapter *new_adapter; |
| 439 | struct i2c_algo_iop3xx_data *adapter_data; | 439 | struct i2c_algo_iop3xx_data *adapter_data; |
| 440 | 440 | ||
| @@ -470,7 +470,12 @@ iop3xx_i2c_probe(struct platform_device *pdev) | |||
| 470 | goto release_region; | 470 | goto release_region; |
| 471 | } | 471 | } |
| 472 | 472 | ||
| 473 | ret = request_irq(platform_get_irq(pdev, 0), iop3xx_i2c_irq_handler, 0, | 473 | irq = platform_get_irq(pdev, 0); |
| 474 | if (irq < 0) { | ||
| 475 | ret = -ENXIO; | ||
| 476 | goto unmap; | ||
| 477 | } | ||
| 478 | ret = request_irq(irq, iop3xx_i2c_irq_handler, 0, | ||
| 474 | pdev->name, adapter_data); | 479 | pdev->name, adapter_data); |
| 475 | 480 | ||
| 476 | if (ret) { | 481 | if (ret) { |
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c index 5ccd338a9dc9..2721e4c8184a 100644 --- a/drivers/i2c/busses/i2c-mpc.c +++ b/drivers/i2c/busses/i2c-mpc.c | |||
| @@ -302,6 +302,10 @@ static int fsl_i2c_probe(struct platform_device *pdev) | |||
| 302 | } | 302 | } |
| 303 | 303 | ||
| 304 | i2c->irq = platform_get_irq(pdev, 0); | 304 | i2c->irq = platform_get_irq(pdev, 0); |
| 305 | if (i2c->irq < 0) { | ||
| 306 | result = -ENXIO; | ||
| 307 | goto fail_get_irq; | ||
| 308 | } | ||
| 305 | i2c->flags = pdata->device_flags; | 309 | i2c->flags = pdata->device_flags; |
| 306 | init_waitqueue_head(&i2c->queue); | 310 | init_waitqueue_head(&i2c->queue); |
| 307 | 311 | ||
| @@ -340,6 +344,7 @@ static int fsl_i2c_probe(struct platform_device *pdev) | |||
| 340 | fail_irq: | 344 | fail_irq: |
| 341 | iounmap(i2c->base); | 345 | iounmap(i2c->base); |
| 342 | fail_map: | 346 | fail_map: |
| 347 | fail_get_irq: | ||
| 343 | kfree(i2c); | 348 | kfree(i2c); |
| 344 | return result; | 349 | return result; |
| 345 | }; | 350 | }; |
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c index 22781d84f79f..ac5cde1bbd2b 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c | |||
| @@ -516,6 +516,10 @@ mv64xxx_i2c_probe(struct platform_device *pd) | |||
| 516 | drv_data->freq_m = pdata->freq_m; | 516 | drv_data->freq_m = pdata->freq_m; |
| 517 | drv_data->freq_n = pdata->freq_n; | 517 | drv_data->freq_n = pdata->freq_n; |
| 518 | drv_data->irq = platform_get_irq(pd, 0); | 518 | drv_data->irq = platform_get_irq(pd, 0); |
| 519 | if (drv_data->irq < 0) { | ||
| 520 | rc = -ENXIO; | ||
| 521 | goto exit_unmap_regs; | ||
| 522 | } | ||
| 519 | drv_data->adapter.id = I2C_HW_MV64XXX; | 523 | drv_data->adapter.id = I2C_HW_MV64XXX; |
| 520 | drv_data->adapter.algo = &mv64xxx_i2c_algo; | 524 | drv_data->adapter.algo = &mv64xxx_i2c_algo; |
| 521 | drv_data->adapter.owner = THIS_MODULE; | 525 | drv_data->adapter.owner = THIS_MODULE; |
