All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Gustavo Pimentel <gustavo.pimentel@synopsys.com>,
	Alan Douglas <adouglas@cadence.com>,
	Shawn Lin <shawn.lin@rock-chips.com>,
	Jingoo Han <jingoohan1@gmail.com>,
	Heiko Stuebner <heiko@sntech.de>,
	Cyrille Pitchen <cyrille.pitchen@free-electrons.com>,
	Jia-Ju Bai <baijiaju1990@gmail.com>,
	linux-omap@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 11/15] PCI: pci-epf-test: Use pci_epc_get_features to get EPC features
Date: Wed, 13 Feb 2019 14:36:46 +0000	[thread overview]
Message-ID: <20190213143646.GC25260@e107981-ln.cambridge.arm.com> (raw)
In-Reply-To: <6d72cfdf-97a7-4aab-f746-d0e545431ea2@ti.com>

On Wed, Feb 13, 2019 at 07:08:18PM +0530, Kishon Vijay Abraham I wrote:
> Hi Lorenzo,
> 
> On 12/02/19 8:37 PM, Lorenzo Pieralisi wrote:
> > On Mon, Jan 07, 2019 at 12:11:44PM +0530, Kishon Vijay Abraham I wrote:
> > 
> > [...]
> > 
> >>  static int pci_epf_test_bind(struct pci_epf *epf)
> >>  {
> >>  	int ret;
> >>  	struct pci_epf_test *epf_test = epf_get_drvdata(epf);
> >>  	struct pci_epf_header *header = epf->header;
> >> +	const struct pci_epc_features *epc_features;
> >> +	enum pci_barno test_reg_bar = BAR_0;
> >>  	struct pci_epc *epc = epf->epc;
> >>  	struct device *dev = &epf->dev;
> >> +	bool linkup_notifier = false;
> >> +	bool msix_capable = false;
> >> +	bool msi_capable = true;
> >>  
> >>  	if (WARN_ON_ONCE(!epc))
> >>  		return -EINVAL;
> >>  
> >> -	if (epc->features & EPC_FEATURE_NO_LINKUP_NOTIFIER)
> >> -		epf_test->linkup_notifier = false;
> >> -	else
> >> -		epf_test->linkup_notifier = true;
> >> -
> >> -	epf_test->msix_available = epc->features & EPC_FEATURE_MSIX_AVAILABLE;
> >> +	epc_features = pci_epc_get_features(epc, epf->func_no);
> > 
> > I think it would work out better if struct pci_epc_features was
> > allocated in the caller (stack) and pci_epc_get_features() take a
> > pointer parameter to it rather than the callee and the callee would just
> > have to fill it out, this also removes data in the driver that is not
> > really useful.
> > 
> > Is there any other reason behind the current design choice ?
> 
> Some drivers are used by multiple platforms each with different features. In
> such cases it's cleaner to have separate epc_feature table for each platform.
> 
> I think the driver should maintain some sort of data to even populate
> pci_epc_features allocated by EP function driver.

You mean that every EP controller driver should keep a table of
pci_epc_features (instead of a single instance) to be matched using DT
compatible strings to detect the platform variations ?

Thanks,
Lorenzo

WARNING: multiple messages have this Message-ID (diff)
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Heiko Stuebner <heiko@sntech.de>,
	Gustavo Pimentel <gustavo.pimentel@synopsys.com>,
	Shawn Lin <shawn.lin@rock-chips.com>,
	linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	Alan Douglas <adouglas@cadence.com>,
	Jia-Ju Bai <baijiaju1990@gmail.com>,
	Cyrille Pitchen <cyrille.pitchen@free-electrons.com>,
	Jingoo Han <jingoohan1@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 11/15] PCI: pci-epf-test: Use pci_epc_get_features to get EPC features
Date: Wed, 13 Feb 2019 14:36:46 +0000	[thread overview]
Message-ID: <20190213143646.GC25260@e107981-ln.cambridge.arm.com> (raw)
In-Reply-To: <6d72cfdf-97a7-4aab-f746-d0e545431ea2@ti.com>

On Wed, Feb 13, 2019 at 07:08:18PM +0530, Kishon Vijay Abraham I wrote:
> Hi Lorenzo,
> 
> On 12/02/19 8:37 PM, Lorenzo Pieralisi wrote:
> > On Mon, Jan 07, 2019 at 12:11:44PM +0530, Kishon Vijay Abraham I wrote:
> > 
> > [...]
> > 
> >>  static int pci_epf_test_bind(struct pci_epf *epf)
> >>  {
> >>  	int ret;
> >>  	struct pci_epf_test *epf_test = epf_get_drvdata(epf);
> >>  	struct pci_epf_header *header = epf->header;
> >> +	const struct pci_epc_features *epc_features;
> >> +	enum pci_barno test_reg_bar = BAR_0;
> >>  	struct pci_epc *epc = epf->epc;
> >>  	struct device *dev = &epf->dev;
> >> +	bool linkup_notifier = false;
> >> +	bool msix_capable = false;
> >> +	bool msi_capable = true;
> >>  
> >>  	if (WARN_ON_ONCE(!epc))
> >>  		return -EINVAL;
> >>  
> >> -	if (epc->features & EPC_FEATURE_NO_LINKUP_NOTIFIER)
> >> -		epf_test->linkup_notifier = false;
> >> -	else
> >> -		epf_test->linkup_notifier = true;
> >> -
> >> -	epf_test->msix_available = epc->features & EPC_FEATURE_MSIX_AVAILABLE;
> >> +	epc_features = pci_epc_get_features(epc, epf->func_no);
> > 
> > I think it would work out better if struct pci_epc_features was
> > allocated in the caller (stack) and pci_epc_get_features() take a
> > pointer parameter to it rather than the callee and the callee would just
> > have to fill it out, this also removes data in the driver that is not
> > really useful.
> > 
> > Is there any other reason behind the current design choice ?
> 
> Some drivers are used by multiple platforms each with different features. In
> such cases it's cleaner to have separate epc_feature table for each platform.
> 
> I think the driver should maintain some sort of data to even populate
> pci_epc_features allocated by EP function driver.

You mean that every EP controller driver should keep a table of
pci_epc_features (instead of a single instance) to be matched using DT
compatible strings to detect the platform variations ?

Thanks,
Lorenzo

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2019-02-13 14:36 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-07  6:41 [PATCH 00/15] PCI: endpoint: Cleanup EPC features Kishon Vijay Abraham I
2019-01-07  6:41 ` Kishon Vijay Abraham I
2019-01-07  6:41 ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 01/15] PCI: endpoint: Add new pci_epc_ops to get " Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 02/15] PCI: dwc: Add ->get_features() callback function in dw_pcie_ep_ops Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 03/15] PCI: designware-plat: Populate ->get_features() dw_pcie_ep_ops Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 04/15] PCI: pci-dra7xx: " Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 05/15] PCI: rockchip: " Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 06/15] PCI: cadence: Populate ->get_features() cdns_pcie_epc_ops Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 07/15] PCI: endpoint: Add helper to get first unreserved BAR Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 08/15] PCI: endpoint: Fix pci_epf_alloc_space to set correct MEM TYPE flags Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 09/15] PCI: pci-epf-test: Remove setting epf_bar flags in function driver Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 10/15] PCI: pci-epf-test: Do not allocate next BARs memory if current BAR is 64Bit Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 11/15] PCI: pci-epf-test: Use pci_epc_get_features to get EPC features Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-02-12 15:07   ` Lorenzo Pieralisi
2019-02-12 15:07     ` Lorenzo Pieralisi
2019-02-13 13:38     ` Kishon Vijay Abraham I
2019-02-13 13:38       ` Kishon Vijay Abraham I
2019-02-13 13:38       ` Kishon Vijay Abraham I
2019-02-13 13:44       ` Kishon Vijay Abraham I
2019-02-13 13:44         ` Kishon Vijay Abraham I
2019-02-13 13:44         ` Kishon Vijay Abraham I
2019-02-13 14:36       ` Lorenzo Pieralisi [this message]
2019-02-13 14:36         ` Lorenzo Pieralisi
2019-02-14  5:06         ` Kishon Vijay Abraham I
2019-02-14  5:06           ` Kishon Vijay Abraham I
2019-02-14  5:06           ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 12/15] PCI: cadence: Remove pci_epf_linkup from Cadence EP driver Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 13/15] PCI: rockchip: Remove pci_epf_linkup from Rockchip " Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 14/15] PCI: designware-plat: Remove setting epc->features in Designware plat " Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41 ` [PATCH 15/15] PCI: endpoint: Remove features member in struct pci_epc Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07  6:41   ` Kishon Vijay Abraham I
2019-01-07 14:35 ` [PATCH 00/15] PCI: endpoint: Cleanup EPC features Heiko Stuebner
2019-01-07 14:35   ` Heiko Stuebner
2019-01-10  5:05   ` Kishon Vijay Abraham I
2019-01-10  5:05     ` Kishon Vijay Abraham I
2019-01-10  5:05     ` Kishon Vijay Abraham I
2019-01-10 12:10     ` Heiko Stuebner
2019-01-10 12:10       ` Heiko Stuebner
2019-01-24 14:52 ` Lorenzo Pieralisi
2019-01-24 14:52   ` Lorenzo Pieralisi
2019-01-28  5:01   ` Kishon Vijay Abraham I
2019-01-28  5:01     ` Kishon Vijay Abraham I
2019-01-28  5:01     ` Kishon Vijay Abraham I

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=20190213143646.GC25260@e107981-ln.cambridge.arm.com \
    --to=lorenzo.pieralisi@arm.com \
    --cc=adouglas@cadence.com \
    --cc=baijiaju1990@gmail.com \
    --cc=bhelgaas@google.com \
    --cc=cyrille.pitchen@free-electrons.com \
    --cc=gustavo.pimentel@synopsys.com \
    --cc=heiko@sntech.de \
    --cc=jingoohan1@gmail.com \
    --cc=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=shawn.lin@rock-chips.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.