On Tue, 13 May 2008 17:57:52 +0100 (BST), "Maciej W. Rozycki" <macro@xxxxxxxxxxxxxx> wrote: > > You will do this even if all the registers were read as a block and the > > RTC latched the register values so they have to be correct. Isn't it a > > bit unfair / inefficient? If client->adapter has the > > I2C_FUNC_SMBUS_READ_I2C_BLOCK functionality you can skip the comparison > > and retry mechanism completely, saving some time and CPU cycles. > > Well, actually there is a reason beyond that. It may change if we > support subsecond resolution, but we currently do not. The reason is if > we return the original timestamp and the seconds register changes while > the timestamp is being read, then effectively we return a value that is > off by one second. This is why for seconds I decided to return the second > value read all the time. I suppose the "off by one second" issue is not the matter each driver should take care of. This race is common for most RTC chip. I do not have strong opinion for optimization suggested by Jean. It might be better, but I'm OK with current your patch. --- Atsushi Nemoto