Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

mfd: ab8500-gpadc: Complain if we fail to enable vtvout LDO

Since commit c8801a8e
"regulator: core: Mark all get and enable calls as __must_check",
we must check return value of regulator_enable() to silence below build warning.

CC drivers/mfd/ab8500-gpadc.o
drivers/mfd/ab8500-gpadc.c: In function 'ab8500_gpadc_runtime_resume':
drivers/mfd/ab8500-gpadc.c:598:18: warning: ignoring return value of 'regulator_enable', declared with attribute warn_unused_result [-Wunused-result]
drivers/mfd/ab8500-gpadc.c: In function 'ab8500_gpadc_probe':
drivers/mfd/ab8500-gpadc.c:655:18: warning: ignoring return value of 'regulator_enable', declared with attribute warn_unused_result [-Wunused-result]

Also convert to devm_regulator_get(), this fixes a missing regulator_put() call
in ab8500_gpadc_remove().

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

authored by

Axel Lin and committed by
Samuel Ortiz
54fc4037 fd860195

+13 -4
+13 -4
drivers/mfd/ab8500-gpadc.c
··· 594 594 static int ab8500_gpadc_runtime_resume(struct device *dev) 595 595 { 596 596 struct ab8500_gpadc *gpadc = dev_get_drvdata(dev); 597 + int ret; 597 598 598 - regulator_enable(gpadc->regu); 599 - return 0; 599 + ret = regulator_enable(gpadc->regu); 600 + if (ret) 601 + dev_err(dev, "Failed to enable vtvout LDO: %d\n", ret); 602 + return ret; 600 603 } 601 604 602 605 static int ab8500_gpadc_runtime_idle(struct device *dev) ··· 646 643 } 647 644 648 645 /* VTVout LDO used to power up ab8500-GPADC */ 649 - gpadc->regu = regulator_get(&pdev->dev, "vddadc"); 646 + gpadc->regu = devm_regulator_get(&pdev->dev, "vddadc"); 650 647 if (IS_ERR(gpadc->regu)) { 651 648 ret = PTR_ERR(gpadc->regu); 652 649 dev_err(gpadc->dev, "failed to get vtvout LDO\n"); ··· 655 652 656 653 platform_set_drvdata(pdev, gpadc); 657 654 658 - regulator_enable(gpadc->regu); 655 + ret = regulator_enable(gpadc->regu); 656 + if (ret) { 657 + dev_err(gpadc->dev, "Failed to enable vtvout LDO: %d\n", ret); 658 + goto fail_enable; 659 + } 659 660 660 661 pm_runtime_set_autosuspend_delay(gpadc->dev, GPADC_AUDOSUSPEND_DELAY); 661 662 pm_runtime_use_autosuspend(gpadc->dev); ··· 670 663 list_add_tail(&gpadc->node, &ab8500_gpadc_list); 671 664 dev_dbg(gpadc->dev, "probe success\n"); 672 665 return 0; 666 + 667 + fail_enable: 673 668 fail_irq: 674 669 free_irq(gpadc->irq, gpadc); 675 670 fail: