linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: "Krzysztof Wilczyński" <kw@linux.com>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"Kunihiko Hayashi" <hayashi.kunihiko@socionext.com>,
	linux-pci@vger.kernel.org,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Frank Li" <Frank.Li@nxp.com>,
	"Minghuan Lian" <minghuan.Lian@nxp.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Marek Vasut" <marek.vasut+renesas@gmail.com>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Jesper Nilsson" <jesper.nilsson@axis.com>,
	linux-tegra@vger.kernel.org, linux-arm-kernel@axis.com,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Richard Zhu" <hongxing.zhu@nxp.com>,
	"Srikanth Thokala" <srikanth.thokala@intel.com>,
	linux-arm-msm@vger.kernel.org,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	linuxppc-dev@lists.ozlabs.org,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	linux-omap@vger.kernel.org, "Mingkai Hu" <mingkai.hu@nxp.com>,
	linux-arm-kernel@lists.infradead.org,
	"Roy Zang" <roy.zang@nxp.com>,
	"Jingoo Han" <jingoohan1@gmail.com>,
	"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
	linux-kernel@vger.kernel.org, "Vidya Sagar" <vidyas@nvidia.com>,
	linux-renesas-soc@vger.kernel.org,
	"Masami Hiramatsu" <mhiramat@kernel.org>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Gustavo Pimentel" <gustavo.pimentel@synopsys.com>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Lucas Stach" <l.stach@pengutronix.de>
Subject: Re: [PATCH v9 07/10] PCI: dwc: ep: Remove "core_init_notifier" flag
Date: Mon, 11 Mar 2024 22:54:28 +0100	[thread overview]
Message-ID: <Ze99lLhe2GqIqMgl@ryzen> (raw)
In-Reply-To: <20240311144559.GA2504@thinkpad>

On Mon, Mar 11, 2024 at 08:15:59PM +0530, Manivannan Sadhasivam wrote:
> > 
> > I would say that it is the following change that breaks things:
> > 
> > > -	if (!core_init_notifier) {
> > > -		ret = pci_epf_test_core_init(epf);
> > > -		if (ret)
> > > -			return ret;
> > > -	}
> > > -
> > 
> > Since without this code, pci_epf_test_core_init() will no longer be called,
> > as there is currently no one that calls epf->core_init() for a EPF driver
> > after it has been bound. (For drivers that call dw_pcie_ep_init_notify() in
> > .probe())
> > 
> 
> Thanks a lot for testing, Niklas!
> 
> > I guess one way to solve this would be for the EPC core to keep track of
> > the current EPC "core state" (up/down). If the core is "up" at EPF .bind()
> > time, notify the EPF driver directly after .bind()?
> > 
> 
> Yeah, that's a good solution. But I think it would be better if the EPC caches
> all events if the EPF drivers are not available and dispatch them once the bind
> happens for each EPF driver. Even though INIT_COMPLETE is the only event that is
> getting generated before bind() now, IMO it is better to add provision to catch
> other events also.
> 
> Wdyt?

I'm not sure.
What if the EPF goes up/down/up, it seems a bit silly to send all those
events to the EPF driver that will alloc+free+alloc.

Do we know for sure that we will want to store + replay events other than
INIT_COMPLETE?

And how many events should we store?


Until we can think of a good reason which events other than UP/DOWN we
can to store, I think that just storing the state as an integer in
struct pci_epc seems simpler.


Or I guess we could continue with a flag in struct pci_epc_features,
like has_perst_notifier, which would then require the EPC driver to
call both epc_notify_core_up() and epc_notify_core_down() when receiving
the PERST deassert/assert.
For a driver without the flag set, the EPC core would call
.epc_notify_core_up() after bind. (And .epc_notify_core_down() would never
be called, or it could call it before unbind().)
That way an EPF driver itself would not need any different handling
(all callbacks would always come, either triggered by an EPC driver that
has PERST GPIO irq, or triggered by the EPC core for a driver that lacks
a PERST GPIO).


