linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Gustavo Pimentel <gustavo.pimentel@synopsys.com>,
	<bhelgaas@google.com>, <Joao.Pinto@synopsys.com>,
	<jingoohan1@gmail.com>, <robh+dt@kernel.org>,
	<mark.rutland@arm.com>, <linux-pci@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v7 3/9] PCI: endpoint: functions/pci-epf-test: Add second entry
Date: Tue, 1 May 2018 17:53:59 +0530	[thread overview]
Message-ID: <5d625d04-38fe-7d5a-67fc-5ea92039474c@ti.com> (raw)
In-Reply-To: <20180501115417.GD19391@e107981-ln.cambridge.arm.com>

Hi Lorenzo,

On Tuesday 01 May 2018 05:24 PM, Lorenzo Pieralisi wrote:
> On Tue, May 01, 2018 at 03:37:47PM +0530, Kishon Vijay Abraham I wrote:
>> Hi Lorenzo,
>>
>> On Thursday 26 April 2018 10:26 PM, Lorenzo Pieralisi wrote:
>>> On Tue, Apr 24, 2018 at 02:44:40PM +0100, Gustavo Pimentel wrote:
>>>> Adds a seconds entry on the pci_epf_test_ids structure that disables the
>>>
>>> "Add a second entry to..."
>>>
>>>> linkup_notifier parameter on driver for the designware EP.
>>>>
>>>> This allows designware EPs that doesn't have linkup notification signal
>>>> to work with pcitest.
>>>>
>>>> Updates the binding documentation accordingly.
>>>
>>> Valid for all the series: use imperative sentences.
>>>
>>> eg:
>>>
>>> "Update the binding documentation accordingly".
>>>
>>> not
>>>
>>> "Updates the binding documentation accordingly".
>>>
>>>> Signed-off-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
>>>> Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
>>>> ---
>>>> Change v2->v3:
>>>>  - Added second entry in pci_epf_test_ids structure.
>>>>  - Remove test_reg_bar field assignment on second entry.
>>>> Changes v3->v4:
>>>>  - Nothing changed, just to follow the patch set version.
>>>> Changes v4->v5:
>>>>  - Changed pci_epf_test_cfg2 to pci_epf_test_designware.
>>>> Changes v5->v6:
>>>>  - Changed name field from pci_epf_test_designware to pci_epf_test_dw.
>>>> Changes v6->v7:
>>>>  - Changed variable name from data_cfg2 to data_linkup_notifier_disabled.
>>>>
>>>>  Documentation/PCI/endpoint/function/binding/pci-test.txt | 2 ++
>>>>  drivers/pci/endpoint/functions/pci-epf-test.c            | 8 ++++++++
>>>>  2 files changed, 10 insertions(+)
>>>>
>>>> diff --git a/Documentation/PCI/endpoint/function/binding/pci-test.txt b/Documentation/PCI/endpoint/function/binding/pci-test.txt
>>>> index 3b68b95..dc39f47 100644
>>>> --- a/Documentation/PCI/endpoint/function/binding/pci-test.txt
>>>> +++ b/Documentation/PCI/endpoint/function/binding/pci-test.txt
>>>> @@ -1,6 +1,8 @@
>>>>  PCI TEST ENDPOINT FUNCTION
>>>>  
>>>>  name: Should be "pci_epf_test" to bind to the pci_epf_test driver.
>>>> +name: Should be "pci_epf_test_dw" to bind to the pci_epf_test driver
>>>> +      with a custom configuration for the designware EP.
>>>
>>> The link between the "name" and the device created is quite obscure and
>>> reading pci-test-howto.txt certainly does not clarify it.
>>>
>>> In pci-test-howto.txt an explanation should be added to the configs
>>> device creation paragraph to clarify it.
>>>
>>>>  Configurable Fields:
>>>>  vendorid	 : should be 0x104c
>>>> diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c
>>>> index 7cef851..4ab463b 100644
>>>> --- a/drivers/pci/endpoint/functions/pci-epf-test.c
>>>> +++ b/drivers/pci/endpoint/functions/pci-epf-test.c
>>>> @@ -459,10 +459,18 @@ static int pci_epf_test_bind(struct pci_epf *epf)
>>>>  	return 0;
>>>>  }
>>>>  
>>>> +static const struct pci_epf_test_data data_linkup_notifier_disabled = {
>>>> +	.linkup_notifier = false
>>>> +};
>>>> +
>>>>  static const struct pci_epf_device_id pci_epf_test_ids[] = {
>>>>  	{
>>>>  		.name = "pci_epf_test",
>>>>  	},
>>>> +	{
>>>> +		.name = "pci_epf_test_dw",
>>>> +		.driver_data = (kernel_ulong_t)&data_linkup_notifier_disabled,
>>>> +	},
>>>>  	{},
>>>
>>> Should not this be a property derived from the controller compatible
>>> property instead of the test device name written in configfs ?
>>
>> pci_epf_test is an independent driver on its own that operates in a layer above
>> the controller driver. So it does not get the controller compatible (which is
>> used in controller drivers like pcie-designware-plat.c). pci_epf_test uses
>> "pci_epf_device_id" which is _similar_ to "of_device_id" used by platform drivers.
> 
> I understand that, the problem is that the independent driver depends on
> features of the related controller driver as this patch shows. This
> patch basically says that if you use a specific path in configfs (that
> includes pci_epf_test_dw) your device has specific HW features (eg
> linkup notifier above), that obviously depends on the platform HW not on
> the string you use in configfs.
> 
> What I am questioning is a) if I understand this right and b) whether
> this is the right approach.

