From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S940978AbcIFTOw (ORCPT ); Tue, 6 Sep 2016 15:14:52 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:62276 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932321AbcIFTOu (ORCPT ); Tue, 6 Sep 2016 15:14:50 -0400 From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Tomasz Nowicki , Bjorn Helgaas , gabriele.paoloni@huawei.com, rafael@kernel.org, catalin.marinas@arm.com, will.deacon@arm.com, okaya@codeaurora.org, wangyijing@huawei.com, andrea.gallo@linaro.org, Lorenzo.Pieralisi@arm.com, jhugo@codeaurora.org, linaro-acpi@lists.linaro.org, ddaney@caviumnetworks.com, linux-acpi@vger.kernel.org, robert.richter@caviumnetworks.com, liudongdong3@huawei.com, linux-pci@vger.kernel.org, Liviu.Dudau@arm.com, jcm@redhat.com, msalter@redhat.com, cov@codeaurora.org, mw@semihalf.com, jchandra@broadcom.com, ard.biesheuvel@linaro.org, dhdang@apm.com, linux-kernel@vger.kernel.org, jeremy.linton@arm.com, hanjun.guo@linaro.org Subject: Re: [RFC PATCH V5 3/5] PCI: Check platform specific ECAM quirks Date: Tue, 06 Sep 2016 21:14:27 +0200 Message-ID: <6146693.UZIeGQtNL9@wuerfel> User-Agent: KMail/5.1.3 (Linux/4.4.0-34-generic; KDE/5.18.0; x86_64; ; ) In-Reply-To: <34416dae-31e6-93b6-2ba8-f42ba61ede4f@semihalf.com> References: <1470661541-26270-1-git-send-email-tn@semihalf.com> <20160905022529.GD30488@localhost> <34416dae-31e6-93b6-2ba8-f42ba61ede4f@semihalf.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:HuPuV6KsgVsmu329sMBzQlkvuYoBSiSKLdBW6N7L2QVlZejIr3x 55WJzxXvgzX+r4FMu8RGyOEPAOiaAsdutY3ebc5kgUtHZrPgVy4Twxhl9yRtFxoC/3wOy8I +Onef/Tl5pSDGakP4WdXFN5acfKQxAiXb7QkbAtP/M91B6tpn3fWWJbEU/cJRvstp90uHXi oCWxkhfowc1XoyQpoHABw== X-UI-Out-Filterresults: notjunk:1;V01:K0:4HoI4FqkXFI=:5+oWnjRAli5y6XRK9xp0e/ m63C//RoGIFJo1NP9vFpnfIEafUBvpcemEG0jALtuB/XU+Ng1yDqm4JOFD87Jh+4FqHkJwr2n kOvsmoKDQ7ii4g/6BVQaW3mWQysh5ayeaeKC8CYQluZTOWWlVesrbU5n9mw0BqcZ+qqNvqFkE aBS1kOXvDB3K+044qYAXvEAQR3tJBK4Z2Ct5QYFsWO5dQ/9NTx1gRLoSrBRyFF3j8lmqFawv/ l3XOOZSaHXZXIUrLo7eAHTV3i1Co/Adhn5l7n/1w1Y8acuOlKDVUvdUNXpeU0DXmwrTNEG84w juNAZc6Ce4iB+lRJ0JEvquspq17gt3lJkgCi+a5iSd6Th4ZX4cwTysxCu+ommG0dF3uXgxfQ2 C/pKjVUXHbUxIsGcnakz+1S8h7daBz9ldZTK7Sw8WhsDnM4xdvHtanzi/qmZtnf3uPzx+vq89 T2nDvhuj+UxHBQRTrVl0hQFWdollX+SEkI1wL6UMiHj6xDYE1d7GXogTA/cN/4F08RcBgb0Q3 U+npeXL27kw7nH5BIC35nAUgaH7ihge0Ps3c674a3jrwe4tJJlukOw6em7RsLZED2BZFh/qu8 Vql2wI3TXhZ1k51K7F+cckX543f0g40np+7Wk5GOZtdgvvvKLw5SOgt2WUXb5Vtx/8n+yFFBa +Vf1bNz7EkK05LE3YlpcwBHdNpduv/sed/g6wsi0IrpeSSPuAju45ZvQ3cZMb4Bh+9ufS3AmV v0jye89upf/m0YCK Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday, September 6, 2016 7:49:49 PM CEST Tomasz Nowicki wrote: > On 05.09.2016 04:25, Bjorn Helgaas wrote: > > On Mon, Aug 08, 2016 at 03:05:39PM +0200, Tomasz Nowicki wrote: > >> Some platforms may not be fully compliant with generic set of PCI config > >> accessors. For these cases we implement the way to overwrite accessors > >> set. Algorithm traverses available quirk list (static array), > >> matches against and > >> returns pci_config_window structure with fancy PCI config ops. > >> oem_id, oem_table_id and rev come from MCFG table standard header. > >> > >> It is possible to define custom init call which is responsible for > >> setting up PCI configuration access accordingly to quirk requirements. > >> If custom init call is not defined, use standard pci_acpi_setup_ecam_mapping(). > >> > >> pci_generic_ecam_ops will be used for platforms free from quirks. > >> > >> Signed-off-by: Tomasz Nowicki > >> Signed-off-by: Dongdong Liu > >> Signed-off-by: Christopher Covington > >> --- > >> drivers/pci/host/Makefile | 1 + > >> drivers/pci/host/mcfg-quirks.c | 86 ++++++++++++++++++++++++++++++++++++++++++ > >> drivers/pci/host/mcfg-quirks.h | 20 ++++++++++ > >> include/linux/pci-acpi.h | 2 + > >> 4 files changed, 109 insertions(+) > >> create mode 100644 drivers/pci/host/mcfg-quirks.c > >> create mode 100644 drivers/pci/host/mcfg-quirks.h > > > > If the object is to work around defects in the ACPI MCFG table, I > > think I'd put the quirks closer to drivers/acpi/pci_mcfg.c, where we > > parse that table. What if we actually put them directly *in* > > drivers/acpi/pci_mcfg.c? > > Then we need to export quirk init calls or ecam ops from > drivers/pci/host/* directory. > > Currently we keep mcfg quirk handling code and related drivers in one > place drivers/pci/host/ I think that's the wrong place to have it, it just leads to people trying to share code with the host drivers in that directory, which hasn't really worked out so far, it just adds complexity. Arnd