Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp4943370ybi; Mon, 3 Jun 2019 21:25:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqwSlpJPn0jrdczuX6lNeAk/EvZ1T8X5fGWwj+zyeyd5EaeU6DnnRMc4T6g5qw7gQUOJ2yeu X-Received: by 2002:a17:90a:b00c:: with SMTP id x12mr34299194pjq.64.1559622311554; Mon, 03 Jun 2019 21:25:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559622311; cv=none; d=google.com; s=arc-20160816; b=kdAiI0SGBDlgFzK/fiOJGmsCsDylnwTm4nabdu+QIMOUMDGnVsyF65mT/JG2OKOT1M pOH70iHfd88VVkRo7gcJ2MfHHR/I4tRvQL2fB9BiH5aYRBwGLH4InA9Tp9S6ii5OtOeM ncjeZSC1y3o1KOQbc8mfuTNt975svVFtz6gtTe1rKBYyntWNaMiqwnGd8LxpeBWTvzmZ rssRZlxYPq34yVZfFojK2JJNfVZzfATxU53DDqd7tlXR5dfXx7SVmg9MGNwHCMKigBYC XdgQkfSn3Rgn5vYO1s680yQ1fuqINm9si1FlhOe9OEq+fdzd6YY1Oyh7mVDBrFz4YYOK rvOg== 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=vOYmBYIuqHoL3w79vaySPny+DTy0I/1UNe23rg0x9fo=; b=qx40fZhEZX6c58DS4H618cGUk0YOe7/BRlG8NNJcLoP9JhD28OhH56gbhjLvNsnWMQ OM3yYrIQv3m6vSmRQgtf4K5Lw/2PyeZsXDPH4/Njlba692dxj+svZgbj66Qv+9algt4O JGUNVMSldQJzyAZQES6mfM9NGPzshKlSLXeMDPZ5Y17HMT/0kSJw6207GTyvAyOWVPx/ in774YKHThVLSuXGvWLJjWdnqKVXE12GBES97aEk4scXRej8aXahTVf1/CVtuDdtu6ny r467V6ZFOJR3ktOxjexlnh7v2R9OVRiWjE/7VXABtmUTSNIKMYlmEYnVFDhSpSRQSeT/ UVeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Qxh797YM; 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 t4si1900629pjo.24.2019.06.03.21.24.55; Mon, 03 Jun 2019 21:25:11 -0700 (PDT) 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=Qxh797YM; 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 S1726603AbfFDEXs (ORCPT + 99 others); Tue, 4 Jun 2019 00:23:48 -0400 Received: from mail.kernel.org ([198.145.29.99]:38462 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726286AbfFDEXr (ORCPT ); Tue, 4 Jun 2019 00:23:47 -0400 Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76]) (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 A779A24B35; Tue, 4 Jun 2019 04:23:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559622226; bh=yqUxi72cn1v3RF2Lmp76OrRJen60rKvo6j12vc0QZgg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Qxh797YMgBBIdnhM38VPWd4XptoS7s+5V+9jb9asjHs9ZyRMeayka9YgsZm6kZEl8 1e10CXDcznefASbmL3beJTTe5ezhQ77C+Sf1qqSSIjtCXQvR6Dc+e9J4Hu+o0670WK NYbXWVQWQWBN7pgJ/9+XY7NzP1+7FDDXLEJvGat8= Received: by wens.tw (Postfix, from userid 1000) id 7CE025FD5F; Tue, 4 Jun 2019 12:23:43 +0800 (CST) From: Chen-Yu Tsai To: Maxime Ripard , Alessandro Zummo , Alexandre Belloni Cc: Chen-Yu Tsai , Vincent Donnefort , linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Chen-Yu Tsai Subject: [PATCH 2/3] rtc: pcf8563: Clear event flags and disable interrupts before requesting irq Date: Tue, 4 Jun 2019 12:23:36 +0800 Message-Id: <20190604042337.26129-3-wens@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190604042337.26129-1-wens@kernel.org> References: <20190604042337.26129-1-wens@kernel.org> MIME-Version: 1.0 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 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 --- 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 e358313466f1..d8adf69b6697 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