From 5831f5fef10030c175e585d51b0e793dc6fef6ab Mon Sep 17 00:00:00 2001 From: Igor Velkov Date: Sun, 4 Oct 2026 23:56:53 +0000 Subject: [PATCH] rtc: pcf8563: pass the driver data to the alarm interrupt handler pcf8563_irq() takes its dev_id as struct pcf8563, but probe still registers the interrupt with the i2c client. The handler then takes the regmap pointer from the wrong structure: the first alarm oopses, the level-low INT is never acknowledged, and the interrupt gets disabled as spurious. Only an RTC that has an interrupt (client->irq > 0) reaches this path. Fixes: 00f1bb9b8486 ("rtc: pcf8563: Switch to regmap") Cc: stable@vger.kernel.org Assisted-by: LLM Signed-off-by: Igor Velkov Reviewed-by: Nobuhiro Iwamtasu Link: https://patch.msgid.link/20261004-pcf8563-irq-data-v1-1-f176763ddf2f@iav.lv Signed-off-by: Alexandre Belloni --- drivers/rtc/rtc-pcf8563.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-pcf8563.c b/drivers/rtc/rtc-pcf8563.c index 56e75664c7b4..3801acc9ac8d 100644 --- a/drivers/rtc/rtc-pcf8563.c +++ b/drivers/rtc/rtc-pcf8563.c @@ -532,7 +532,7 @@ static int pcf8563_probe(struct i2c_client *client) err = devm_request_threaded_irq(&client->dev, client->irq, NULL, pcf8563_irq, IRQF_SHARED | IRQF_ONESHOT | irqflags, - pcf8563_driver.driver.name, client); + pcf8563_driver.driver.name, pcf8563); if (err) { dev_err(&client->dev, "unable to request IRQ %d\n", client->irq);