All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joshua Yeong <joshua.yeong@starfivetech.com>
To: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>,
	"alexandre.belloni@bootlin.com" <alexandre.belloni@bootlin.com>,
	"linux-i3c@lists.infradead.org" <linux-i3c@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "andersson@kernel.org" <andersson@kernel.org>,
	"vkoul@kernel.org" <vkoul@kernel.org>,
	"manivannan.sadhasivam@linaro.org"
	<manivannan.sadhasivam@linaro.org>
Subject: RE: [PATCH v1] i3c: master: Enable runtime PM for master controller
Date: Fri, 15 Mar 2024 08:05:55 +0000	[thread overview]
Message-ID: <SH0PR01MB08419B8683E8F2DD05A791BBF928A@SH0PR01MB0841.CHNPR01.prod.partner.outlook.cn> (raw)
In-Reply-To: <b61f5f4a-7931-411d-9519-bbff1b7fd6f9@quicinc.com>



> -----Original Message-----
> From: linux-i3c <linux-i3c-bounces@lists.infradead.org> On Behalf Of Mukesh
> Kumar Savaliya
> Sent: Monday, March 11, 2024 1:30 AM
> To: alexandre.belloni@bootlin.com; linux-i3c@lists.infradead.org; linux-
> kernel@vger.kernel.org
> Cc: andersson@kernel.org; vkoul@kernel.org;
> manivannan.sadhasivam@linaro.org
> Subject: Re: [PATCH v1] i3c: master: Enable runtime PM for master controller
> 
> A Gentle reminder ! As i was not part of the linux-i3c group before raising this
> gerrit, might not went into right folder.
> 
> On 2/28/2024 3:04 PM, Mukesh Kumar Savaliya wrote:
> > Enable runtime PM for i3c master node during master registration time.
> >
> > Sometimes i3c client device driver may want to control the PM of the
> > parent (master) to perform the transactions and save the power in an
> > efficient way by controlling the session. Hence device can call PM
> > APIs by passing the parent node.
> >
> > Here, I3C target device when calls pm_runtime_get_sync(dev->parent)
> > couldn't invoke master drivers runtime PM callback registered by the
> > master driver because parent's PM status was disabled in the Master
> > node.
> >
> > Also call pm_runtime_no_callbacks() and pm_suspend_ignore_children()
> > for the master node to not have any callback addition and ignore the
> > children to have runtime PM work just locally in the driver. This
> > should be generic and common change for all i3c devices and should not
> > have any other impact.
> >
> > With these changes, I3C client device works and able to invoke master
> > driver registered runtime PM callbacks.
> >
> > Signed-off-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
> > ---
> >   drivers/i3c/master.c | 6 ++++++
> >   1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index
> > 3afa530c5e32..a3dc88974f92 100644
> > --- a/drivers/i3c/master.c
> > +++ b/drivers/i3c/master.c
> > @@ -13,6 +13,7 @@
> >   #include <linux/kernel.h>
> >   #include <linux/list.h>
> >   #include <linux/of.h>
> > +#include <linux/pm_runtime.h>
> >   #include <linux/slab.h>
> >   #include <linux/spinlock.h>
> >   #include <linux/workqueue.h>
> > @@ -2812,6 +2813,10 @@ int i3c_master_register(struct
> > i3c_master_controller *master,
> >
> >   	i3c_bus_notify(i3cbus, I3C_NOTIFY_BUS_ADD);
> >
> > +	pm_runtime_no_callbacks(&master->dev);
> > +	pm_suspend_ignore_children(&master->dev, true);
> > +	pm_runtime_enable(&master->dev);
> > +

Will runtime pm impact on ibi request from target?

> >   	/*
> >   	 * We're done initializing the bus and the controller, we can now
> >   	 * register I3C devices discovered during the initial DAA.
> > @@ -2849,6 +2854,7 @@ void i3c_master_unregister(struct
> i3c_master_controller *master)
> >   	i3c_master_i2c_adapter_cleanup(master);
> >   	i3c_master_unregister_i3c_devs(master);
> >   	i3c_master_bus_cleanup(master);
> > +	pm_runtime_disable(&master->dev);
> >   	device_unregister(&master->dev);
> >   }
> >   EXPORT_SYMBOL_GPL(i3c_master_unregister);
> 
> --
> linux-i3c mailing list
> linux-i3c@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-i3c

-- 
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c

WARNING: multiple messages have this Message-ID (diff)
From: Joshua Yeong <joshua.yeong@starfivetech.com>
To: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>,
	"alexandre.belloni@bootlin.com" <alexandre.belloni@bootlin.com>,
	"linux-i3c@lists.infradead.org" <linux-i3c@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "andersson@kernel.org" <andersson@kernel.org>,
	"vkoul@kernel.org" <vkoul@kernel.org>,
	"manivannan.sadhasivam@linaro.org"
	<manivannan.sadhasivam@linaro.org>
Subject: RE: [PATCH v1] i3c: master: Enable runtime PM for master controller
Date: Fri, 15 Mar 2024 08:05:55 +0000	[thread overview]
Message-ID: <SH0PR01MB08419B8683E8F2DD05A791BBF928A@SH0PR01MB0841.CHNPR01.prod.partner.outlook.cn> (raw)
In-Reply-To: <b61f5f4a-7931-411d-9519-bbff1b7fd6f9@quicinc.com>



> -----Original Message-----
> From: linux-i3c <linux-i3c-bounces@lists.infradead.org> On Behalf Of Mukesh
> Kumar Savaliya
> Sent: Monday, March 11, 2024 1:30 AM
> To: alexandre.belloni@bootlin.com; linux-i3c@lists.infradead.org; linux-
> kernel@vger.kernel.org
> Cc: andersson@kernel.org; vkoul@kernel.org;
> manivannan.sadhasivam@linaro.org
> Subject: Re: [PATCH v1] i3c: master: Enable runtime PM for master controller
> 
> A Gentle reminder ! As i was not part of the linux-i3c group before raising this
> gerrit, might not went into right folder.
> 
> On 2/28/2024 3:04 PM, Mukesh Kumar Savaliya wrote:
> > Enable runtime PM for i3c master node during master registration time.
> >
> > Sometimes i3c client device driver may want to control the PM of the
> > parent (master) to perform the transactions and save the power in an
> > efficient way by controlling the session. Hence device can call PM
> > APIs by passing the parent node.
> >
> > Here, I3C target device when calls pm_runtime_get_sync(dev->parent)
> > couldn't invoke master drivers runtime PM callback registered by the
> > master driver because parent's PM status was disabled in the Master
> > node.
> >
> > Also call pm_runtime_no_callbacks() and pm_suspend_ignore_children()
> > for the master node to not have any callback addition and ignore the
> > children to have runtime PM work just locally in the driver. This
> > should be generic and common change for all i3c devices and should not
> > have any other impact.
> >
> > With these changes, I3C client device works and able to invoke master
> > driver registered runtime PM callbacks.
> >
> > Signed-off-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
> > ---
> >   drivers/i3c/master.c | 6 ++++++
> >   1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index
> > 3afa530c5e32..a3dc88974f92 100644
> > --- a/drivers/i3c/master.c
> > +++ b/drivers/i3c/master.c
> > @@ -13,6 +13,7 @@
> >   #include <linux/kernel.h>
> >   #include <linux/list.h>
> >   #include <linux/of.h>
> > +#include <linux/pm_runtime.h>
> >   #include <linux/slab.h>
> >   #include <linux/spinlock.h>
> >   #include <linux/workqueue.h>
> > @@ -2812,6 +2813,10 @@ int i3c_master_register(struct
> > i3c_master_controller *master,
> >
> >   	i3c_bus_notify(i3cbus, I3C_NOTIFY_BUS_ADD);
> >
> > +	pm_runtime_no_callbacks(&master->dev);
> > +	pm_suspend_ignore_children(&master->dev, true);
> > +	pm_runtime_enable(&master->dev);
> > +

Will runtime pm impact on ibi request from target?

> >   	/*
> >   	 * We're done initializing the bus and the controller, we can now
> >   	 * register I3C devices discovered during the initial DAA.
> > @@ -2849,6 +2854,7 @@ void i3c_master_unregister(struct
> i3c_master_controller *master)
> >   	i3c_master_i2c_adapter_cleanup(master);
> >   	i3c_master_unregister_i3c_devs(master);
> >   	i3c_master_bus_cleanup(master);
> > +	pm_runtime_disable(&master->dev);
> >   	device_unregister(&master->dev);
> >   }
> >   EXPORT_SYMBOL_GPL(i3c_master_unregister);
> 
> --
> linux-i3c mailing list
> linux-i3c@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-i3c

  reply	other threads:[~2024-03-15  8:06 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-28  9:34 [PATCH v1] i3c: master: Enable runtime PM for master controller Mukesh Kumar Savaliya
2024-02-28  9:34 ` Mukesh Kumar Savaliya
2024-03-10 17:29 ` Mukesh Kumar Savaliya
2024-03-10 17:29   ` Mukesh Kumar Savaliya
2024-03-15  8:05   ` Joshua Yeong [this message]
2024-03-15  8:05     ` Joshua Yeong
2024-03-15 13:46     ` Mukesh Kumar Savaliya
2024-03-15 13:46       ` Mukesh Kumar Savaliya
2024-05-07 21:05 ` Alexandre Belloni
2024-05-07 21:05   ` Alexandre Belloni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SH0PR01MB08419B8683E8F2DD05A791BBF928A@SH0PR01MB0841.CHNPR01.prod.partner.outlook.cn \
    --to=joshua.yeong@starfivetech.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andersson@kernel.org \
    --cc=linux-i3c@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=quic_msavaliy@quicinc.com \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.