All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manivannan Sadhasivam <mani@kernel.org>
To: Krishna Chaitanya Chundru <quic_krichai@quicinc.com>
Cc: manivannan.sadhasivam@linaro.org, helgaas@kernel.org,
	linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-kernel@vger.kernel.org, quic_vbadigan@quicinc.com,
	quic_nitegupt@quicinc.com, quic_skananth@quicinc.com,
	quic_ramkri@quicinc.com, krzysztof.kozlowski@linaro.org,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Jeffrey Hugo" <quic_jhugo@quicinc.com>,
	"open list:MHI BUS" <mhi@lists.linux.dev>
Subject: Re: [PATCH v4 3/9] PCI: epf-mhi: Add support for handling D-state notify from EPC
Date: Tue, 1 Aug 2023 22:51:42 +0530	[thread overview]
Message-ID: <20230801172142.GA76659@thinkpad> (raw)
In-Reply-To: <0a6ca984-9797-88b1-ae12-c64916f6c61c@quicinc.com>

On Tue, Aug 01, 2023 at 10:31:42AM +0530, Krishna Chaitanya Chundru wrote:
> 
> On 7/31/2023 11:05 AM, Krishna Chaitanya Chundru wrote:
> > 
> > On 7/28/2023 9:39 AM, Manivannan Sadhasivam wrote:
> > > On Thu, Jul 13, 2023 at 12:40:12PM +0530, Krishna chaitanya chundru
> > > wrote:
> > > > Add support for handling D-state notify for MHI EPF.
> > > > 
> > > > Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
> > > > ---
> > > >   drivers/pci/endpoint/functions/pci-epf-mhi.c | 11 +++++++++++
> > > >   include/linux/mhi_ep.h                       |  3 +++
> > > >   2 files changed, 14 insertions(+)
> > > > 
> > > > diff --git a/drivers/pci/endpoint/functions/pci-epf-mhi.c
> > > > b/drivers/pci/endpoint/functions/pci-epf-mhi.c
> > > > index 9c1f5a1..ee91bfc 100644
> > > > --- a/drivers/pci/endpoint/functions/pci-epf-mhi.c
> > > > +++ b/drivers/pci/endpoint/functions/pci-epf-mhi.c
> > > > @@ -339,6 +339,16 @@ static int pci_epf_mhi_bme(struct pci_epf *epf)
> > > >       return 0;
> > > >   }
> > > >   +static int pci_epf_mhi_dstate_notify(struct pci_epf *epf,
> > > > pci_power_t state)
> > > > +{
> > > > +    struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
> > > > +    struct mhi_ep_cntrl *mhi_cntrl = &epf_mhi->mhi_cntrl;
> > > > +
> > > > +    mhi_cntrl->dstate = state;
> > > Where is this variable being used? Also, don't we need any locking?
> > > 
> > > - Mani
> > 
> > we are using this variable in wakeup host op which is introduced on
> > patch [PATCH v4 8/9] PCI: epf-mhi: Add wakeup host op
> > 
> > I will add lock in my next series.
> > 
> > - KC
> 
> Mani, as this is being called from IRQ context do we need to add any lock
> here.
> 

Notifiers are invoked in process context. And here, the context doesn't matter
as either way you need locking to prevent concurrent access to dstate variable.

But I think it is safe to ignore lock for now provided that wakeup_host callback
is only called while MHI is in M3 state. Even if dstate changes while processing
wakeup_host, it won't affect the behavior.

- Mani

> - KC
> 
> > 
> > > 
> > > > +
> > > > +    return 0;
> > > > +}
> > > > +
> > > >   static int pci_epf_mhi_bind(struct pci_epf *epf)
> > > >   {
> > > >       struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
> > > > @@ -394,6 +404,7 @@ static struct pci_epc_event_ops
> > > > pci_epf_mhi_event_ops = {
> > > >       .link_up = pci_epf_mhi_link_up,
> > > >       .link_down = pci_epf_mhi_link_down,
> > > >       .bme = pci_epf_mhi_bme,
> > > > +    .dstate_notify = pci_epf_mhi_dstate_notify,
> > > >   };
> > > >     static int pci_epf_mhi_probe(struct pci_epf *epf,
> > > > diff --git a/include/linux/mhi_ep.h b/include/linux/mhi_ep.h
> > > > index f198a8a..c3a0685 100644
> > > > --- a/include/linux/mhi_ep.h
> > > > +++ b/include/linux/mhi_ep.h
> > > > @@ -8,6 +8,7 @@
> > > >     #include <linux/dma-direction.h>
> > > >   #include <linux/mhi.h>
> > > > +#include <linux/pci.h>
> > > >     #define MHI_EP_DEFAULT_MTU 0x8000
> > > >   @@ -139,6 +140,8 @@ struct mhi_ep_cntrl {
> > > >         enum mhi_state mhi_state;
> > > >   +    pci_power_t dstate;
> > > > +
> > > >       u32 max_chan;
> > > >       u32 mru;
> > > >       u32 event_rings;
> > > > -- 
> > > > 2.7.4
> > > > 
> > 

-- 
மணிவண்ணன் சதாசிவம்

  reply	other threads:[~2023-08-01 17:22 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-13  7:10 [PATCH v4 0/9] PCI: EPC: Add support to wake up host from D3 states Krishna chaitanya chundru
2023-07-13  7:10 ` [PATCH v4 1/9] PCI: endpoint: Add D-state change notifier support Krishna chaitanya chundru
2023-07-28  3:01   ` Manivannan Sadhasivam
2023-07-13  7:10 ` [PATCH v4 2/9] PCI: qcom-ep: Add support for D-state change notification Krishna chaitanya chundru
2023-07-28  3:57   ` Manivannan Sadhasivam
2023-07-13  7:10 ` [PATCH v4 3/9] PCI: epf-mhi: Add support for handling D-state notify from EPC Krishna chaitanya chundru
2023-07-28  4:09   ` Manivannan Sadhasivam
2023-07-31  5:35     ` Krishna Chaitanya Chundru
2023-08-01  5:01       ` Krishna Chaitanya Chundru
2023-08-01 17:21         ` Manivannan Sadhasivam [this message]
2023-07-13  7:10 ` [PATCH v4 4/9] PCI: qcom-ep: Update the D-state log Krishna chaitanya chundru
2023-07-28  4:15   ` Manivannan Sadhasivam
2023-07-13  7:10 ` [PATCH v4 5/9] PCI: endpoint: Add wakeup host API to EPC core Krishna chaitanya chundru
2023-07-28  4:21   ` Manivannan Sadhasivam
2023-07-31  5:36     ` Krishna Chaitanya Chundru
2023-07-13  7:10 ` [PATCH v4 6/9] PCI: dwc: Add wakeup host op to pci_epc_ops Krishna chaitanya chundru
2023-07-13  7:10 ` [PATCH v4 7/9] PCI: qcom-ep: Add wake up host op to dw_pcie_ep_ops Krishna chaitanya chundru
2023-07-13  7:10 ` [PATCH v4 8/9] PCI: epf-mhi: Add wakeup host op Krishna chaitanya chundru
2023-07-13  7:10 ` [PATCH v4 9/9] bus: mhi: ep: wake up host if the MHI state is in M3 Krishna chaitanya chundru
2023-07-28  4:34   ` Manivannan Sadhasivam
2023-07-28  5:50     ` Dan Carpenter
2023-07-28 15:35       ` Manivannan Sadhasivam
2023-07-31  5:37         ` Krishna Chaitanya Chundru
2023-07-28  5:51   ` Dan Carpenter
2023-07-31  5:37     ` Krishna Chaitanya Chundru
2023-07-28  4:37 ` [PATCH v4 0/9] PCI: EPC: Add support to wake up host from D3 states Manivannan Sadhasivam
2023-07-31  5:39   ` Krishna Chaitanya Chundru

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=20230801172142.GA76659@thinkpad \
    --to=mani@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=helgaas@kernel.org \
    --cc=kishon@kernel.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=kw@linux.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=mhi@lists.linux.dev \
    --cc=quic_jhugo@quicinc.com \
    --cc=quic_krichai@quicinc.com \
    --cc=quic_nitegupt@quicinc.com \
    --cc=quic_ramkri@quicinc.com \
    --cc=quic_skananth@quicinc.com \
    --cc=quic_vbadigan@quicinc.com \
    /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.