diff for duplicates of <1469483765.3524.7.camel@redhat.com> diff --git a/a/1.txt b/N1/1.txt index 0bab0dd..69d34f3 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -16,22 +16,22 @@ On Tue, 2016-06-28 at 09:54 +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 | 88 ++++++++++++++++++++++++++++++++++++++++++ -> drivers/pci/host/mcfg-quirks.h | 20 ++++++++++ -> include/linux/pci-acpi.h | 2 + -> 4 files changed, 111 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 | 88 ++++++++++++++++++++++++++++++++++++++++++ +> ?drivers/pci/host/mcfg-quirks.h | 20 ++++++++++ +> ?include/linux/pci-acpi.h???????|??2 + +> ?4 files changed, 111 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 5bc0af2..e3d55a0 100644 > --- a/drivers/pci/host/Makefile > +++ b/drivers/pci/host/Makefile > @@ -30,3 +30,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 Tue, 2016-06-28 at 09:54 +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 Tue, 2016-06-28 at 09:54 +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,14 +84,14 @@ On Tue, 2016-06-28 at 09:54 +0200, Tomasz Nowicki wrote: > +#define MCFG_BUS_ANY MCFG_BUS_RANGE(0x0, 0xff) > + > +static struct pci_cfg_fixup mcfg_qurks[] __initconst = { - ^^^^^^^^^^ +? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^^^^^^^^^^ mcfg_quirks > +/* { 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) > +{ > + int olen = min_t(u8, strlen(f->oem_id), ACPI_OEM_ID_SIZE); > + int tlen = min_t(u8, strlen(f->oem_table_id), ACPI_OEM_TABLE_ID_SIZE); @@ -115,13 +115,13 @@ mcfg_quirks > + 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_qurks); 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)) { > + pr_info("Handling %s %s r%d PCI MCFG quirks\n", > + f->oem_id, f->oem_table_id, f->oem_revision); > + return f->init ? f->init(root, f->ops) : @@ -143,7 +143,7 @@ mcfg_quirks > + * > + * 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 @@ -161,11 +161,11 @@ mcfg_quirks > --- 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 8084f87..83cdc7f 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,36 +1,9 @@ "ref\01467100442-28078-1-git-send-email-tn@semihalf.com\0" "ref\01467100442-28078-4-git-send-email-tn@semihalf.com\0" - "From\0Mark Salter <msalter@redhat.com>\0" - "Subject\0Re: [RFC PATCH v4 3/5] PCI: Check platform specific ECAM quirks\0" + "From\0msalter@redhat.com (Mark Salter)\0" + "Subject\0[RFC PATCH v4 3/5] PCI: Check platform specific ECAM quirks\0" "Date\0Mon, 25 Jul 2016 17:56:05 -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 - hanjun.guo@linaro.org - Lorenzo.Pieralisi@arm.com - okaya@codeaurora.org - " jchandra@broadcom.com\0" - "Cc\0robert.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 - linux-acpi@vger.kernel.org - linux-kernel@vger.kernel.org - linaro-acpi@lists.linaro.org - jcm@redhat.com - andrea.gallo@linaro.org - dhdang@apm.com - jeremy.linton@arm.com - liudongdong3@huawei.com - cov@codeaurora.org - gabriele.paoloni@huawei.com - " jhugo@codeaurora.org\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On Tue, 2016-06-28 at 09:54 +0200, Tomasz Nowicki wrote:\n" @@ -51,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 | 88 ++++++++++++++++++++++++++++++++++++++++++\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, 111 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 | 88 ++++++++++++++++++++++++++++++++++++++++++\n" + "> ?drivers/pci/host/mcfg-quirks.h | 20 ++++++++++\n" + "> ?include/linux/pci-acpi.h???????|??2 +\n" + "> ?4 files changed, 111 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 5bc0af2..e3d55a0 100644\n" "> --- a/drivers/pci/host/Makefile\n" "> +++ b/drivers/pci/host/Makefile\n" "> @@ -30,3 +30,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" @@ -84,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" @@ -107,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" @@ -119,14 +92,14 @@ "> +#define MCFG_BUS_ANY\t\t\tMCFG_BUS_RANGE(0x0, 0xff)\n" "> +\n" "> +static struct pci_cfg_fixup mcfg_qurks[] __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^^^^^^^^^^\n" + "? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^^^^^^^^^^\n" "mcfg_quirks\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" "> +\tint olen = min_t(u8, strlen(f->oem_id), ACPI_OEM_ID_SIZE);\n" "> +\tint tlen = min_t(u8, strlen(f->oem_table_id), ACPI_OEM_TABLE_ID_SIZE);\n" @@ -150,13 +123,13 @@ "> +\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_qurks); 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\tpr_info(\"Handling %s %s r%d PCI MCFG quirks\\n\",\n" "> +\t\t\t\tf->oem_id, f->oem_table_id, f->oem_revision);\n" "> +\t\t\treturn f->init ? f->init(root, f->ops) :\n" @@ -178,7 +151,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" @@ -196,13 +169,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); -0b26d7a3e91737995270dbedd4e5a727c1797f7fa4aa0cd43701544d298fea4a +c8be7b4f229975a78a7b4b7a6723f995ae0483fa35d1f3352d446f0de2e5d5ad
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.