On Wed Sep 30, 2026 at 5:25 PM CEST, Alexandre Belloni wrote: >> Because of this fallback, when pcf8563_rtc_read_time() reads the time: >> >> drivers/rtc/rtc-pcf8563.c:pcf8563_rtc_read_time() { >> ... >> err = regmap_bulk_read(pcf8563->regmap, PCF8563_REG_ST1, buf, >> sizeof(buf)); >> ... >> } >> >> The bulk read executes as a loop of separate single-byte SMBus reads instead >> of an atomic transaction. Since each SMBus byte transaction issues its own >> STOP condition, the RTC's internal register latch is released between reads. >> >> Does this allow the hardware time to roll over mid-read and result in >> corrupt time data? > > This is a valid concern, did you test? Yes, did you read my first reply? I'm not sure how this is handled in the RTC subsystem. Most regmap converted RTC should fall into this case. How do you propose to handle that? Instead of removing the check, we could just test for either I2C or SMBus block read. Anyway, I have an SMBus host controller which supports the block read, thus it doesn't fall into the single byte read case. -michael