Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754763AbXFKPDR (ORCPT ); Mon, 11 Jun 2007 11:03:17 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753399AbXFKPAn (ORCPT ); Mon, 11 Jun 2007 11:00:43 -0400 Received: from ogre.sisk.pl ([217.79.144.158]:38824 "EHLO ogre.sisk.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752388AbXFKPAd (ORCPT ); Mon, 11 Jun 2007 11:00:33 -0400 From: "Rafael J. Wysocki" To: pm list Subject: [RFC][PATCH -mm 3/7] PM: Simplify suspend_device Date: Mon, 11 Jun 2007 17:01:57 +0200 User-Agent: KMail/1.9.5 Cc: Alan Stern , David Brownell , Greg KH , LKML , Pavel Machek , USB development list References: <200706111655.50022.rjw@sisk.pl> In-Reply-To: <200706111655.50022.rjw@sisk.pl> MIME-Version: 1.0 Content-Disposition: inline Message-Id: <200706111701.58648.rjw@sisk.pl> Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3313 Lines: 98 From: Rafael J. Wysocki Reduce code duplication in drivers/base/suspend.c by introducing a separate function for printing diagnostic messages. Signed-off-by: Rafael J. Wysocki --- drivers/base/power/suspend.c | 49 +++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) Index: linux-2.6.22-rc4/drivers/base/power/suspend.c =================================================================== --- linux-2.6.22-rc4.orig/drivers/base/power/suspend.c 2007-06-10 13:30:45.000000000 +0200 +++ linux-2.6.22-rc4/drivers/base/power/suspend.c 2007-06-10 18:50:45.000000000 +0200 @@ -40,6 +40,14 @@ static inline char *suspend_verb(u32 eve } +static void +suspend_device_dbg(struct device * dev, pm_message_t state, char *info) +{ + dev_dbg(dev, "%s%s%s\n", info, suspend_verb(state.event), + ((state.event == PM_EVENT_SUSPEND) && device_may_wakeup(dev)) ? + ", may wakeup" : ""); +} + /** * suspend_device - Save state of one device. * @dev: Device. @@ -66,37 +74,21 @@ int suspend_device(struct device * dev, dev->power.prev_state = dev->power.power_state; if (dev->class && dev->class->suspend && !dev->power.power_state.event) { - dev_dbg(dev, "class %s%s\n", - suspend_verb(state.event), - ((state.event == PM_EVENT_SUSPEND) - && device_may_wakeup(dev)) - ? ", may wakeup" - : "" - ); + suspend_device_dbg(dev, state, "class "); error = dev->class->suspend(dev, state); suspend_report_result(dev->class->suspend, error); } - if (!error && dev->type && dev->type->suspend && !dev->power.power_state.event) { - dev_dbg(dev, "%s%s\n", - suspend_verb(state.event), - ((state.event == PM_EVENT_SUSPEND) - && device_may_wakeup(dev)) - ? ", may wakeup" - : "" - ); + if (!error && dev->type && dev->type->suspend + && !dev->power.power_state.event) { + suspend_device_dbg(dev, state, "type "); error = dev->type->suspend(dev, state); suspend_report_result(dev->type->suspend, error); } - if (!error && dev->bus && dev->bus->suspend && !dev->power.power_state.event) { - dev_dbg(dev, "%s%s\n", - suspend_verb(state.event), - ((state.event == PM_EVENT_SUSPEND) - && device_may_wakeup(dev)) - ? ", may wakeup" - : "" - ); + if (!error && dev->bus && dev->bus->suspend + && !dev->power.power_state.event) { + suspend_device_dbg(dev, state, ""); error = dev->bus->suspend(dev, state); suspend_report_result(dev->bus->suspend, error); } @@ -114,14 +106,9 @@ static int suspend_device_late(struct de { int error = 0; - if (dev->bus && dev->bus->suspend_late && !dev->power.power_state.event) { - dev_dbg(dev, "LATE %s%s\n", - suspend_verb(state.event), - ((state.event == PM_EVENT_SUSPEND) - && device_may_wakeup(dev)) - ? ", may wakeup" - : "" - ); + if (dev->bus && dev->bus->suspend_late + && !dev->power.power_state.event) { + suspend_device_dbg(dev, state, "LATE "); error = dev->bus->suspend_late(dev, state); suspend_report_result(dev->bus->suspend_late, error); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/