Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp463708ybl; Tue, 28 Jan 2020 06:22:20 -0800 (PST) X-Google-Smtp-Source: APXvYqwZY9kZarpPCYtXdEScCL6sPKaqmZc80Cm554Dwm9T/bGHcdKmfFgZ3rAGCBXUe9pqNnfM0 X-Received: by 2002:a9d:22:: with SMTP id 31mr15707842ota.173.1580221340355; Tue, 28 Jan 2020 06:22:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580221340; cv=none; d=google.com; s=arc-20160816; b=G8PNbDRCGpGiCvaKVcbZizU3Lwlhg57n5gLTp2bxZTmbJ0xW/csj3s4rV4UvG/pSoS qmma3+Rvwhf0CRc++8CGhefKClt7Co3pfYirhR/mOPu0mCPcuaBedIzdNMYD2d6ftzI9 GaQnV553FvC3dICp/BzOY3rdFhVdWR12scVEt9fTlkqZqrbtsqrisq34kJY4v1T8pKL3 F/LJF3CmMaGPNTSTeb0hFxsurYYQAXwsqzLLnrFq7CRHU892N8ByThDxaDi42dh9NjZN HJ92Q/PhcM1vAvqCHQGV9kVQgo/1IFSz1dzsWsrktC3rxZLggsmqo2yVfVTqyCP5L+93 HMQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=9uL7MksPZ9jK8XR70cL8Np1zXqKPc9r+0nR5Ke7ggsg=; b=bPaeoniV8EuxhzjA2LtGmuRPV8UfW8ChZ3YCwRZzjg40uYrd2uLp3B0mEV3mQYR8V3 HSF993Sbq4+8xWBnM9eEqJPg35tKvrvE23FGJ7SPbtL+cyozWJb5pYxqYKjLC4MWmK/T YUxwB4PLhiR0eiDudPXX1et4I3jjzx7ZoJQg4Om9Ix1nqFkIWbylB5XiiiHqFTGAGz6v bUOuH1NqIQQWPH8epjlPMpxN7bwzyZfX9fM5oLFNOkWy9cnev3jSwV+6uqhkEcJrIf9g q5WlgMJfNGMt64iuJn6qgpFBXXyPRkQzEI0U2v/Me++ezJJtrKCA8ZEXlZyi0RrHkQwz ejcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QNQOawIw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c21si343698otf.74.2020.01.28.06.22.08; Tue, 28 Jan 2020 06:22:20 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QNQOawIw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727549AbgA1OVO (ORCPT + 99 others); Tue, 28 Jan 2020 09:21:14 -0500 Received: from mail.kernel.org ([198.145.29.99]:46392 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731216AbgA1OVL (ORCPT ); Tue, 28 Jan 2020 09:21:11 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AB65D2071E; Tue, 28 Jan 2020 14:21:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580221271; bh=9//9jm4pWVGERH43Lx+MZL03EgoWFR1cNNWMMyCf+Tk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QNQOawIwCof5CORujAG+i4PpHAuADd2GpHLrjxxviwMP/nXS/VJr+tFzLhqmo/MgO WLIogA/z7kj4ZBOfWYXKKyHffWK+zVCI72pbHh6IeFiMAFK5RyiN399HXPPW0GouXr KUj/iWDk63k8KG4Q+nwEKPCJVgr+Gg6YQ95kmJuY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chen-Yu Tsai , Alexandre Belloni , Sasha Levin Subject: [PATCH 4.9 158/271] rtc: pcf8563: Clear event flags and disable interrupts before requesting irq Date: Tue, 28 Jan 2020 15:05:07 +0100 Message-Id: <20200128135904.333711550@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135852.449088278@linuxfoundation.org> References: <20200128135852.449088278@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chen-Yu Tsai [ Upstream commit 3572e8aea3bf925dac1dbf86127657c39fe5c254 ] Besides the alarm, the PCF8563 also has a timer triggered interrupt. In cases where the previous system left the timer and interrupts on, or somehow the bits got enabled, the interrupt would keep triggering as the kernel doesn't know about it. Clear both the alarm and timer event flags, and disable the interrupts, before requesting the interrupt line. Fixes: ede3e9d47cca ("drivers/rtc/rtc-pcf8563.c: add alarm support") Fixes: a45d528aab8b ("rtc: pcf8563: clear expired alarm at boot time") Signed-off-by: Chen-Yu Tsai Signed-off-by: Alexandre Belloni Signed-off-by: Sasha Levin --- drivers/rtc/rtc-pcf8563.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/rtc/rtc-pcf8563.c b/drivers/rtc/rtc-pcf8563.c index a4b8b603c807d..533fb7027f0cc 100644 --- a/drivers/rtc/rtc-pcf8563.c +++ b/drivers/rtc/rtc-pcf8563.c @@ -563,7 +563,6 @@ static int pcf8563_probe(struct i2c_client *client, struct pcf8563 *pcf8563; int err; unsigned char buf; - unsigned char alm_pending; dev_dbg(&client->dev, "%s\n", __func__); @@ -587,13 +586,13 @@ static int pcf8563_probe(struct i2c_client *client, return err; } - err = pcf8563_get_alarm_mode(client, NULL, &alm_pending); - if (err) { - dev_err(&client->dev, "%s: read error\n", __func__); + /* Clear flags and disable interrupts */ + buf = 0; + err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, &buf); + if (err < 0) { + dev_err(&client->dev, "%s: write error\n", __func__); return err; } - if (alm_pending) - pcf8563_set_alarm_mode(client, 0); pcf8563->rtc = devm_rtc_device_register(&client->dev, pcf8563_driver.driver.name, -- 2.20.1