Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751910Ab2HBE7g (ORCPT ); Thu, 2 Aug 2012 00:59:36 -0400 Received: from hqemgate04.nvidia.com ([216.228.121.35]:2347 "EHLO hqemgate04.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751400Ab2HBE7f convert rfc822-to-8bit (ORCPT ); Thu, 2 Aug 2012 00:59:35 -0400 X-PGP-Universal: processed; by hqnvupgp05.nvidia.com on Wed, 01 Aug 2012 21:58:53 -0700 From: Venu Byravarasu To: Matthias Kaehlcke CC: "a.zummo@towertech.it" , "sameo@linux.intel.com" , "broonie@opensource.wolfsonmicro.com" , Laxman Dewangan , "kyle.manna@fuel7.com" , "sboyd@codeaurora.org" , "rtc-linux@googlegroups.com" , "linux-kernel@vger.kernel.org" Date: Thu, 2 Aug 2012 10:28:47 +0530 Subject: RE: [PATCH v2] rtc: tps65910: Add RTC driver for TPS65910 PMIC RTC Thread-Topic: [PATCH v2] rtc: tps65910: Add RTC driver for TPS65910 PMIC RTC Thread-Index: Ac1wIuWWehO3wnT7QvuaDDCPf/SBugARyLPQ Message-ID: References: <1343802157-13600-1-git-send-email-vbyravarasu@nvidia.com> <20120801201811.GK4701@darwin> In-Reply-To: <20120801201811.GK4701@darwin> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3451 Lines: 98 > -----Original Message----- > From: Matthias Kaehlcke [mailto:matthias.list@kaehlcke.net] > Sent: Thursday, August 02, 2012 1:48 AM > To: Venu Byravarasu > Cc: a.zummo@towertech.it; sameo@linux.intel.com; > broonie@opensource.wolfsonmicro.com; Laxman Dewangan; > kyle.manna@fuel7.com; sboyd@codeaurora.org; rtc- > linux@googlegroups.com; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2] rtc: tps65910: Add RTC driver for TPS65910 PMIC RTC > > hi, > > El Wed, Aug 01, 2012 at 11:52:37AM +0530 Venu Byravarasu ha dit: > > > TPS65910 PMIC is a MFD with RTC as one of the device. > > Adding RTC driver for supporting RTC device present > > inside TPS65910 PMIC. > > > > Only support for RTC alarm is implemented as part of this patch. > > > > Signed-off-by: Venu Byravarasu > > --- > > ... > > > +static irqreturn_t tps65910_rtc_interrupt(int irq, void *rtc) > > +{ > > + struct device *dev = rtc; > > + unsigned long events = 0; > > + struct tps65910 *tps = dev_get_drvdata(dev->parent); > > + struct tps65910_rtc *tps_rtc = dev_get_drvdata(dev); > > > > ... > > > > +static int __devinit tps65910_rtc_probe(struct platform_device *pdev) > > +{ > > > > ... > > > > + ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, > > + tps65910_rtc_interrupt, IRQF_TRIGGER_LOW, > > + "rtc-tps65910", &pdev->dev); > > + if (ret < 0) { > > + dev_err(&pdev->dev, "IRQ is not free.\n"); > > + return ret; > > + } > > + device_init_wakeup(&pdev->dev, 1); > > + > > + tps_rtc->rtc = rtc_device_register(pdev->name, &pdev->dev, > > + &tps65910_rtc_ops, THIS_MODULE); > > + if (IS_ERR(tps_rtc->rtc)) { > > + ret = PTR_ERR(tps_rtc->rtc); > > + dev_err(&pdev->dev, "RTC device register: err %d\n", ret); > > + return ret; > > + } > > + > > + platform_set_drvdata(pdev, tps_rtc); > > the interrupt should be requested after this call. otherwise > tps65910_rtc_interrupt() could be executed before the RTC device is > registered and the driver data set. normally this shouldn't happen as > the RTC interrupts are disabled after reset, but the interrupts could > have been enabled for example by the bootloader Hi Matthias, Thanks for your comments. All pending RTC interrupts are being cleared in probe, before enabling RTC itself. Hence chances of stray interrupts from boot loader cannot cause any trouble here. The only possible way of getting interrupt by kernel driver is by enabling tps65910_rtc_alarm_irq_enable() && setting alarm time using tps65910_rtc_set_alarm. However before probe gets completed as these two APIs will not get called together by the client, I do not see any false interrupt getting generated. Please let me know if I miss something. Thanks, Venu > > best regards > > -- > Matthias Kaehlcke > Embedded Linux Developer > Amsterdam > > Anyone who has never made a mistake has never tried anything new > (Albert Einstein) > .''`. > using free software / Debian GNU/Linux | http://debian.org : :' : > `. `'` > gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `- -- 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/