extcon: axp288: Convert to use acpi_dev_get_first_match_dev()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 28 Mar 2019 17:17:21 +0000 (19:17 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 1 Apr 2019 09:00:16 +0000 (11:00 +0200)
acpi_dev_get_first_match_name() is deprecated and going to be removed
because it leaks a reference.

Convert the driver to use acpi_dev_get_first_match_dev() instead.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/extcon/extcon-axp288.c

index a983708b77a66a91f945cce32ac49eebbbfdd913..50f9402fb325391ef3c154a7bbcbab95721b7221 100644 (file)
@@ -333,7 +333,7 @@ static int axp288_extcon_probe(struct platform_device *pdev)
        struct axp288_extcon_info *info;
        struct axp20x_dev *axp20x = dev_get_drvdata(pdev->dev.parent);
        struct device *dev = &pdev->dev;
-       const char *name;
+       struct acpi_device *adev;
        int ret, i, pirq;
 
        info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
@@ -357,9 +357,10 @@ static int axp288_extcon_probe(struct platform_device *pdev)
                if (ret)
                        return ret;
 
-               name = acpi_dev_get_first_match_name("INT3496", NULL, -1);
-               if (name) {
-                       info->id_extcon = extcon_get_extcon_dev(name);
+               adev = acpi_dev_get_first_match_dev("INT3496", NULL, -1);
+               if (adev) {
+                       info->id_extcon = extcon_get_extcon_dev(acpi_dev_name(adev));
+                       put_device(&adev->dev);
                        if (!info->id_extcon)
                                return -EPROBE_DEFER;