diff options
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/da903x.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/mfd/da903x.c b/drivers/mfd/da903x.c index c07aece900fb..2fadbaeb1cb1 100644 --- a/drivers/mfd/da903x.c +++ b/drivers/mfd/da903x.c | |||
@@ -470,13 +470,19 @@ static int __devinit da903x_add_subdevs(struct da903x_chip *chip, | |||
470 | subdev = &pdata->subdevs[i]; | 470 | subdev = &pdata->subdevs[i]; |
471 | 471 | ||
472 | pdev = platform_device_alloc(subdev->name, subdev->id); | 472 | pdev = platform_device_alloc(subdev->name, subdev->id); |
473 | if (!pdev) { | ||
474 | ret = -ENOMEM; | ||
475 | goto failed; | ||
476 | } | ||
473 | 477 | ||
474 | pdev->dev.parent = chip->dev; | 478 | pdev->dev.parent = chip->dev; |
475 | pdev->dev.platform_data = subdev->platform_data; | 479 | pdev->dev.platform_data = subdev->platform_data; |
476 | 480 | ||
477 | ret = platform_device_add(pdev); | 481 | ret = platform_device_add(pdev); |
478 | if (ret) | 482 | if (ret) { |
483 | platform_device_put(pdev); | ||
479 | goto failed; | 484 | goto failed; |
485 | } | ||
480 | } | 486 | } |
481 | return 0; | 487 | return 0; |
482 | 488 | ||