Your understanding is right. Ideally pci-epf-test driver shouldn't have any HW
specific configuration. But different HW have different configurations and
pci-epf-test should be informed of the configuration the HW supports.

configfs is just one way of creating epf_device and it was mainly added since
pci-epf-test cannot have a dt entry because it doesn't represent anything in
the HW.

The other option was to have a callback to EPC driver to get the features it
supports. But a particular feature that is required might be specific to a EPF
driver.

I find the driver_data approach in pci_epf_device_id to be more clean.

Thanks
Kishon

  reply	other threads:[~2018-05-01 12:24 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-24 13:44 [PATCH v7 0/9] Designware EP support and code clean up Gustavo Pimentel
2018-04-24 13:44 ` [PATCH v7 1/9] bindings: PCI: designware: Example update Gustavo Pimentel
2018-04-24 13:44 ` [PATCH v7 2/9] PCI: dwc: Add support for endpoint mode Gustavo Pimentel
2018-04-24 13:44 ` [PATCH v7 3/9] PCI: endpoint: functions/pci-epf-test: Add second entry Gustavo Pimentel
2018-04-26 16:56   ` Lorenzo Pieralisi
2018-04-30 17:32     ` Gustavo Pimentel
2018-05-01 10:07     ` Kishon Vijay Abraham I
2018-05-01 11:54       ` Lorenzo Pieralisi
2018-05-01 12:23         ` Kishon Vijay Abraham I [this message]
2018-05-01 14:26           ` Lorenzo Pieralisi
2018-05-02 10:39             ` Gustavo Pimentel
2018-05-02 16:51               ` Lorenzo Pieralisi
2018-05-03  6:33                 ` Kishon Vijay Abraham I
2018-05-03 14:16                   ` Lorenzo Pieralisi
2018-05-04  5:58                     ` Kishon Vijay Abraham I
2018-05-04 11:18                       ` Lorenzo Pieralisi
2018-05-03 15:21                   ` Gustavo Pimentel
2018-04-24 13:44 ` [PATCH v7 4/9] bindings: PCI: designware: Add support for the EP in Designware driver Gustavo Pimentel
2018-04-24 13:44 ` [PATCH v7 5/9] misc: pci_endpoint_test: Add designware EP entry Gustavo Pimentel
2018-04-24 13:44 ` [PATCH v7 6/9] PCI: dwc: Define maximum number of vectors Gustavo Pimentel
2018-04-24 14:39   ` Jingoo Han
2018-04-24 13:44 ` [PATCH v7 7/9] PCI: dwc: Replace lower into upper case characters Gustavo Pimentel
2018-04-24 13:44 ` [PATCH v7 8/9] PCI: dwc: Small computation improvement Gustavo Pimentel
2018-04-24 13:44 ` [PATCH v7 9/9] PCI: dwc: Replace magic number by defines Gustavo Pimentel

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=5d625d04-38fe-7d5a-67fc-5ea92039474c@ti.com \
    --to=kishon@ti.com \
    --cc=Joao.Pinto@synopsys.com \
    --cc=bhelgaas@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gustavo.pimentel@synopsys.com \
    --cc=jingoohan1@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    /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).