From: Kishon Vijay Abraham I <kishon@ti.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.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 19:08:18 +0530 [thread overview]
Message-ID: <6d72cfdf-97a7-4aab-f746-d0e545431ea2@ti.com> (raw)
In-Reply-To: <20190212150718.GA28306@e107981-ln.cambridge.arm.com>
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.
Thanks
Kishon
next prev parent reply other threads:[~2019-02-13 13:39 UTC|newest]
Thread overview: 26+ 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 ` [PATCH 01/15] PCI: endpoint: Add new pci_epc_ops to get " 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 ` [PATCH 03/15] PCI: designware-plat: Populate ->get_features() dw_pcie_ep_ops Kishon Vijay Abraham I
2019-01-07 6:41 ` [PATCH 04/15] PCI: pci-dra7xx: " Kishon Vijay Abraham I
2019-01-07 6:41 ` [PATCH 05/15] PCI: rockchip: " 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 ` [PATCH 07/15] PCI: endpoint: Add helper to get first unreserved BAR 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 ` [PATCH 09/15] PCI: pci-epf-test: Remove setting epf_bar flags in function driver 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 ` [PATCH 11/15] PCI: pci-epf-test: Use pci_epc_get_features to get EPC features Kishon Vijay Abraham I
2019-02-12 15:07 ` Lorenzo Pieralisi
2019-02-13 13:38 ` Kishon Vijay Abraham I [this message]
2019-02-13 13:44 ` Kishon Vijay Abraham I
2019-02-13 14:36 ` Lorenzo Pieralisi
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 ` [PATCH 13/15] PCI: rockchip: Remove pci_epf_linkup from Rockchip " 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 ` [PATCH 15/15] PCI: endpoint: Remove features member in struct pci_epc Kishon Vijay Abraham I
2019-01-07 14:35 ` [PATCH 00/15] PCI: endpoint: Cleanup EPC features Heiko Stuebner
2019-01-10 5:05 ` Kishon Vijay Abraham I
2019-01-10 12:10 ` Heiko Stuebner
2019-01-24 14:52 ` Lorenzo Pieralisi
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=6d72cfdf-97a7-4aab-f746-d0e545431ea2@ti.com \
--to=kishon@ti.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=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=lorenzo.pieralisi@arm.com \
--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 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).