Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp8265967ybl; Thu, 16 Jan 2020 13:33:39 -0800 (PST) X-Google-Smtp-Source: APXvYqwlEVFeJzhcLeohWJjqo3+H3LPQQ/MxRWwley0rXksDBRztwi9KupGWYLlJskjyle9DSqr4 X-Received: by 2002:aca:f242:: with SMTP id q63mr988859oih.72.1579210419014; Thu, 16 Jan 2020 13:33:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579210419; cv=none; d=google.com; s=arc-20160816; b=dVwQzgFVu00JfSaD3JDr0JP+Dm+Od6ro+cuRfk1lnRbkwOvk7t04dm8ARlxv8g9lQz ivKIMdeQp6y8mgb6npiLY3Q9tRTlr1UjhuugyhQ+N8qP8F7dhIYi6WK2BIOXrLwROvfY NUowF9RlgS49x74XXBOdoH1rJ3D4DHA4KFHUG5m3fE6g8UWD4Na79OLOxnNvpn8yrcf2 2HaWIr6HEZCQTkvXslndz831JpwktPr/uRvrpHccfPLr7tK4im/CCzqc+5YKt2bdNxoF ikUAfLo+3WwGwRS28DeDDM2skKtkKOzWJnrYilVhmf8VAq+nUd53ykoC4GA4cnFpKJ5R 4SuQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=FIZfAgce1TKyODVh8bJomNZmw9aZD1gIlkjXyk2Z/vU=; b=b7xoKcPzzCN+sXJyi7xbq5jTMPm3hKm1MtNfLBasUGnK9WPjYE7zI5H/2+mUKD2GY7 PE5XkqwJo4/UO826Ph2638/LGpRLHVWTDXuJNPIW9UtqI5ssfSFeeIWsch2c3y3vCAgg eTxGP5InqHEVtdT9CwJDriYQ9T4EGsHSlrRU5oUMe+ovQm2vC/JI0wxQPjR/vGVPhqmt kmTGo4IiGwsFeXChaHOEXOYZFlFtJZa8N6moCThAjGp0UWXmrTfsH5qjVUgM0WLNp3uB E80t+klEdjCMv8YDVZ+32erGpg6qa0hJcNO5O2DflGake1VGl2NkczKoKPtKYqFZbc3m Iimg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fbIGvjP5; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v12si14260957otn.193.2020.01.16.13.33.27; Thu, 16 Jan 2020 13:33:39 -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=fbIGvjP5; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2393617AbgAPRkY (ORCPT + 99 others); Thu, 16 Jan 2020 12:40:24 -0500 Received: from mail.kernel.org ([198.145.29.99]:55862 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729305AbgAPRja (ORCPT ); Thu, 16 Jan 2020 12:39:30 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5F15D246E7; Thu, 16 Jan 2020 17:39:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579196370; bh=lHXuV0qa75wCpT49eC7r/iGCt8nWqZ2GZb3K5lI8w4E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fbIGvjP5WYydctzYxbuipySS7nzMoc0FkueqViIPy+/1YWXa7Z6hcrX9WEDqdhxIh ui6aIDXdYjiqeJ3GeXttN0/0MXt3ZPJyae7iHuAZ9gwuTv5ElS5q5+/pSieoWjXYQR /GVerJoK7bh31oWiHIC3uv2MuWziIbeEA81Sl6W8= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen-Yu Tsai , Alexandre Belloni , Sasha Levin , linux-rtc@vger.kernel.org Subject: [PATCH AUTOSEL 4.9 157/251] rtc: pcf8563: Clear event flags and disable interrupts before requesting irq Date: Thu, 16 Jan 2020 12:35:06 -0500 Message-Id: <20200116173641.22137-117-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200116173641.22137-1-sashal@kernel.org> References: <20200116173641.22137-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore 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 a4b8b603c807..533fb7027f0c 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