[PATCH v2 0/9] Add support for I2C bus recovery for riic driver

Prabhakar posted 9 patches 12 months ago
drivers/i2c/busses/i2c-riic.c | 222 ++++++++++++++++++++++++----------
1 file changed, 155 insertions(+), 67 deletions(-)
[PATCH v2 0/9] Add support for I2C bus recovery for riic driver
Posted by Prabhakar 12 months ago
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Hi All,

This patch series introduces support for I2C bus recovery in the RIIC
driver, which is utilized in RZ series SoCs. The addition of bus recovery
functionality enhances the reliability of the I2C interface by allowing it
to recover from error conditions that might leave the bus in an unusable
state.

Alongside the bus recovery implementation, the series includes several
cleanup and improvement patches that simplify and modernize the driver
code. These include replacing `dev_err` calls with `dev_err_probe`,
consistent usage of the `BIT` and `GENMASK` macros, leveraging devres
helpers for reset management, and improving code readability by marking
static data as `const`.

v1->v2
- Fixed review comments and collected RB tags from Geert

v1:
https://lore.kernel.org/all/20241213175828.909987-1-prabhakar.mahadev-lad.rj@bp.renesas.com/

Cheers,
Prabhakar

Lad Prabhakar (9):
  i2c: riic: Replace dev_err with dev_err_probe in probe function
  i2c: riic: Use local `dev` pointer in `dev_err_probe()`
  i2c: riic: Use BIT macro consistently
  i2c: riic: Use GENMASK() macro for bitmask definitions
  i2c: riic: Make use of devres helper to request deasserted reset line
  i2c: riic: Mark riic_irqs array as const
  i2c: riic: Use predefined macro and simplify clock tick calculation
  i2c: riic: Add `riic_bus_barrier()` to check bus availability
  i2c: riic: Implement bus recovery

 drivers/i2c/busses/i2c-riic.c | 222 ++++++++++++++++++++++++----------
 1 file changed, 155 insertions(+), 67 deletions(-)

-- 
2.43.0
Re: [PATCH v2 0/9] Add support for I2C bus recovery for riic driver
Posted by Andi Shyti 11 months, 3 weeks ago
Hi,

> Lad Prabhakar (9):
>   i2c: riic: Replace dev_err with dev_err_probe in probe function
>   i2c: riic: Use local `dev` pointer in `dev_err_probe()`

just a change re-ordering here.

>   i2c: riic: Use BIT macro consistently
>   i2c: riic: Use GENMASK() macro for bitmask definitions

I'm OK with these two patches to be separate.

>   i2c: riic: Make use of devres helper to request deasserted reset line
>   i2c: riic: Mark riic_irqs array as const
>   i2c: riic: Use predefined macro and simplify clock tick calculation
>   i2c: riic: Add `riic_bus_barrier()` to check bus availability
>   i2c: riic: Implement bus recovery

There were a few comments on this patch '9' that are waiting for
a follow up.

If you want you can split the series and send patches 1-8 and I
can merge them in the meantime. Patch '9' can be taken once we
are sure about the change from a hardware perspective.

Thanks,
Andi
Re: [PATCH v2 0/9] Add support for I2C bus recovery for riic driver
Posted by Claudiu Beznea 12 months ago
Hi, Prabhakar,

On 18.12.2024 02:16, Prabhakar wrote:
> Lad Prabhakar (9):
>   i2c: riic: Replace dev_err with dev_err_probe in probe function
>   i2c: riic: Use local `dev` pointer in `dev_err_probe()`
>   i2c: riic: Use BIT macro consistently
>   i2c: riic: Use GENMASK() macro for bitmask definitions
>   i2c: riic: Make use of devres helper to request deasserted reset line
>   i2c: riic: Mark riic_irqs array as const
>   i2c: riic: Use predefined macro and simplify clock tick calculation
>   i2c: riic: Add `riic_bus_barrier()` to check bus availability
>   i2c: riic: Implement bus recovery

I've tested this series on RZ/G3S checking the already enabled
functionalities and suspend to RAM. All good. Please add:

Tested-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>

Thank you,
Claudiu
Re: [PATCH v2 0/9] Add support for I2C bus recovery for riic driver
Posted by Wolfram Sang 12 months ago
> This patch series introduces support for I2C bus recovery in the RIIC
> driver, which is utilized in RZ series SoCs. The addition of bus recovery
> functionality enhances the reliability of the I2C interface by allowing it
> to recover from error conditions that might leave the bus in an unusable
> state.
> 
> Alongside the bus recovery implementation, the series includes several
> cleanup and improvement patches that simplify and modernize the driver
> code. These include replacing `dev_err` calls with `dev_err_probe`,
> consistent usage of the `BIT` and `GENMASK` macros, leveraging devres
> helpers for reset management, and improving code readability by marking
> static data as `const`.

I am planning to review and test this series later today.

Re: [PATCH v2 0/9] Add support for I2C bus recovery for riic driver
Posted by Wolfram Sang 12 months ago
On Fri, Dec 20, 2024 at 01:02:51PM +0100, Wolfram Sang wrote:
> 
> > This patch series introduces support for I2C bus recovery in the RIIC
> > driver, which is utilized in RZ series SoCs. The addition of bus recovery
> > functionality enhances the reliability of the I2C interface by allowing it
> > to recover from error conditions that might leave the bus in an unusable
> > state.
> > 
> > Alongside the bus recovery implementation, the series includes several
> > cleanup and improvement patches that simplify and modernize the driver
> > code. These include replacing `dev_err` calls with `dev_err_probe`,
> > consistent usage of the `BIT` and `GENMASK` macros, leveraging devres
> > helpers for reset management, and improving code readability by marking
> > static data as `const`.
> 
> I am planning to review and test this series later today.

Thanks for this series! Regarding the cleanups, rhe driver is indeed in
a better shape afterwards. Good work. Patch 9 still needs discussion but
for patches 1-8:

Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

On a RZ/G3S, doing bus scans and some transfers with checksumming.