From patchwork Sun Dec 19 17:40:32 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Drake X-Patchwork-Id: 76147 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-wy0-f184.google.com (mail-wy0-f184.google.com [74.125.82.184]) by ozlabs.org (Postfix) with ESMTP id 4890DB70A3 for ; Mon, 20 Dec 2010 04:40:39 +1100 (EST) Received: by wyb39 with SMTP id 39sf1894194wyb.11 for ; Sun, 19 Dec 2010 09:40:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=beta; h=domainkey-signature:received:mime-version:x-beenthere:received :received:received:received:received-spf:received:received:received :from:to:cc:cc:cc:cc:subject:message-id:date:x-cloudmark-analysis :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:list-post:list-help:list-archive :sender:list-subscribe:list-unsubscribe:content-type; bh=Guz11BYzasv5i73qb1dUSwyZhZDQnloWTsKYYVKcnZ8=; b=5/kysA8+SH3GSFc/jc4siSmWuBzI1WaklimmQ+Mr2wi69dTSErz0yuhvLYxDavH7+g EyBORc+yS5h6g2maDC4vDAg9AABOgVUzfecbGVqh3jSlf3cYFCUl2T/6KrSVAwfMspCQ 3ioORJR6SZxxicA6JKcRh5ozatUmM0/kigLa4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlegroups.com; s=beta; h=mime-version:x-beenthere:received-spf:from:to:cc:subject:message-id :date:x-cloudmark-analysis:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:list-post:list-help:list-archive:sender:list-subscribe :list-unsubscribe:content-type; b=ly7YUhJvvw7iWjR7RNROYLSG96nnb1Axj5Gtapu2DSsP2tqtpW6BYeOPOvTmxOblWM /BPD64R/p906XhdhTNNDxk3vhwNWagOFqNU0lPWYJhO8MAKOpJkDGHlj82KjXlfTmT9F 8tgiIlhGdVjwSUl6w63c5AOP4m60arKFuf7OU= Received: by 10.216.72.65 with SMTP id s43mr940832wed.1.1292780436961; Sun, 19 Dec 2010 09:40:36 -0800 (PST) MIME-Version: 1.0 X-BeenThere: rtc-linux@googlegroups.com Received: by 10.216.246.74 with SMTP id p52ls2727613wer.1.p; Sun, 19 Dec 2010 09:40:36 -0800 (PST) Received: by 10.216.12.200 with SMTP id 50mr365013wez.4.1292780436292; Sun, 19 Dec 2010 09:40:36 -0800 (PST) Received: by 10.216.12.200 with SMTP id 50mr365012wez.4.1292780436265; Sun, 19 Dec 2010 09:40:36 -0800 (PST) Received: from mtaout01-winn.ispmail.ntl.com (mtaout01-winn.ispmail.ntl.com [81.103.221.47]) by gmr-mx.google.com with ESMTP id h6si289738wes.11.2010.12.19.09.40.36; Sun, 19 Dec 2010 09:40:36 -0800 (PST) Received-SPF: neutral (google.com: 81.103.221.47 is neither permitted nor denied by best guess record for domain of dsd@laptop.org) client-ip=81.103.221.47; Received: from aamtaout02-winn.ispmail.ntl.com ([81.103.221.35]) by mtaout01-winn.ispmail.ntl.com (InterMail vM.7.08.04.00 201-2186-134-20080326) with ESMTP id <20101219174034.QTLR26766.mtaout01-winn.ispmail.ntl.com@aamtaout02-winn.ispmail.ntl.com>; Sun, 19 Dec 2010 17:40:34 +0000 Received: from zog.reactivated.net ([86.14.215.141]) by aamtaout02-winn.ispmail.ntl.com (InterMail vG.3.00.04.00 201-2196-133-20080908) with ESMTP id <20101219174034.XMUW25842.aamtaout02-winn.ispmail.ntl.com@zog.reactivated.net>; Sun, 19 Dec 2010 17:40:34 +0000 Received: by zog.reactivated.net (Postfix, from userid 1000) id 3E7579D401C; Sun, 19 Dec 2010 17:40:32 +0000 (GMT) From: Daniel Drake To: a.zummo@towertech.it Cc: rtc-linux@googlegroups.com Cc: linux-kernel@vger.kernel.org Cc: pgf@laptop.org Cc: rjw@sisk.pl Subject: [rtc-linux] [PATCH v2] rtc-cmos: fix suspend/resume Message-Id: <20101219174032.3E7579D401C@zog.reactivated.net> Date: Sun, 19 Dec 2010 17:40:32 +0000 (GMT) X-Cloudmark-Analysis: v=1.1 cv=X0sWjjQ37bMP4yB/pNNinY3VxVB2n/hmdAjhihaCFGs= c=1 sm=0 a=e_qKP4wONOUA:10 a=Op-mwl0xAAAA:8 a=PtJcH0kQz5UYZKdmrUkA:9 a=qegLS8QIm8LEshBVmNcA:7 a=0EQzuqhV_R1weTpR0jNoaNoScEcA:4 a=d4CUUju0HPYA:10 a=HpAAvcLHHh0Zw7uRqdWCyQ==:117 X-Original-Sender: dsd@laptop.org X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 81.103.221.47 is neither permitted nor denied by best guess record for domain of dsd@laptop.org) smtp.mail=dsd@laptop.org Reply-To: rtc-linux@googlegroups.com Precedence: list Mailing-list: list rtc-linux@googlegroups.com; contact rtc-linux+owners@googlegroups.com List-ID: List-Post: , List-Help: , List-Archive: Sender: rtc-linux@googlegroups.com List-Subscribe: , List-Unsubscribe: , From: Paul Fox rtc-cmos was setting suspend/resume hooks at the device_driver level. However, the platform bus code (drivers/base/platform.c) only looks for resume hooks at the dev_pm_ops level, or within the platform_driver. Switch rtc_cmos to use dev_pm_ops so that suspend/resume code is executed again. Signed-off-by: Paul Fox Signed-off-by: Daniel Drake --- drivers/rtc/rtc-cmos.c | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) v2: incorporate feedback from Rafael J. Wysocki, fix tabs, make a bit more consistent with typical SIMPLE_DEV_PM_OPS users. diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c index 5856167..b46c539 100644 --- a/drivers/rtc/rtc-cmos.c +++ b/drivers/rtc/rtc-cmos.c @@ -36,6 +36,7 @@ #include #include #include +#include /* this is for "generic access to PC-style RTC" using CMOS_READ/CMOS_WRITE */ #include @@ -850,7 +851,7 @@ static void __exit cmos_do_remove(struct device *dev) #ifdef CONFIG_PM -static int cmos_suspend(struct device *dev, pm_message_t mesg) +static int cmos_suspend(struct device *dev) { struct cmos_rtc *cmos = dev_get_drvdata(dev); unsigned char tmp; @@ -898,7 +899,7 @@ static int cmos_suspend(struct device *dev, pm_message_t mesg) */ static inline int cmos_poweroff(struct device *dev) { - return cmos_suspend(dev, PMSG_HIBERNATE); + return cmos_suspend(dev); } static int cmos_resume(struct device *dev) @@ -945,9 +946,9 @@ static int cmos_resume(struct device *dev) return 0; } +static const SIMPLE_DEV_PM_OPS(cmos_pm_ops, cmos_suspend, cmos_resume); + #else -#define cmos_suspend NULL -#define cmos_resume NULL static inline int cmos_poweroff(struct device *dev) { @@ -1077,7 +1078,7 @@ static void __exit cmos_pnp_remove(struct pnp_dev *pnp) static int cmos_pnp_suspend(struct pnp_dev *pnp, pm_message_t mesg) { - return cmos_suspend(&pnp->dev, mesg); + return cmos_suspend(&pnp->dev); } static int cmos_pnp_resume(struct pnp_dev *pnp) @@ -1157,8 +1158,9 @@ static struct platform_driver cmos_platform_driver = { .shutdown = cmos_platform_shutdown, .driver = { .name = (char *) driver_name, - .suspend = cmos_suspend, - .resume = cmos_resume, +#ifdef CONFIG_PM + .pm = &cmos_pm_ops, +#endif } };