diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 12:25:15 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-21 12:25:15 -0500 |
| commit | 08a4ecee986dd98e86090ff5faac4782b6765aed (patch) | |
| tree | 74df5de49f38c432a6a18303b0c6d834fd09028f /drivers/i2c | |
| parent | ba93c6297b9cfad5a70b5e5ed13c9dbead6601d3 (diff) | |
| parent | b3229087c5e08589cea4f5040dab56f7dc11332a (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (23 commits)
[PATCH] sysfs: fix a kobject leak in sysfs_add_link on the error path
[PATCH] sysfs: don't export dir symbols
[PATCH] get_cpu_sysdev() signedness fix
[PATCH] kobject_add_dir
[PATCH] debugfs: Add debugfs_create_blob() helper for exporting binary data
[PATCH] sysfs: fix problem with duplicate sysfs directories and files
[PATCH] Kobject: kobject.h: fix a typo
[PATCH] Kobject: provide better warning messages when people do stupid things
[PATCH] Driver core: add macros notice(), dev_notice()
[PATCH] firmware: fix BUG: in fw_realloc_buffer
[PATCH] sysfs: kzalloc conversion
[PATCH] fix module sysfs files reference counting
[PATCH] add EXPORT_SYMBOL_GPL_FUTURE() to USB subsystem
[PATCH] add EXPORT_SYMBOL_GPL_FUTURE() to RCU subsystem
[PATCH] add EXPORT_SYMBOL_GPL_FUTURE()
[PATCH] Clean up module.c symbol searching logic
[PATCH] kobj_map semaphore to mutex conversion
[PATCH] kref: avoid an atomic operation in kref_put()
[PATCH] handle errors returned by platform_get_irq*()
[PATCH] driver core: platform_get_irq*(): return -ENXIO on error
...
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; |
