[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6d72cfdf-97a7-4aab-f746-d0e545431ea2@ti.com>
Date: Wed, 13 Feb 2019 19:08:18 +0530
From: Kishon Vijay Abraham I <kishon@...com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@....com>
CC: Bjorn Helgaas <bhelgaas@...gle.com>,
Gustavo Pimentel <gustavo.pimentel@...opsys.com>,
Alan Douglas <adouglas@...ence.com>,
Shawn Lin <shawn.lin@...k-chips.com>,
Jingoo Han <jingoohan1@...il.com>,
Heiko Stuebner <heiko@...ech.de>,
Cyrille Pitchen <cyrille.pitchen@...e-electrons.com>,
Jia-Ju Bai <baijiaju1990@...il.com>,
<linux-omap@...r.kernel.org>, <linux-pci@...r.kernel.org>,
<linux-kernel@...r.kernel.org>,
<linux-rockchip@...ts.infradead.org>,
<linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH 11/15] PCI: pci-epf-test: Use pci_epc_get_features to get
EPC features
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
Powered by blists - more mailing lists