aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-dln2.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2016-02-22 07:13:28 -0500
committerLaxman Dewangan <ldewangan@nvidia.com>2016-02-23 10:05:30 -0500
commit1ab79a6ad5673d1e1646732c0ce984ce9d8e0fdc (patch)
treee35821f5aa58338e81f5560d7bd31a659304451f /drivers/gpio/gpio-dln2.c
parent7e9104ccb3c8be1bc4b9c62036465ac227c1c00d (diff)
gpio: dln2: Use devm_gpiochip_add_data() for gpio registration
Use devm_gpiochip_add_data() for GPIO registration. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/gpio/gpio-dln2.c')
-rw-r--r--drivers/gpio/gpio-dln2.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/gpio/gpio-dln2.c b/drivers/gpio/gpio-dln2.c
index e11a7d126e74..f7a60a441e95 100644
--- a/drivers/gpio/gpio-dln2.c
+++ b/drivers/gpio/gpio-dln2.c
@@ -479,40 +479,32 @@ static int dln2_gpio_probe(struct platform_device *pdev)
479 479
480 platform_set_drvdata(pdev, dln2); 480 platform_set_drvdata(pdev, dln2);
481 481
482 ret = gpiochip_add_data(&dln2->gpio, dln2); 482 ret = devm_gpiochip_add_data(dev, &dln2->gpio, dln2);
483 if (ret < 0) { 483 if (ret < 0) {
484 dev_err(dev, "failed to add gpio chip: %d\n", ret); 484 dev_err(dev, "failed to add gpio chip: %d\n", ret);
485 goto out; 485 return ret;
486 } 486 }
487 487
488 ret = gpiochip_irqchip_add(&dln2->gpio, &dln2_gpio_irqchip, 0, 488 ret = gpiochip_irqchip_add(&dln2->gpio, &dln2_gpio_irqchip, 0,
489 handle_simple_irq, IRQ_TYPE_NONE); 489 handle_simple_irq, IRQ_TYPE_NONE);
490 if (ret < 0) { 490 if (ret < 0) {
491 dev_err(dev, "failed to add irq chip: %d\n", ret); 491 dev_err(dev, "failed to add irq chip: %d\n", ret);
492 goto out_gpiochip_remove; 492 return ret;
493 } 493 }
494 494
495 ret = dln2_register_event_cb(pdev, DLN2_GPIO_CONDITION_MET_EV, 495 ret = dln2_register_event_cb(pdev, DLN2_GPIO_CONDITION_MET_EV,
496 dln2_gpio_event); 496 dln2_gpio_event);
497 if (ret) { 497 if (ret) {
498 dev_err(dev, "failed to register event cb: %d\n", ret); 498 dev_err(dev, "failed to register event cb: %d\n", ret);
499 goto out_gpiochip_remove; 499 return ret;
500 } 500 }
501 501
502 return 0; 502 return 0;
503
504out_gpiochip_remove:
505 gpiochip_remove(&dln2->gpio);
506out:
507 return ret;
508} 503}
509 504
510static int dln2_gpio_remove(struct platform_device *pdev) 505static int dln2_gpio_remove(struct platform_device *pdev)
511{ 506{
512 struct dln2_gpio *dln2 = platform_get_drvdata(pdev);
513
514 dln2_unregister_event_cb(pdev, DLN2_GPIO_CONDITION_MET_EV); 507 dln2_unregister_event_cb(pdev, DLN2_GPIO_CONDITION_MET_EV);
515 gpiochip_remove(&dln2->gpio);
516 508
517 return 0; 509 return 0;
518} 510}