On Fri, Jun 12, 2026 at 07:04:42PM +0300, Claudiu Beznea wrote:
> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> Hi,
>
> This series adjusts the suspend to RAM code to handle cases where power
> to the connected devices is lost during suspend to RAM. The fixes
> included in this series are required for that support.
>
> Along with suspend to RAM support, runtime PM support is also added.
> Cleanup patches were included to prepare for clean runtime PM support.
>
> Please note that series need to be applied on top of [1] since
> patch "i3c: renesas: Perform Dynamic Address Assignment on resume"
> uses i3c_master_reattach_i3c_dev_locked().
Please sashiko AI review result, except pre-existing problem you can fix
later, other problem need be fixed or provide your judegement.
Frank
>
> Thank you,
> Claudiu
>
> Changes in v4:
> - dropped patch "i3c: renesas: Do not attach devices if xfer failed"
> - fixed the swap in renesas_i3c_group_devs_in_slots() for i3c->addr[]
> renesas_i3c_irqs_mask_and_clear();
> - in patch 16/16 renamed renesas_i3c_abort_xfer() from v3 to
>
> Changes in v3:
> - re-based on top of series [1] to be able to use
> i3c_master_reattach_i3c_dev_locked()
> - used i3c_master_reattach_i3c_dev_locked() on patch
> "i3c: renesas: Perform Dynamic Address Assignment on resume" along with
> grouping the I2C and I3C devices in the driver slot
> - collected tags
>
> Changes in v2:
> - dropped patch "i3c: renesas: Use the divider 128"
> - adjusted the patches title and description where requested in the
> review process
> - adjusted the DAA procedure after resume to still properly re-configure
> the controller in case the bus was full before a suspend
> - added patch "i3c: renesas: Do not attach devices if xfer failed"
> - collected tags
>
> [1] https://lore.kernel.org/linux-i3c/20260525064209.2263045-1-lakshay.piplani@nxp.com/T/#m74ddb24e1e3a8006d933bd6106cc0c4508a11d2c
>
> Claudiu Beznea (16):
> i3c: renesas: Check that the transfer is valid before accessing it
> i3c: renesas: Restore STDBR and EXTBR registers on resume
> i3c: renesas: Follow the reset deassert order used in probe
> i3c: renesas: Reconfigure the DATBAS register on re-attach
> i3c: renesas: Reset the controller on resume
> i3c: renesas: Perform Dynamic Address Assignment on resume
> i3c: renesas: Clean DATBAS register on detach
> i3c: renesas: Use reset_control_bulk_{assert, deassert}()
> i3c: renesas: Return immediately if there is no transfer
> i3c: renesas: Follow a unified pattern for transfer and command
> initialization
> i3c: renesas: Drop the explicit memset() call
> i3c: renesas: Update HW registers after SW computations are done
> i3c: renesas: Organize structures to avoid unnecessary padding
> i3c: renesas: Use the "dev_name:irq_name" format for the interrupt
> name
> i3c: renesas: Drop unnecessary tab
> i3c: renesas: Add runtime PM support
>
> drivers/i3c/master/renesas-i3c.c | 541 +++++++++++++++++++++++--------
> 1 file changed, 413 insertions(+), 128 deletions(-)
>
> --
> 2.43.0
>