[PATCH V2] i3c: dw: Add shutdown support to dw_i3c_master driver
Guntupalli, Manikanta
manikanta.guntupalli at amd.com
Thu Sep 11 23:54:32 PDT 2025
[Public]
Ping!
> -----Original Message-----
> From: Guntupalli, Manikanta
> Sent: Monday, September 1, 2025 1:18 PM
> To: Manikanta Guntupalli <manikanta.guntupalli at amd.com>; git (AMD-Xilinx)
> <git at amd.com>; alexandre.belloni at bootlin.com; Frank.Li at nxp.com;
> wsa+renesas at sang-engineering.com; quic_msavaliy at quicinc.com; S-k, Shyam-
> sundar <Shyam-sundar.S-k at amd.com>; xiaopei01 at kylinos.cn;
> billy_tsai at aspeedtech.com; linux-i3c at lists.infradead.org; linux-
> kernel at vger.kernel.org
> Cc: Simek, Michal <michal.simek at amd.com>; Pandey, Radhey Shyam
> <radhey.shyam.pandey at amd.com>; Goud, Srinivas <srinivas.goud at amd.com>;
> Datta, Shubhrajyoti <shubhrajyoti.datta at amd.com>; manion05gk at gmail.com
> Subject: RE: [PATCH V2] i3c: dw: Add shutdown support to dw_i3c_master driver
>
> Ping!
>
> > -----Original Message-----
> > From: Manikanta Guntupalli <manikanta.guntupalli at amd.com>
> > Sent: Wednesday, July 30, 2025 8:42 PM
> > To: git (AMD-Xilinx) <git at amd.com>; alexandre.belloni at bootlin.com;
> > Frank.Li at nxp.com; wsa+renesas at sang-engineering.com;
> > quic_msavaliy at quicinc.com; S-k, Shyam-sundar
> > <Shyam-sundar.S-k at amd.com>; xiaopei01 at kylinos.cn;
> > billy_tsai at aspeedtech.com; linux-i3c at lists.infradead.org;
> > linux-kernel at vger.kernel.org
> > Cc: Simek, Michal <michal.simek at amd.com>; Pandey, Radhey Shyam
> > <radhey.shyam.pandey at amd.com>; Goud, Srinivas <srinivas.goud at amd.com>;
> > Datta, Shubhrajyoti <shubhrajyoti.datta at amd.com>;
> > manion05gk at gmail.com; Guntupalli, Manikanta
> > <manikanta.guntupalli at amd.com>
> > Subject: [PATCH V2] i3c: dw: Add shutdown support to dw_i3c_master
> > driver
> >
> > Add shutdown handler to the Synopsys DesignWare I3C master driver,
> > ensuring the device is gracefully disabled during system shutdown.
> >
> > The shutdown handler cancels any pending hot-join work and disables interrupts.
> >
> > Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli at amd.com>
> > ---
> > Changes for V2:
> > Removed pm_runtime_mark_last_busy() call from the shutdown handler, as
> > it is being removed in the following commit.
> > https://lore.kernel.org/linux-pm/20250704075225.3212486-1-
> > sakari.ailus at linux.intel.com/
> > ---
> > drivers/i3c/master/dw-i3c-master.c | 23 +++++++++++++++++++++++
> > 1 file changed, 23 insertions(+)
> >
> > diff --git a/drivers/i3c/master/dw-i3c-master.c
> > b/drivers/i3c/master/dw-i3c-master.c
> > index ae1992665673..2d16b7d74743 100644
> > --- a/drivers/i3c/master/dw-i3c-master.c
> > +++ b/drivers/i3c/master/dw-i3c-master.c
> > @@ -1762,6 +1762,28 @@ static const struct dev_pm_ops dw_i3c_pm_ops = {
> > SET_RUNTIME_PM_OPS(dw_i3c_master_runtime_suspend,
> > dw_i3c_master_runtime_resume, NULL) };
> >
> > +static void dw_i3c_shutdown(struct platform_device *pdev) {
> > + struct dw_i3c_master *master = platform_get_drvdata(pdev);
> > + int ret;
> > +
> > + ret = pm_runtime_resume_and_get(master->dev);
> > + if (ret < 0) {
> > + dev_err(master->dev,
> > + "<%s> cannot resume i3c bus master, err: %d\n",
> > + __func__, ret);
> > + return;
> > + }
> > +
> > + cancel_work_sync(&master->hj_work);
> > +
> > + /* Disable interrupts */
> > + writel((u32)~INTR_ALL, master->regs + INTR_STATUS_EN);
> > + writel((u32)~INTR_ALL, master->regs + INTR_SIGNAL_EN);
> > +
> > + pm_runtime_put_autosuspend(master->dev);
> > +}
> > +
> > static const struct of_device_id dw_i3c_master_of_match[] = {
> > { .compatible = "snps,dw-i3c-master-1.00a", },
> > {},
> > @@ -1777,6 +1799,7 @@ MODULE_DEVICE_TABLE(acpi,
> amd_i3c_device_match);
> > static struct platform_driver dw_i3c_driver = {
> > .probe = dw_i3c_probe,
> > .remove = dw_i3c_remove,
> > + .shutdown = dw_i3c_shutdown,
> > .driver = {
> > .name = "dw-i3c-master",
> > .of_match_table = dw_i3c_master_of_match,
> > --
> > 2.34.1
>
Thanks,
Manikanta.
More information about the linux-i3c
mailing list