Received: by 10.192.165.148 with SMTP id m20csp4997001imm; Tue, 1 May 2018 07:27:08 -0700 (PDT) X-Google-Smtp-Source: AB8JxZowoV7mqslZTsYFS9WkFu0RyFGrhDrcDD+mkygyI1G3j8rS9IOjuPCTOhaLwbf0M4IUB+6i X-Received: by 2002:a17:902:ea:: with SMTP id a97-v6mr15978891pla.28.1525184828646; Tue, 01 May 2018 07:27:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525184828; cv=none; d=google.com; s=arc-20160816; b=r+b1t0XPyYAJjyVN/C4NQxU32ZI/uPPjSPzWChj/oIpjIqyMve61GxXiQykQMrGbp+ 7qBB80CmhPKvaSaIWYIXlzeU+YzFsDEWgC403NeQi9pF0Xgd7faoMQllDrjoj+/1B7PS b0AIm/RHweOCvqZEG5lq9xGgvTELtuxVtRbu0HJkDS14c5Ojn4jfNt0k4zlVwwFn/RGj GvtzNYmqt4qbLg9kO/ytJUrhXbT8LMsCecWr8JfzQrcVP4dy2N008b1btdhpO2waB2iI kXOd0GNEKEbADCnMSzYwFH4kY+y5i3PqeuC2aYkXDJtsYy0sZhjaUeFxftAlMJBVfE3T 6qxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=0RZKaepkCxd5+z8t2V10bDwJXpVH4C09Wm9wL/+HFVA=; b=OH+/BCaVjbjaa1wVdi5slhN1LvciNcqwLYuc0rhIWv9PQqco+Yh1Pq2z7B91cAHml7 837FDYOdtAsO2OxXlDGa1UmXtU/AbQSkleALgv2YRk2HkfZhz4wqBah8GESUVk2HOrlM Vw6LQonf4c8Q9OXmnCDc0y1QK2vfFu92IKAxpQ3zuiwghGz6iXbnXswJ3Tjiz9fHAvvd Yz1DEBwex8sO8SeoBKnyUdZ2KMZqTHMUEUYm8CO079D9N14AV4LwWXUKVgE00ICLNfM4 SUAT5qDsHn+J7P1gdWlVjm1Z+s535q9qq3c4CurUdUaejrNu9y70wqOdt0kPeS5k+NX1 GMug== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s1-v6si7913044pgb.434.2018.05.01.07.26.54; Tue, 01 May 2018 07:27:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755970AbeEAO0h (ORCPT + 99 others); Tue, 1 May 2018 10:26:37 -0400 Received: from foss.arm.com ([217.140.101.70]:47774 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755316AbeEAO0f (ORCPT ); Tue, 1 May 2018 10:26:35 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0C8C51435; Tue, 1 May 2018 07:26:35 -0700 (PDT) Received: from e107981-ln.cambridge.arm.com (e107981-ln.cambridge.arm.com [10.1.207.54]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 400C43F25D; Tue, 1 May 2018 07:26:33 -0700 (PDT) Date: Tue, 1 May 2018 15:26:07 +0100 From: Lorenzo Pieralisi To: Kishon Vijay Abraham I Cc: Gustavo Pimentel , 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 Message-ID: <20180501142607.GA21911@e107981-ln.cambridge.arm.com> References: <20180426165605.GA6370@e107981-ln.cambridge.arm.com> <20180501115417.GD19391@e107981-ln.cambridge.arm.com> <5d625d04-38fe-7d5a-67fc-5ea92039474c@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5d625d04-38fe-7d5a-67fc-5ea92039474c@ti.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 01, 2018 at 05:53:59PM +0530, Kishon Vijay Abraham I wrote: > 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 > >>>> Acked-by: Kishon Vijay Abraham I > >>>> --- > >>>> 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. I am honestly very confused. First off, I do not understand what this patch really does (or better what DW can't do so that it needs a specific configfs string and therefore a specific configuration). What's the purpose of the linkup notifier ? What does it mean that the DW HW can't handle it ? Are we referring to the pci_epf_linkup() function ? If it is a HW configuration (ie the DW HW does not have a signal to report that the link is up ?) its enablement must depend on HW controller properties not configfs entries, I do not like what this patch does (probably because I am confused and I do not understand it). Please let me know your thoughts on this, thanks. Lorenzo > > 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