Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp453512ybl; Tue, 28 Jan 2020 06:13:46 -0800 (PST) X-Google-Smtp-Source: APXvYqzyItmlPxXipgndbV3FJdx5rmWy54hJBONYXv+/5X0QmGt/1EPFl4doF6eXWEm6U7SdMxCx X-Received: by 2002:a9d:6b8a:: with SMTP id b10mr16953024otq.322.1580220826596; Tue, 28 Jan 2020 06:13:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580220826; cv=none; d=google.com; s=arc-20160816; b=Lj8kGDcMVUlAJL39YvMwhHHP81IdjPvyGJQtVQHLWFiU0uhAwtS2Fbimp244KtgY0B YrZMr6/5581SN5mu4Q2TSwbj6Yjt6o16r3MQTWfkgkNI263AZtc/mmxB8jBGKZoXBVip eu9KkLZ+h8RxKYygUGNnXe8TjOcKvi+f5pcS9szgELrDzu8VvtTQfZ8zD8gZBMdL26Sk n4Dom1vchqnNFixgGKHrfRmaHDdaBA3P5jGm4bEasnXaUAb12np0gShTkU8gnQSotS+K gUq4m+eMoIMhJyeEQmKZQyt+GxmJRXmKqFMLEX+5KS47S5PVk/+ZBX4sMIfePhbAiNRh niKA== 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=x1Xuchvp3JVFItUf+o5azoXSweJ4Lzt2qH7Js1yHvas=; b=XTndtv8L06xyBwG6Q6MaTOPm0/RA/IAEl4uZBsWoaopJuZ/XF5uMCrV3uA6kEpJ4tQ Iv1E4Q3ZTLA2ouIGP6v5iZjp3jZYinbMkOhxptzIKg/qD0FgHjVJIgDWR5rVwJX4RN/t wkUMPJbtXe5R7sWV2wkyoWHtSSs+ZhIxmbKOLW9lf4EaopmZkoEBYJOcBEYFHD8yO3el 8EpB9T7LhHh4DyETUqzLY1OGaezK8T+kkqt5VccY4UAKifV6b+TjwrgbLfbtOHf7+cQT lDPzdDv8/DqMzhj+zr3GnuGxnyf6dmnrhuPwst9g3myfDAYA3tne5oprGNeMoIRDyND2 EUQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=AWs1RDXZ; 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 b191si1759874oii.266.2020.01.28.06.13.33; Tue, 28 Jan 2020 06:13:46 -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=AWs1RDXZ; 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 S1727866AbgA1OLd (ORCPT + 99 others); Tue, 28 Jan 2020 09:11:33 -0500 Received: from mail.kernel.org ([198.145.29.99]:60600 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727187AbgA1OL1 (ORCPT ); Tue, 28 Jan 2020 09:11:27 -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 0C55520678; Tue, 28 Jan 2020 14:11:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580220687; bh=E2V+C8zIRFAMXdmYAylFrU6KBTlqSKmy3/QxbVXgaME=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AWs1RDXZ01mPm4HAX14KPuQ0dM7974LkPRcw1w1dfZ192xZdw7m9meHlBWbsFRaED pJHGlkTOYo5li8eSBRJVmxIX9q6hktpfNOQz6RhHh0xBeTfkNNGjh4huvvyr9gZ9ci iz1KGKGWcsqiuwvFTjf9aJ8sY4zSuKTNIfviHMtk= 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.4 105/183] rtc: pcf8563: Clear event flags and disable interrupts before requesting irq Date: Tue, 28 Jan 2020 15:05:24 +0100 Message-Id: <20200128135840.459076942@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135829.486060649@linuxfoundation.org> References: <20200128135829.486060649@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 45b5a3d47ccf0..1982eec0a3eac 100644 --- a/drivers/rtc/rtc-pcf8563.c +++ b/drivers/rtc/rtc-pcf8563.c @@ -568,7 +568,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__); @@ -594,13 +593,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