forked from Minki/linux
3b98aeaf3a
This patch (as1124) fixes a couple of bugs in the PM core. The new dev->power.status field should be initialized regardless of whether CONFIG_PM_SLEEP is enabled, and similarly dpm_sysfs_add() should be called whenever CONFIG_PM is enabled. The patch separates out the call to dpm_sysfs_add() from the call to device_pm_add(). As a result device_pm_add() can no longer return an error, so its return type is changed to void. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Tested-by: Romit Dasgupta <romit@ti.com> Acked-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
50 lines
852 B
C
50 lines
852 B
C
static inline void device_pm_init(struct device *dev)
|
|
{
|
|
dev->power.status = DPM_ON;
|
|
}
|
|
|
|
#ifdef CONFIG_PM_SLEEP
|
|
|
|
/*
|
|
* main.c
|
|
*/
|
|
|
|
extern struct list_head dpm_list; /* The active device list */
|
|
|
|
static inline struct device *to_device(struct list_head *entry)
|
|
{
|
|
return container_of(entry, struct device, power.entry);
|
|
}
|
|
|
|
extern void device_pm_add(struct device *);
|
|
extern void device_pm_remove(struct device *);
|
|
|
|
#else /* CONFIG_PM_SLEEP */
|
|
|
|
static inline void device_pm_add(struct device *dev) {}
|
|
static inline void device_pm_remove(struct device *dev) {}
|
|
|
|
#endif
|
|
|
|
#ifdef CONFIG_PM
|
|
|
|
/*
|
|
* sysfs.c
|
|
*/
|
|
|
|
extern int dpm_sysfs_add(struct device *);
|
|
extern void dpm_sysfs_remove(struct device *);
|
|
|
|
#else /* CONFIG_PM */
|
|
|
|
static inline int dpm_sysfs_add(struct device *dev)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void dpm_sysfs_remove(struct device *dev)
|
|
{
|
|
}
|
|
|
|
#endif
|