hwmon: (sch56xx-common) Simplify sch56xx_device_add
authorArmin Wolf <W_Armin@gmx.de>
Sat, 8 May 2021 13:14:57 +0000 (15:14 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 17 Jun 2021 11:21:44 +0000 (04:21 -0700)
Use platform_device_register_simple() instead of
manually calling platform_device_alloc()/platform_device_add().

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20210508131457.12780-5-W_Armin@gmx.de
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/sch56xx-common.c

index 04739bb..40cdada 100644 (file)
@@ -504,37 +504,18 @@ static int __init sch56xx_device_add(int address, const char *name)
        struct resource res = {
                .start  = address,
                .end    = address + REGION_LENGTH - 1,
+               .name   = name,
                .flags  = IORESOURCE_IO,
        };
        int err;
 
-       sch56xx_pdev = platform_device_alloc(name, address);
-       if (!sch56xx_pdev)
-               return -ENOMEM;
-
-       res.name = sch56xx_pdev->name;
        err = acpi_check_resource_conflict(&res);
        if (err)
-               goto exit_device_put;
-
-       err = platform_device_add_resources(sch56xx_pdev, &res, 1);
-       if (err) {
-               pr_err("Device resource addition failed\n");
-               goto exit_device_put;
-       }
-
-       err = platform_device_add(sch56xx_pdev);
-       if (err) {
-               pr_err("Device addition failed\n");
-               goto exit_device_put;
-       }
-
-       return 0;
+               return err;
 
-exit_device_put:
-       platform_device_put(sch56xx_pdev);
+       sch56xx_pdev = platform_device_register_simple(name, -1, &res, 1);
 
-       return err;
+       return PTR_ERR_OR_ZERO(sch56xx_pdev);
 }
 
 static int __init sch56xx_init(void)