On Wednesday, July 31, 2013 02:52:53 PM Aaron Lu wrote: > On 07/29/2013 08:20 PM, Rafael J. Wysocki wrote: > > On Monday, July 29, 2013 10:29:36 AM Aaron Lu wrote: > >> On 07/27/2013 09:11 PM, Rafael J. Wysocki wrote: > >>> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > >>> > >>> Modify acpi_device_set_power() so that diagnostic messages printed by > >>> it to the kernel log always contain the name of the device concerned > >>> to make it possible to identify the device that triggered the message > >>> if need be. > >>> > >>> Also replace printk(KERN_WARNING ) with dev_warn() everywhere in that > >>> function. > >>> > >>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > >>> --- > >>> drivers/acpi/device_pm.c | 22 ++++++++++------------ > >>> 1 file changed, 10 insertions(+), 12 deletions(-) > >>> > >>> Index: linux-pm/drivers/acpi/device_pm.c > >>> =================================================================== > >>> --- linux-pm.orig/drivers/acpi/device_pm.c > >>> +++ linux-pm/drivers/acpi/device_pm.c > >>> @@ -166,20 +166,20 @@ int acpi_device_set_power(struct acpi_de > >>> /* Make sure this is a valid target state */ > >>> > >>> if (state == device->power.state) { > >>> - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device is already at %s\n", > >>> + ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device [%s] already in %s\n", > >>> + device->pnp.bus_id, > >>> acpi_power_state_string(state))); > >>> return 0; > >>> } > >>> > >>> if (!device->power.states[state].flags.valid) { > >>> - printk(KERN_WARNING PREFIX "Device does not support %s\n", > >>> - acpi_power_state_string(state)); > >>> + dev_warn(&device->dev, "Power state %s not supported\n", > >>> + acpi_power_state_string(state)); > >>> return -ENODEV; > >>> } > >>> if (device->parent && (state < device->parent->power.state)) { > >>> - printk(KERN_WARNING PREFIX > >>> - "Cannot set device to a higher-powered" > >>> - " state than parent\n"); > >>> + dev_warn(&device->dev, "Cannot transition to a higher-powered " > >>> + "state than parent\n"); > >> > >> I think the state information would also be useful here: > >> > >> dev_warn(&device->dev, "Cannot transition to a higher-powereed " > >> "state %d than paeren's state %d\n", state, > >> device->parent->power.state); > > > > This is not the scope of this patch, please send another one on top of it. > > > > Patch to add state information in error message, apply on top of this > one. > > From: Aaron Lu <aaron.lu@xxxxxxxxx> > Subject: [PATCH] ACPI / PM: Add state information in error message for > acpi_device_set_power > > The state information can be useful to know what the problem is when it > appeared in an error message about a device can not being set to a higher > power state than its parent, so this patch adds such state information > for both the target state of the device failed to be set and the current > parent's state. > > Signed-off-by: Aaron Lu <aaron.lu@xxxxxxxxx> > --- > drivers/acpi/device_pm.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c > index beb9625..707258b 100644 > --- a/drivers/acpi/device_pm.c > +++ b/drivers/acpi/device_pm.c > @@ -179,7 +179,8 @@ int acpi_device_set_power(struct acpi_device *device, int state) > } > if (device->parent && (state < device->parent->power.state)) { > dev_warn(&device->dev, > - "Cannot transition to a higher-powered state than parent\n"); > + "Cannot transition to a higher-powered state %d than parent's state %d\n", This message will look a little odd I think -> > + state, device->parent->power.state); -> and please don't use raw numbers in such messages. What about "Cannot transition to power state %s for parent in %s\n", acpi_power_state_string(state), acpi_power_state_string(device->parent->power.state) > return -ENODEV; > } Thanks, Rafael -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html