mfd: Move twl-core device_init_wakeup to after platform_device_add
authorNeilBrown <neilb@suse.de>
Fri, 6 Jul 2012 22:51:03 +0000 (08:51 +1000)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 9 Jul 2012 13:13:41 +0000 (15:13 +0200)
device_init_wakeup uses the dev_name() of the device to set the
name of the wakeup_source which appears in
/sys/kernel/debug/wakeup_sources.

For a platform device, that name is not set until platform_device_add
calls dev_set_name.

So the call to device_init_wakeup() must be after the call to
platform_device_add().
Making this change causes correct names to appear in the
wakeup_sources file.

Signed-off-by: NeilBrown <neilb@suse.de>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/twl-core.c

index 6fc90befa79e415bbd377e978191b958abaf6fb1..b012efd29e01e593bb1c4a8f6814eed0a690b3f8 100644 (file)
@@ -568,7 +568,6 @@ add_numbered_child(unsigned chip, const char *name, int num,
                goto err;
        }
 
-       device_init_wakeup(&pdev->dev, can_wakeup);
        pdev->dev.parent = &twl->client->dev;
 
        if (pdata) {
@@ -593,6 +592,8 @@ add_numbered_child(unsigned chip, const char *name, int num,
        }
 
        status = platform_device_add(pdev);
+       if (status == 0)
+               device_init_wakeup(&pdev->dev, can_wakeup);
 
 err:
        if (status < 0) {