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

mfd: twl4030-madc: Use managed resources

Update twl4030-madc driver to use managed resources.

Signed-off-by: Sebastian Reichel <sre@debian.org>
Acked-by: Jonathan Cameron <jic23@kernel.org>
Tested-by: Marek Belisko <marek@goldelico.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>

authored by

Sebastian Reichel and committed by
Lee Jones
e7f22b75 0414855f

+6 -9
+6 -9
drivers/mfd/twl4030-madc.c
··· 702 702 { 703 703 struct twl4030_madc_data *madc; 704 704 struct twl4030_madc_platform_data *pdata = dev_get_platdata(&pdev->dev); 705 - int ret; 705 + int irq, ret; 706 706 u8 regval; 707 707 708 708 if (!pdata) { 709 709 dev_err(&pdev->dev, "platform_data not available\n"); 710 710 return -EINVAL; 711 711 } 712 - madc = kzalloc(sizeof(*madc), GFP_KERNEL); 712 + madc = devm_kzalloc(&pdev->dev, sizeof(*madc), GFP_KERNEL); 713 713 if (!madc) 714 714 return -ENOMEM; 715 715 ··· 726 726 TWL4030_MADC_ISR1 : TWL4030_MADC_ISR2; 727 727 ret = twl4030_madc_set_power(madc, 1); 728 728 if (ret < 0) 729 - goto err_power; 729 + return ret; 730 730 ret = twl4030_madc_set_current_generator(madc, 0, 1); 731 731 if (ret < 0) 732 732 goto err_current_generator; ··· 770 770 771 771 platform_set_drvdata(pdev, madc); 772 772 mutex_init(&madc->lock); 773 - ret = request_threaded_irq(platform_get_irq(pdev, 0), NULL, 773 + 774 + irq = platform_get_irq(pdev, 0); 775 + ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, 774 776 twl4030_madc_threaded_irq_handler, 775 777 IRQF_TRIGGER_RISING, "twl4030_madc", madc); 776 778 if (ret) { ··· 785 783 twl4030_madc_set_current_generator(madc, 0, 0); 786 784 err_current_generator: 787 785 twl4030_madc_set_power(madc, 0); 788 - err_power: 789 - kfree(madc); 790 - 791 786 return ret; 792 787 } 793 788 ··· 792 793 { 793 794 struct twl4030_madc_data *madc = platform_get_drvdata(pdev); 794 795 795 - free_irq(platform_get_irq(pdev, 0), madc); 796 796 twl4030_madc_set_current_generator(madc, 0, 0); 797 797 twl4030_madc_set_power(madc, 0); 798 - kfree(madc); 799 798 800 799 return 0; 801 800 }