]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rtc: ds1390: fix number of bytes read from RTC
authorAndreas Gabriel-Platschek <andi.platschek@gmail.com>
Mon, 9 Feb 2026 05:34:39 +0000 (06:34 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Fri, 20 Feb 2026 22:12:25 +0000 (23:12 +0100)
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 <andi.platschek@gmail.com>
Link: https://patch.msgid.link/20260209053439.313825-1-andi.platschek@gmail.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-ds1390.c

index f46428ca77cc42cf56e002d4807410a66364c04e..f7afd6bdeb4a8ec8cce7b12115a49a330da66ed5 100644 (file)
@@ -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;