diff options
-rw-r--r-- | drivers/gpio/gpio-ts5500.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/gpio/gpio-ts5500.c b/drivers/gpio/gpio-ts5500.c index 5f945083f9d8..6cfeba07f882 100644 --- a/drivers/gpio/gpio-ts5500.c +++ b/drivers/gpio/gpio-ts5500.c | |||
@@ -409,7 +409,7 @@ static int ts5500_dio_probe(struct platform_device *pdev) | |||
409 | break; | 409 | break; |
410 | } | 410 | } |
411 | 411 | ||
412 | ret = gpiochip_add_data(&priv->gpio_chip, priv); | 412 | ret = devm_gpiochip_add_data(dev, &priv->gpio_chip, priv); |
413 | if (ret) { | 413 | if (ret) { |
414 | dev_err(dev, "failed to register the gpio chip\n"); | 414 | dev_err(dev, "failed to register the gpio chip\n"); |
415 | return ret; | 415 | return ret; |
@@ -418,13 +418,10 @@ static int ts5500_dio_probe(struct platform_device *pdev) | |||
418 | ret = ts5500_enable_irq(priv); | 418 | ret = ts5500_enable_irq(priv); |
419 | if (ret) { | 419 | if (ret) { |
420 | dev_err(dev, "invalid interrupt %d\n", priv->hwirq); | 420 | dev_err(dev, "invalid interrupt %d\n", priv->hwirq); |
421 | goto cleanup; | 421 | return ret; |
422 | } | 422 | } |
423 | 423 | ||
424 | return 0; | 424 | return 0; |
425 | cleanup: | ||
426 | gpiochip_remove(&priv->gpio_chip); | ||
427 | return ret; | ||
428 | } | 425 | } |
429 | 426 | ||
430 | static int ts5500_dio_remove(struct platform_device *pdev) | 427 | static int ts5500_dio_remove(struct platform_device *pdev) |
@@ -432,7 +429,7 @@ static int ts5500_dio_remove(struct platform_device *pdev) | |||
432 | struct ts5500_priv *priv = platform_get_drvdata(pdev); | 429 | struct ts5500_priv *priv = platform_get_drvdata(pdev); |
433 | 430 | ||
434 | ts5500_disable_irq(priv); | 431 | ts5500_disable_irq(priv); |
435 | gpiochip_remove(&priv->gpio_chip); | 432 | |
436 | return 0; | 433 | return 0; |
437 | } | 434 | } |
438 | 435 | ||