diff for duplicates of <1470670477.3551.35.camel@redhat.com> diff --git a/a/1.txt b/N1/1.txt index 0e04623..c823dce 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -16,22 +16,22 @@ On Mon, 2016-08-08 at 15:05 +0200, Tomasz Nowicki wrote: > Signed-off-by: Dongdong Liu <liudongdong3@huawei.com> > Signed-off-by: Christopher Covington <cov@codeaurora.org> > --- -> 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 +> ?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 > > diff --git a/drivers/pci/host/Makefile b/drivers/pci/host/Makefile > index 8843410..500cf78 100644 > --- a/drivers/pci/host/Makefile > +++ b/drivers/pci/host/Makefile > @@ -31,3 +31,4 @@ obj-$(CONFIG_PCI_HOST_THUNDER_ECAM) += pci-thunder-ecam.o -> obj-$(CONFIG_PCI_HOST_THUNDER_PEM) += pci-thunder-pem.o -> obj-$(CONFIG_PCIE_ARMADA_8K) += pcie-armada8k.o -> obj-$(CONFIG_PCIE_ARTPEC6) += pcie-artpec6.o +> ?obj-$(CONFIG_PCI_HOST_THUNDER_PEM) += pci-thunder-pem.o +> ?obj-$(CONFIG_PCIE_ARMADA_8K) += pcie-armada8k.o +> ?obj-$(CONFIG_PCIE_ARTPEC6) += pcie-artpec6.o > +obj-$(CONFIG_ACPI_MCFG) += mcfg-quirks.o > diff --git a/drivers/pci/host/mcfg-quirks.c b/drivers/pci/host/mcfg-quirks.c > new file mode 100644 @@ -49,7 +49,7 @@ On Mon, 2016-08-08 at 15:05 +0200, Tomasz Nowicki wrote: > + * > + * This program is distributed in the hope that it will be useful, but > + * WITHOUT ANY WARRANTY; without even the implied warranty of -> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.??See the GNU > + * General Public License version 2 (GPLv2) for more details. > + * > + * You should have received a copy of the GNU General Public License @@ -72,7 +72,7 @@ On Mon, 2016-08-08 at 15:05 +0200, Tomasz Nowicki wrote: > + struct resource bus_range; > + struct pci_ops *ops; > + struct pci_config_window *(*init)(struct acpi_pci_root *root, -> + struct pci_ops *ops); +> + ??struct pci_ops *ops); > +}; > + > +#define MCFG_DOM_RANGE(start, end) DEFINE_RES_NAMED((start), \ @@ -84,7 +84,7 @@ On Mon, 2016-08-08 at 15:05 +0200, Tomasz Nowicki wrote: > +#define MCFG_BUS_ANY MCFG_BUS_RANGE(0x0, 0xff) > + > +static struct pci_cfg_fixup mcfg_quirks[] __initconst = { - ^^^^^^^^^^^^^^ +? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^^^^^^^^^^^^^^ I get section warnings because pci_cfg_fixup_match() is not an init function. @@ -92,14 +92,14 @@ an init function. WARNING: vmlinux.o(.text+0x3f6c74): Section mismatch in reference from the function pci_mcfg_match_quirks() to the variable .init.rodata:$d The function pci_mcfg_match_quirks() references the variable __initconst $d. -This is often because pci_mcfg_match_quirks lacks a __initconst +This is often because pci_mcfg_match_quirks lacks a __initconst? annotation or the annotation of $d is wrong. > +/* { OEM_ID, OEM_TABLE_ID, REV, DOMAIN, BUS_RANGE, pci_ops, init_hook }, */ > +}; > + > +static bool pci_mcfg_fixup_match(struct pci_cfg_fixup *f, -> + struct acpi_table_header *mcfg_header) +> + ?struct acpi_table_header *mcfg_header) > +{ > + return (!memcmp(f->oem_id, mcfg_header->oem_id, ACPI_OEM_ID_SIZE) && > + !memcmp(f->oem_table_id, mcfg_header->oem_table_id, @@ -121,15 +121,15 @@ annotation or the annotation of $d is wrong. > + return NULL; > + > + /* -> + * First match against PCI topology <domain:bus> then use OEM ID, OEM -> + * table ID, and OEM revision from MCFG table standard header. -> + */ +> + ?* First match against PCI topology <domain:bus> then use OEM ID, OEM +> + ?* table ID, and OEM revision from MCFG table standard header. +> + ?*/ > + for (i = 0; i < ARRAY_SIZE(mcfg_quirks); i++, f++) { > + if (resource_contains(&f->domain_range, &dom_res) && -> + resource_contains(&f->bus_range, bus_res) && -> + pci_mcfg_fixup_match(f, mcfg_header)) { +> + ????resource_contains(&f->bus_range, bus_res) && +> + ????pci_mcfg_fixup_match(f, mcfg_header)) { > + dev_info(&root->device->dev, "Applying PCI MCFG quirks for %s %s rev: %d\n", -> + f->oem_id, f->oem_table_id, f->oem_revision); +> + ?f->oem_id, f->oem_table_id, f->oem_revision); > + return f->init ? f->init(root, f->ops) : > + pci_acpi_setup_ecam_mapping(root, f->ops); > + } @@ -149,7 +149,7 @@ annotation or the annotation of $d is wrong. > + * > + * This program is distributed in the hope that it will be useful, but > + * WITHOUT ANY WARRANTY; without even the implied warranty of -> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.??See the GNU > + * General Public License version 2 (GPLv2) for more details. > + * > + * You should have received a copy of the GNU General Public License @@ -167,11 +167,11 @@ annotation or the annotation of $d is wrong. > --- a/include/linux/pci-acpi.h > +++ b/include/linux/pci-acpi.h > @@ -25,6 +25,8 @@ static inline acpi_status pci_acpi_remove_pm_notifier(struct acpi_device *dev) -> extern phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle); -> -> extern phys_addr_t pci_mcfg_lookup(u16 domain, struct resource *bus_res); +> ?extern phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle); +> ? +> ?extern phys_addr_t pci_mcfg_lookup(u16 domain, struct resource *bus_res); > +extern struct pci_config_window * > +pci_mcfg_match_quirks(struct acpi_pci_root *root); -> -> extern struct pci_config_window * -> pci_acpi_setup_ecam_mapping(struct acpi_pci_root *root, struct pci_ops *ops); +> ? +> ?extern struct pci_config_window * +> ?pci_acpi_setup_ecam_mapping(struct acpi_pci_root *root, struct pci_ops *ops); diff --git a/a/content_digest b/N1/content_digest index f6692f9..8c7ac94 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,37 +1,9 @@ "ref\01470661541-26270-1-git-send-email-tn@semihalf.com\0" "ref\01470661541-26270-4-git-send-email-tn@semihalf.com\0" - "From\0Mark Salter <msalter@redhat.com>\0" - "Subject\0Re: [RFC PATCH V5 3/5] PCI: Check platform specific ECAM quirks\0" + "From\0msalter@redhat.com (Mark Salter)\0" + "Subject\0[RFC PATCH V5 3/5] PCI: Check platform specific ECAM quirks\0" "Date\0Mon, 08 Aug 2016 11:34:37 -0400\0" - "To\0Tomasz Nowicki <tn@semihalf.com>" - helgaas@kernel.org - arnd@arndb.de - will.deacon@arm.com - catalin.marinas@arm.com - rafael@kernel.org - " Lorenzo.Pieralisi@arm.com\0" - "Cc\0hanjun.guo@linaro.org" - okaya@codeaurora.org - jchandra@broadcom.com - cov@codeaurora.org - dhdang@apm.com - ard.biesheuvel@linaro.org - robert.richter@caviumnetworks.com - mw@semihalf.com - Liviu.Dudau@arm.com - ddaney@caviumnetworks.com - wangyijing@huawei.com - linux-pci@vger.kernel.org - linux-arm-kernel@lists.infradead.org - linaro-acpi@lists.linaro.org - jcm@redhat.com - andrea.gallo@linaro.org - jeremy.linton@arm.com - liudongdong3@huawei.com - gabriele.paoloni@huawei.com - jhugo@codeaurora.org - linux-acpi@vger.kernel.org - " linux-kernel@vger.kernel.org\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On Mon, 2016-08-08 at 15:05 +0200, Tomasz Nowicki wrote:\n" @@ -52,22 +24,22 @@ "> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>\n" "> Signed-off-by: Christopher Covington <cov@codeaurora.org>\n" "> ---\n" - "> \302\240drivers/pci/host/Makefile\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240drivers/pci/host/mcfg-quirks.c | 86 ++++++++++++++++++++++++++++++++++++++++++\n" - "> \302\240drivers/pci/host/mcfg-quirks.h | 20 ++++++++++\n" - "> \302\240include/linux/pci-acpi.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\2404 files changed, 109 insertions(+)\n" - "> \302\240create mode 100644 drivers/pci/host/mcfg-quirks.c\n" - "> \302\240create mode 100644 drivers/pci/host/mcfg-quirks.h\n" + "> ?drivers/pci/host/Makefile??????|??1 +\n" + "> ?drivers/pci/host/mcfg-quirks.c | 86 ++++++++++++++++++++++++++++++++++++++++++\n" + "> ?drivers/pci/host/mcfg-quirks.h | 20 ++++++++++\n" + "> ?include/linux/pci-acpi.h???????|??2 +\n" + "> ?4 files changed, 109 insertions(+)\n" + "> ?create mode 100644 drivers/pci/host/mcfg-quirks.c\n" + "> ?create mode 100644 drivers/pci/host/mcfg-quirks.h\n" "> \n" "> diff --git a/drivers/pci/host/Makefile b/drivers/pci/host/Makefile\n" "> index 8843410..500cf78 100644\n" "> --- a/drivers/pci/host/Makefile\n" "> +++ b/drivers/pci/host/Makefile\n" "> @@ -31,3 +31,4 @@ obj-$(CONFIG_PCI_HOST_THUNDER_ECAM) += pci-thunder-ecam.o\n" - "> \302\240obj-$(CONFIG_PCI_HOST_THUNDER_PEM) += pci-thunder-pem.o\n" - "> \302\240obj-$(CONFIG_PCIE_ARMADA_8K) += pcie-armada8k.o\n" - "> \302\240obj-$(CONFIG_PCIE_ARTPEC6) += pcie-artpec6.o\n" + "> ?obj-$(CONFIG_PCI_HOST_THUNDER_PEM) += pci-thunder-pem.o\n" + "> ?obj-$(CONFIG_PCIE_ARMADA_8K) += pcie-armada8k.o\n" + "> ?obj-$(CONFIG_PCIE_ARTPEC6) += pcie-artpec6.o\n" "> +obj-$(CONFIG_ACPI_MCFG) += mcfg-quirks.o\n" "> diff --git a/drivers/pci/host/mcfg-quirks.c b/drivers/pci/host/mcfg-quirks.c\n" "> new file mode 100644\n" @@ -85,7 +57,7 @@ "> + *\n" "> + * This program is distributed in the hope that it will be useful, but\n" "> + * WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\302\240\302\240See the GNU\n" + "> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.??See the GNU\n" "> + * General Public License version 2 (GPLv2) for more details.\n" "> + *\n" "> + * You should have received a copy of the GNU General Public License\n" @@ -108,7 +80,7 @@ "> +\tstruct resource bus_range;\n" "> +\tstruct pci_ops *ops;\n" "> +\tstruct pci_config_window *(*init)(struct acpi_pci_root *root,\n" - "> +\t\t\t\t\t\302\240\302\240struct pci_ops *ops);\n" + "> +\t\t\t\t\t??struct pci_ops *ops);\n" "> +};\n" "> +\n" "> +#define MCFG_DOM_RANGE(start, end)\tDEFINE_RES_NAMED((start),\t\\\n" @@ -120,7 +92,7 @@ "> +#define MCFG_BUS_ANY\t\t\tMCFG_BUS_RANGE(0x0, 0xff)\n" "> +\n" "> +static struct pci_cfg_fixup mcfg_quirks[] __initconst = {\n" - "\302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240^^^^^^^^^^^^^^\n" + "? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^^^^^^^^^^^^^^\n" "\n" "I get section warnings because pci_cfg_fixup_match() is not\n" "an init function.\n" @@ -128,14 +100,14 @@ "WARNING: vmlinux.o(.text+0x3f6c74): Section mismatch in reference from the function pci_mcfg_match_quirks() to the variable .init.rodata:$d\n" "The function pci_mcfg_match_quirks() references\n" "the variable __initconst $d.\n" - "This is often because pci_mcfg_match_quirks lacks a __initconst\302\240\n" + "This is often because pci_mcfg_match_quirks lacks a __initconst?\n" "annotation or the annotation of $d is wrong.\n" "\n" "> +/*\t{ OEM_ID, OEM_TABLE_ID, REV, DOMAIN, BUS_RANGE, pci_ops, init_hook }, */\n" "> +};\n" "> +\n" "> +static bool pci_mcfg_fixup_match(struct pci_cfg_fixup *f,\n" - "> +\t\t\t\t\302\240struct acpi_table_header *mcfg_header)\n" + "> +\t\t\t\t?struct acpi_table_header *mcfg_header)\n" "> +{\n" "> +\treturn (!memcmp(f->oem_id, mcfg_header->oem_id, ACPI_OEM_ID_SIZE) &&\n" "> +\t\t!memcmp(f->oem_table_id, mcfg_header->oem_table_id,\n" @@ -157,15 +129,15 @@ "> +\t\treturn NULL;\n" "> +\n" "> +\t/*\n" - "> +\t\302\240* First match against PCI topology <domain:bus> then use OEM ID, OEM\n" - "> +\t\302\240* table ID, and OEM revision from MCFG table standard header.\n" - "> +\t\302\240*/\n" + "> +\t?* First match against PCI topology <domain:bus> then use OEM ID, OEM\n" + "> +\t?* table ID, and OEM revision from MCFG table standard header.\n" + "> +\t?*/\n" "> +\tfor (i = 0; i < ARRAY_SIZE(mcfg_quirks); i++, f++) {\n" "> +\t\tif (resource_contains(&f->domain_range, &dom_res) &&\n" - "> +\t\t\302\240\302\240\302\240\302\240resource_contains(&f->bus_range, bus_res) &&\n" - "> +\t\t\302\240\302\240\302\240\302\240pci_mcfg_fixup_match(f, mcfg_header)) {\n" + "> +\t\t????resource_contains(&f->bus_range, bus_res) &&\n" + "> +\t\t????pci_mcfg_fixup_match(f, mcfg_header)) {\n" "> +\t\t\tdev_info(&root->device->dev, \"Applying PCI MCFG quirks for %s %s rev: %d\\n\",\n" - "> +\t\t\t\t\302\240f->oem_id, f->oem_table_id, f->oem_revision);\n" + "> +\t\t\t\t?f->oem_id, f->oem_table_id, f->oem_revision);\n" "> +\t\t\treturn f->init ? f->init(root, f->ops) :\n" "> +\t\t\t\tpci_acpi_setup_ecam_mapping(root, f->ops);\n" "> +\t\t}\n" @@ -185,7 +157,7 @@ "> + *\n" "> + * This program is distributed in the hope that it will be useful, but\n" "> + * WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\302\240\302\240See the GNU\n" + "> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.??See the GNU\n" "> + * General Public License version 2 (GPLv2) for more details.\n" "> + *\n" "> + * You should have received a copy of the GNU General Public License\n" @@ -203,13 +175,13 @@ "> --- a/include/linux/pci-acpi.h\n" "> +++ b/include/linux/pci-acpi.h\n" "> @@ -25,6 +25,8 @@ static inline acpi_status pci_acpi_remove_pm_notifier(struct acpi_device *dev)\n" - "> \302\240extern phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle);\n" - "> \302\240\n" - "> \302\240extern phys_addr_t pci_mcfg_lookup(u16 domain, struct resource *bus_res);\n" + "> ?extern phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle);\n" + "> ?\n" + "> ?extern phys_addr_t pci_mcfg_lookup(u16 domain, struct resource *bus_res);\n" "> +extern struct pci_config_window *\n" "> +pci_mcfg_match_quirks(struct acpi_pci_root *root);\n" - "> \302\240\n" - "> \302\240extern struct pci_config_window *\n" - "> \302\240pci_acpi_setup_ecam_mapping(struct acpi_pci_root *root, struct pci_ops *ops);" + "> ?\n" + "> ?extern struct pci_config_window *\n" + > ?pci_acpi_setup_ecam_mapping(struct acpi_pci_root *root, struct pci_ops *ops); -3f93ebda2c52e5761b640d30840f48a1b6c9acef86b57cdf34831fda2264b89c +39fa7595b48a8cded6bae72d29d7132904a8620db711ab1b7784f740bfe62651
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.