Re: [PATCH] rtc: m41t80: Complete error propagation from SMBus calls

From: Maciej W. Rozycki
Date: Wed Nov 14 2018 - 07:06:08 EST


On Wed, 14 Nov 2018, Alexandre Belloni wrote:

> > I'll be posting further patches over the coming weeks, based on my
> > original effort as archived here: <https://lkml.org/lkml/2008/5/12/385>,
> > <https://lore.kernel.org/patchwork/project/lkml/list/?series=73524&archive=both>
> > However I have just realised they'll need another iteration before I post
> > them. So for now just these two obvious fixes.
> >
>
> Regarding the persistent part, do you really need more than what is
> provided? As far as I know, the timekeeping core is already taking care
> of using the best source to get the suspended time.

For that we have platform code duplicating what the RTC framework
already does. Some of that cannot be made to work reasonably. See e.g.
arch/mips/dec/time.c or arch/mips/sibyte/swarm/rtc_*.c.

The DEC code is technically sound, but spreads the same function (RTC
r/w access) across another place, in addition to drivers/rtc/rtc-cmos.c.
The SiByte code bypasses the I2C driver and therefore cannot be
converted to use I2C interrupts, which means system latency problems.
The write part used for NTP can be removed right away by making it
return -ENODEV, and I have separate patches to do that for these
platforms. The read part cannot AFAICT.

I think we can discuss that when I post the patches. The m41t80 driver
currently does not work for me anyway and has to be fixed because of:

i2c /dev entries driver
i2c-sibyte: i2c SMBus adapter module for SiByte board
i2c i2c-1: doesn't support I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_I2C_BLOCK

and the persistent part is only one patch in the upcoming number of
changes.

Thanks for taking the other three patches.

Maciej