Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp672268ybl; Fri, 24 Jan 2020 07:29:00 -0800 (PST) X-Google-Smtp-Source: APXvYqwACya1HzNqMMz1rYyA3NZ6veVi/CwL4C8BWWRjANUW4GVcypP1aTzQpjelII42EEh8fi8x X-Received: by 2002:a54:4f14:: with SMTP id e20mr2225327oiy.84.1579879740189; Fri, 24 Jan 2020 07:29:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579879740; cv=none; d=google.com; s=arc-20160816; b=K+zFYGzjViRcxGQdOLLUmNYdBhQPnYJnASm7YYs0pz+GEpCA1C9bCLN3ARtNHZbsqv yAYnNcTIms0iXnL4qGfjYUgYejLkpYTzLhsWMamTie6lRVKdbSQixhTCKH39wzX6TPPA x4XmVKns/30q7DyzmtltdwhSE6OQsgmJHOFjaTVCcuRQL3f2S3rgAT+EXn+bjQRsKVM6 rrsNy6SKx3WiDjwvDj6gZJ7WvfCSw8kQKpRtqfap9m9Tz0ucUYjB4T5u9C5OT8Olu7F3 UmjwvyGv9Ny23uRrOCKAFMD4bw+lTeUNxCHp7plQmL0DUzN6OlVH9QEJZzuhan5biKrP qcSA== 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=03FgH3DPYvc7hl2fDuJTr1Zr/es4sdky1I24zHETTW4=; b=TG1aCavqHxKb1wNuDhrRhMM6fZYn5yUbroEc1n1hSvUxwu0S/LrDL+duKY3m5fpCya tDqtyAP5bvqU3atq7FTdgs+p7EvRio0kRtYUwLTiQ4I49mAmtKS9EjoXike8hERvAykP zTf7djdJKnBhvS8m1bXyiXrqIzMQXNXJ7f1X8XrWjb8mOTyvSZJGqDllpbHC/jD5XsPC 2ZiW3u30Np7Fcqq7NnVSkGsFaGnBxqxBVK6+G+wmh+/VnjeFvFx5Z2p686r3/PqCRuZw G3Yo6N5lrJLbb21pr2zjMlCMMyo0UgGEF3kIyvp++UAPhLm4WS0ZGpFcTB6ONnIB68su 7ZQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=k9hE5Ufp; 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 g5si2966041otn.232.2020.01.24.07.28.47; Fri, 24 Jan 2020 07:29:00 -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=k9hE5Ufp; 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 S2388891AbgAXKCP (ORCPT + 99 others); Fri, 24 Jan 2020 05:02:15 -0500 Received: from mail.kernel.org ([198.145.29.99]:37662 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731227AbgAXKCN (ORCPT ); Fri, 24 Jan 2020 05:02:13 -0500 Received: from localhost (unknown [145.15.244.15]) (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 71C5021556; Fri, 24 Jan 2020 10:02:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579860133; bh=pZLIaRSl2RYAakpllL5jjs4i10QHzxG7zaKwfbWSW9E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k9hE5UfpFRnxQqIahU5pJifK47VH4/S11EK8gGoKouJOCSiovjEiK3jw3INs8ksXX EcTKbix1gaIgF6Mm8CusQu+DgxyatwOe5fCz4QzeprxIuy8vWTh4J2FweNb3ns6utw 2cm3+SyGe07m7QU+5QA8ByYzc3J89GbO5hnhhpZg= 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.14 241/343] rtc: pcf8563: Clear event flags and disable interrupts before requesting irq Date: Fri, 24 Jan 2020 10:30:59 +0100 Message-Id: <20200124092951.817463450@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200124092919.490687572@linuxfoundation.org> References: <20200124092919.490687572@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 ef04472dde1d2..4d0b81f9805f8 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