[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<DM4PR12MB610914E1B473AB7D4840103B8C08A@DM4PR12MB6109.namprd12.prod.outlook.com>
Date: Fri, 12 Sep 2025 06:54:32 +0000
From: "Guntupalli, Manikanta" <manikanta.guntupalli@....com>
To: "git (AMD-Xilinx)" <git@....com>, "alexandre.belloni@...tlin.com"
<alexandre.belloni@...tlin.com>, "Frank.Li@....com" <Frank.Li@....com>,
"wsa+renesas@...g-engineering.com" <wsa+renesas@...g-engineering.com>,
"quic_msavaliy@...cinc.com" <quic_msavaliy@...cinc.com>, "S-k, Shyam-sundar"
<Shyam-sundar.S-k@....com>, "xiaopei01@...inos.cn" <xiaopei01@...inos.cn>,
"billy_tsai@...eedtech.com" <billy_tsai@...eedtech.com>,
"linux-i3c@...ts.infradead.org" <linux-i3c@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC: "Simek, Michal" <michal.simek@....com>, "Pandey, Radhey Shyam"
<radhey.shyam.pandey@....com>, "Goud, Srinivas" <srinivas.goud@....com>,
"Datta, Shubhrajyoti" <shubhrajyoti.datta@....com>, "manion05gk@...il.com"
<manion05gk@...il.com>
Subject: RE: [PATCH V2] i3c: dw: Add shutdown support to dw_i3c_master driver
[Public]
Ping!
> -----Original Message-----
> From: Guntupalli, Manikanta
> Sent: Monday, September 1, 2025 1:18 PM
> To: Manikanta Guntupalli <manikanta.guntupalli@....com>; git (AMD-Xilinx)
> <git@....com>; alexandre.belloni@...tlin.com; Frank.Li@....com;
> wsa+renesas@...g-engineering.com; quic_msavaliy@...cinc.com; S-k, Shyam-
> sundar <Shyam-sundar.S-k@....com>; xiaopei01@...inos.cn;
> billy_tsai@...eedtech.com; linux-i3c@...ts.infradead.org; linux-
> kernel@...r.kernel.org
> Cc: Simek, Michal <michal.simek@....com>; Pandey, Radhey Shyam
> <radhey.shyam.pandey@....com>; Goud, Srinivas <srinivas.goud@....com>;
> Datta, Shubhrajyoti <shubhrajyoti.datta@....com>; manion05gk@...il.com
> Subject: RE: [PATCH V2] i3c: dw: Add shutdown support to dw_i3c_master driver
>
> Ping!
>
> > -----Original Message-----
> > From: Manikanta Guntupalli <manikanta.guntupalli@....com>
> > Sent: Wednesday, July 30, 2025 8:42 PM
> > To: git (AMD-Xilinx) <git@....com>; alexandre.belloni@...tlin.com;
> > Frank.Li@....com; wsa+renesas@...g-engineering.com;
> > quic_msavaliy@...cinc.com; S-k, Shyam-sundar
> > <Shyam-sundar.S-k@....com>; xiaopei01@...inos.cn;
> > billy_tsai@...eedtech.com; linux-i3c@...ts.infradead.org;
> > linux-kernel@...r.kernel.org
> > Cc: Simek, Michal <michal.simek@....com>; Pandey, Radhey Shyam
> > <radhey.shyam.pandey@....com>; Goud, Srinivas <srinivas.goud@....com>;
> > Datta, Shubhrajyoti <shubhrajyoti.datta@....com>;
> > manion05gk@...il.com; Guntupalli, Manikanta
> > <manikanta.guntupalli@....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@....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@...ux.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.
Powered by blists - more mailing lists