From 969c3cca0f3b88682cd833cee4cf01b0915629a3 Mon Sep 17 00:00:00 2001 From: Andreas Gabriel-Platschek Date: Mon, 9 Feb 2026 06:34:39 +0100 Subject: [PATCH] rtc: ds1390: fix number of bytes read from RTC The spi_write_then_read() reads 8 bytes starting from DS1390_REG_SECONDS (== 0x01), so the last byte read would already be part of the alarm (Tenths and Hundredths of Seconds) feature. However 7 bytes are engouh -- seconds (0x01), minutes (0x02), hours (0x03), day (0x04), date (0x05), month/century (0x06) and year (0x07). Signed-off-by: Andreas Gabriel-Platschek Link: https://patch.msgid.link/20260209053439.313825-1-andi.platschek@gmail.com Signed-off-by: Alexandre Belloni --- drivers/rtc/rtc-ds1390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-ds1390.c b/drivers/rtc/rtc-ds1390.c index f46428ca77cc..f7afd6bdeb4a 100644 --- a/drivers/rtc/rtc-ds1390.c +++ b/drivers/rtc/rtc-ds1390.c @@ -134,7 +134,7 @@ static int ds1390_read_time(struct device *dev, struct rtc_time *dt) chip->txrx_buf[0] = DS1390_REG_SECONDS; /* do the i/o */ - status = spi_write_then_read(spi, chip->txrx_buf, 1, chip->txrx_buf, 8); + status = spi_write_then_read(spi, chip->txrx_buf, 1, chip->txrx_buf, 7); if (status != 0) return status; -- 2.47.3