Kind regards,
Niklas

  reply	other threads:[~2024-03-11 21:55 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-04  9:22 [PATCH v9 00/10] PCI: dwc: ep: Fix DBI access failure for drivers requiring refclk from host Manivannan Sadhasivam
2024-03-04  9:22 ` [PATCH v9 01/10] PCI: dwc: ep: Remove deinit() callback from struct dw_pcie_ep_ops Manivannan Sadhasivam
2024-03-07 19:52   ` Niklas Cassel
2024-03-08 11:17   ` Yoshihiro Shimoda
2024-03-04  9:22 ` [PATCH v9 02/10] PCI: dwc: ep: Rename dw_pcie_ep_exit() to dw_pcie_ep_deinit() Manivannan Sadhasivam
2024-03-07 19:52   ` Niklas Cassel
2024-03-08 11:18   ` Yoshihiro Shimoda
2024-03-04  9:22 ` [PATCH v9 03/10] PCI: dwc: ep: Introduce dw_pcie_ep_cleanup() API for drivers supporting PERST# Manivannan Sadhasivam
2024-03-07 20:14   ` Niklas Cassel
2024-03-04  9:22 ` [PATCH v9 04/10] PCI: dwc: ep: Fix DBI access failure for drivers requiring refclk from host Manivannan Sadhasivam
2024-03-07 20:31   ` Niklas Cassel
2024-03-08  5:34     ` Manivannan Sadhasivam
2024-03-04  9:22 ` [PATCH v9 05/10] PCI: dwc: ep: Rename dw_pcie_ep_init_complete() to dw_pcie_ep_init_registers() Manivannan Sadhasivam
2024-03-07 20:32   ` Niklas Cassel
2024-03-04  9:22 ` [PATCH v9 06/10] PCI: dwc: ep: Call dw_pcie_ep_init_registers() API directly from all glue drivers Manivannan Sadhasivam
2024-03-07 20:36   ` Niklas Cassel
2024-03-08  5:36     ` Manivannan Sadhasivam
2024-03-08  9:05       ` Niklas Cassel
2024-03-08  9:49         ` Manivannan Sadhasivam
2024-03-08 10:22           ` Niklas Cassel
2024-03-14  7:22             ` Manivannan Sadhasivam
2024-03-08 11:22   ` Yoshihiro Shimoda
2024-03-04  9:22 ` [PATCH v9 07/10] PCI: dwc: ep: Remove "core_init_notifier" flag Manivannan Sadhasivam
2024-03-07 21:09   ` Niklas Cassel
2024-03-08  5:38     ` Manivannan Sadhasivam
2024-03-08  8:48       ` Niklas Cassel
2024-03-08  9:44         ` Manivannan Sadhasivam
2024-03-08 13:24   ` Niklas Cassel
2024-03-11 14:45     ` Manivannan Sadhasivam
2024-03-11 21:54       ` Niklas Cassel [this message]
2024-03-13 17:53         ` Manivannan Sadhasivam
2024-03-04  9:22 ` [PATCH v9 08/10] PCI: dwc: ep: Add a generic dw_pcie_ep_linkdown() API to handle LINK_DOWN event Manivannan Sadhasivam
2024-03-07 21:43   ` Niklas Cassel
2024-03-08  5:41     ` Manivannan Sadhasivam
2024-03-08  8:56       ` Niklas Cassel
2024-03-08  9:46         ` Manivannan Sadhasivam
2024-03-08 10:14           ` Niklas Cassel
2024-03-04  9:22 ` [PATCH v9 09/10] PCI: qcom-ep: Use the " Manivannan Sadhasivam
2024-03-07 21:43   ` Niklas Cassel
2024-03-04  9:22 ` [PATCH v9 10/10] PCI: dwc: ep: Add Kernel-doc comments for APIs Manivannan Sadhasivam
2024-03-07 21:58   ` Niklas Cassel
2024-03-08  5:43     ` Manivannan Sadhasivam

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=Ze99lLhe2GqIqMgl@ryzen \
    --to=cassel@kernel.org \
    --cc=Frank.Li@nxp.com \
    --cc=bhelgaas@google.com \
    --cc=festevam@gmail.com \
    --cc=gustavo.pimentel@synopsys.com \
    --cc=hayashi.kunihiko@socionext.com \
    --cc=hongxing.zhu@nxp.com \
    --cc=jesper.nilsson@axis.com \
    --cc=jingoohan1@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=kernel@pengutronix.de \
    --cc=kishon@kernel.org \
    --cc=kishon@ti.com \
    --cc=kw@linux.com \
    --cc=l.stach@pengutronix.de \
    --cc=linux-arm-kernel@axis.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lpieralisi@kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=marek.vasut+renesas@gmail.com \
    --cc=mhiramat@kernel.org \
    --cc=minghuan.Lian@nxp.com \
    --cc=mingkai.hu@nxp.com \
    --cc=robh@kernel.org \
    --cc=roy.zang@nxp.com \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=srikanth.thokala@intel.com \
    --cc=thierry.reding@gmail.com \
    --cc=vidyas@nvidia.com \
    --cc=vigneshr@ti.com \
    --cc=yoshihiro.shimoda.uh@renesas.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).