Răsfoiți Sursa

[PATCH] Driver core: PM_DEBUG device suspend() messages become informative

This makes the driver model PM suspend debug messages more useful, by

  (a) explaining what event is being sent, since not all suspend()
      requests mean the same thing;

  (b) reporting when a PM_EVENT_SUSPEND call is allowing the device
      to issue wakeup events.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
David Brownell 19 ani în urmă
părinte
comite
fd869db6eb
1 a modificat fișierele cu 16 adăugiri și 1 ștergeri
  1. 16 1
      drivers/base/power/suspend.c

+ 16 - 1
drivers/base/power/suspend.c

@@ -29,6 +29,15 @@
  * lists. This way, the ancestors will be accessed before their descendents.
  */
 
+static inline char *suspend_verb(u32 event)
+{
+	switch (event) {
+	case PM_EVENT_SUSPEND:	return "suspend";
+	case PM_EVENT_FREEZE:	return "freeze";
+	default:		return "(unknown suspend event)";
+	}
+}
+
 
 /**
  *	suspend_device - Save state of one device.
@@ -57,7 +66,13 @@ int suspend_device(struct device * dev, pm_message_t state)
 	dev->power.prev_state = dev->power.power_state;
 
 	if (dev->bus && dev->bus->suspend && !dev->power.power_state.event) {
-		dev_dbg(dev, "suspending\n");
+		dev_dbg(dev, "%s%s\n",
+			suspend_verb(state.event),
+			((state.event == PM_EVENT_SUSPEND)
+					&& device_may_wakeup(dev))
+				? ", may wakeup"
+				: ""
+			);
 		error = dev->bus->suspend(dev, state);
 		suspend_report_result(dev->bus->suspend, error);
 	}