I think it is my mailer program that is adding the tabs. In Alan's patch I just changed the PMError label with SysFSError. >-----Original Message----- >From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] >On Behalf Of David Engraf >Sent: Tuesday, August 05, 2008 6:29 PM >To: Dasgupta, Romit >Cc: Alan Stern; Rafael J. Wysocki; Greg KH; linux-usb@xxxxxxxxxxxxxxx; linux- >kernel@xxxxxxxxxxxxxxx; Linux-pm mailing list >Subject: Re: [PATCH] [PM] Fixes missing PM entries in sysfs without >CONFIG_PM_SLEEP > >Alan's patch is working on my system with CONFIG_PM and without >CONFIG_PM_SLEEP/CONFIG_USB_SUSPEND. Romit, I couldn't check your patch >because I was getting errors from the patch program (maybe the tabs). > >Thanks again, David Engraf > >> A minor change below: Removed old goto label PMError and introduced >SysFSError. >> Tested with CONFIG_PM, CONFIG_PM_SLEEP, without CONFIG_PM and >ofcourse with CONFIG_USB_SUSPEND. Works fine. >> >> >> diff --git a/drivers/base/core.c b/drivers/base/core.c >> index 068aa1c..9c77939 100644 >> --- a/drivers/base/core.c >> +++ b/drivers/base/core.c >> @@ -541,6 +541,7 @@ void device_initialize(struct device *dev) >> spin_lock_init(&dev->devres_lock); >> INIT_LIST_HEAD(&dev->devres_head); >> device_init_wakeup(dev, 0); >> + device_pm_init(dev); >> set_dev_node(dev, -1); >> } >> >> @@ -897,9 +898,10 @@ int device_add(struct device *dev) >> error = bus_add_device(dev); >> if (error) >> goto BusError; >> - error = device_pm_add(dev); >> + error = dpm_sysfs_add(dev); >> if (error) >> - goto PMError; >> + goto SysFSError; >> + device_pm_add(dev); >> kobject_uevent(&dev->kobj, KOBJ_ADD); >> bus_attach_device(dev); >> if (parent) >> @@ -920,7 +922,7 @@ int device_add(struct device *dev) >> Done: >> put_device(dev); >> return error; >> - PMError: >> + SysFSError: >> bus_remove_device(dev); >> BusError: >> if (dev->bus) >> @@ -1007,6 +1009,7 @@ void device_del(struct device *dev) >> struct class_interface *class_intf; >> >> device_pm_remove(dev); >> + dpm_sysfs_remove(dev); >> if (parent) >> klist_del(&dev->knode_parent); >> if (MAJOR(dev->devt)) { >> diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c >> index 3250c52..d1f752b 100644 >> --- a/drivers/base/power/main.c >> +++ b/drivers/base/power/main.c >> @@ -67,10 +67,8 @@ void device_pm_unlock(void) >> * device_pm_add - add a device to the list of active devices >> * @dev: Device to be added to the list >> */ >> -int device_pm_add(struct device *dev) >> +void device_pm_add(struct device *dev) >> { >> - int error; >> - >> pr_debug("PM: Adding info for %s:%s\n", >> dev->bus ? dev->bus->name : "No Bus", >> kobject_name(&dev->kobj)); >> @@ -89,13 +87,8 @@ int device_pm_add(struct device *dev) >> */ >> WARN_ON(true); >> } >> - error = dpm_sysfs_add(dev); >> - if (!error) { >> - dev->power.status = DPM_ON; >> - list_add_tail(&dev->power.entry, &dpm_list); >> - } >> + list_add_tail(&dev->power.entry, &dpm_list); >> mutex_unlock(&dpm_list_mtx); >> - return error; >> } >> >> /** >> @@ -110,7 +103,6 @@ void device_pm_remove(struct device *dev) >> dev->bus ? dev->bus->name : "No Bus", >> kobject_name(&dev->kobj)); >> mutex_lock(&dpm_list_mtx); >> - dpm_sysfs_remove(dev); >> list_del_init(&dev->power.entry); >> mutex_unlock(&dpm_list_mtx); >> } >> diff --git a/drivers/base/power/power.h b/drivers/base/power/power.h >> index a3252c0..41f51fa 100644 >> --- a/drivers/base/power/power.h >> +++ b/drivers/base/power/power.h >> @@ -1,3 +1,8 @@ >> +static inline void device_pm_init(struct device *dev) >> +{ >> + dev->power.status = DPM_ON; >> +} >> + >> #ifdef CONFIG_PM_SLEEP >> >> /* >> @@ -11,12 +16,12 @@ static inline struct device *to_device(struct list_head >*entry) >> return container_of(entry, struct device, power.entry); >> } >> >> -extern int device_pm_add(struct device *); >> +extern void device_pm_add(struct device *); >> extern void device_pm_remove(struct device *); >> >> #else /* CONFIG_PM_SLEEP */ >> >> -static inline int device_pm_add(struct device *dev) { return 0; } >> +static inline void device_pm_add(struct device *dev) {} >> static inline void device_pm_remove(struct device *dev) {} >> >> #endif >> >> >>> -----Original Message----- >>> From: Alan Stern [mailto:stern@xxxxxxxxxxxxxxxxxxx] >>> Sent: Monday, August 04, 2008 9:15 PM >>> To: Rafael J. Wysocki >>> Cc: Dasgupta, Romit; David Engraf; Greg KH; linux-usb@xxxxxxxxxxxxxxx; linux- >>> kernel@xxxxxxxxxxxxxxx; Linux-pm mailing list >>> Subject: Re: [PATCH] [PM] Fixes missing PM entries in sysfs without >>> CONFIG_PM_SLEEP >>> >>> On Mon, 4 Aug 2008, Rafael J. Wysocki wrote: >>> >>> >>>>> Do you think we will want to make device_pm_add() return an error at >>>>> some point in the future? >>>>> >>>> Well, maybe, but not any time soon. :-) >>>> >>> Okay, here's the updated patch. Awaiting comments from the testers... >>> >>> Alan Stern >>> >>> >>> >>> Index: usb-2.6/drivers/base/power/power.h >>> >================================================================ >>> === >>> --- usb-2.6.orig/drivers/base/power/power.h >>> +++ usb-2.6/drivers/base/power/power.h >>> @@ -1,3 +1,8 @@ >>> +static inline void device_pm_init(struct device *dev) >>> +{ >>> + dev->power.status = DPM_ON; >>> +} >>> + >>> #ifdef CONFIG_PM_SLEEP >>> >>> /* >>> @@ -11,12 +16,12 @@ static inline struct device *to_device(s >>> return container_of(entry, struct device, power.entry); >>> } >>> >>> -extern int device_pm_add(struct device *); >>> +extern void device_pm_add(struct device *); >>> extern void device_pm_remove(struct device *); >>> >>> #else /* CONFIG_PM_SLEEP */ >>> >>> -static inline int device_pm_add(struct device *dev) { return 0; } >>> +static inline void device_pm_add(struct device *dev) {} >>> static inline void device_pm_remove(struct device *dev) {} >>> >>> #endif >>> Index: usb-2.6/drivers/base/core.c >>> >================================================================ >>> === >>> --- usb-2.6.orig/drivers/base/core.c >>> +++ usb-2.6/drivers/base/core.c >>> @@ -542,6 +542,7 @@ void device_initialize(struct device *de >>> spin_lock_init(&dev->devres_lock); >>> INIT_LIST_HEAD(&dev->devres_head); >>> device_init_wakeup(dev, 0); >>> + device_pm_init(dev); >>> set_dev_node(dev, -1); >>> } >>> >>> @@ -898,9 +899,10 @@ int device_add(struct device *dev) >>> error = bus_add_device(dev); >>> if (error) >>> goto BusError; >>> - error = device_pm_add(dev); >>> + error = dpm_sysfs_add(dev); >>> if (error) >>> goto PMError; >>> + device_pm_add(dev); >>> kobject_uevent(&dev->kobj, KOBJ_ADD); >>> bus_attach_device(dev); >>> if (parent) >>> @@ -1008,6 +1010,7 @@ void device_del(struct device *dev) >>> struct class_interface *class_intf; >>> >>> device_pm_remove(dev); >>> + dpm_sysfs_remove(dev); >>> if (parent) >>> klist_del(&dev->knode_parent); >>> if (MAJOR(dev->devt)) { >>> Index: usb-2.6/drivers/base/power/main.c >>> >================================================================ >>> === >>> --- usb-2.6.orig/drivers/base/power/main.c >>> +++ usb-2.6/drivers/base/power/main.c >>> @@ -67,10 +67,8 @@ void device_pm_unlock(void) >>> * device_pm_add - add a device to the list of active devices >>> * @dev: Device to be added to the list >>> */ >>> -int device_pm_add(struct device *dev) >>> +void device_pm_add(struct device *dev) >>> { >>> - int error; >>> - >>> pr_debug("PM: Adding info for %s:%s\n", >>> dev->bus ? dev->bus->name : "No Bus", >>> kobject_name(&dev->kobj)); >>> @@ -89,13 +87,9 @@ int device_pm_add(struct device *dev) >>> */ >>> WARN_ON(true); >>> } >>> - error = dpm_sysfs_add(dev); >>> - if (!error) { >>> - dev->power.status = DPM_ON; >>> - list_add_tail(&dev->power.entry, &dpm_list); >>> - } >>> + >>> + list_add_tail(&dev->power.entry, &dpm_list); >>> mutex_unlock(&dpm_list_mtx); >>> - return error; >>> } >>> >>> /** >>> @@ -110,7 +104,6 @@ void device_pm_remove(struct device *dev >>> dev->bus ? dev->bus->name : "No Bus", >>> kobject_name(&dev->kobj)); >>> mutex_lock(&dpm_list_mtx); >>> - dpm_sysfs_remove(dev); >>> list_del_init(&dev->power.entry); >>> mutex_unlock(&dpm_list_mtx); >>> } >>> >> >> > >-- >To unsubscribe from this list: send the line "unsubscribe linux-usb" in >the body of a message to majordomo@xxxxxxxxxxxxxxx >More majordomo info at http://vger.kernel.org/majordomo-info.html _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm