From: Ard Biesheuvel <ard.biesheuvel@linaro.org> To: Will Deacon <will.deacon@arm.com> Cc: Bjorn Helgaas <helgaas@kernel.org>, linux-pci <linux-pci@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, Leif Lindholm <leif.lindholm@linaro.org>, Graeme Gregory <graeme.gregory@linaro.org>, Bjorn Helgaas <bhelgaas@google.com>, Rob Herring <robh@kernel.org> Subject: Re: [PATCH v4 1/2] PCI: pci-host-generic: add support for Synopsys DesignWare RC in ECAM mode Date: Mon, 9 Oct 2017 19:50:04 +0100 [thread overview] Message-ID: <CAKv+Gu8_h=92bLpybsJytSb7p9_333iUTtXtSkDu19EJy0ws=A@mail.gmail.com> (raw) In-Reply-To: <20171009164607.GD30085@arm.com> On 9 October 2017 at 17:46, Will Deacon <will.deacon@arm.com> wrote: > On Fri, Oct 06, 2017 at 06:21:59PM -0500, Bjorn Helgaas wrote: >> On Fri, Oct 06, 2017 at 05:39:18PM +0100, Ard Biesheuvel wrote: >> > diff --git a/drivers/pci/host/pci-host-generic.c b/drivers/pci/host/pci-host-generic.c >> > index 7d709a7e0aa8..01e81a30e303 100644 >> > --- a/drivers/pci/host/pci-host-generic.c >> > +++ b/drivers/pci/host/pci-host-generic.c >> > @@ -35,6 +35,43 @@ static struct pci_ecam_ops gen_pci_cfg_cam_bus_ops = { >> > } >> > }; >> > >> > +static int pci_dw_ecam_config_read(struct pci_bus *bus, u32 devfn, int where, >> > + int size, u32 *val) >> > +{ >> > + struct pci_config_window *cfg = bus->sysdata; >> > + >> > + /* >> > + * The Synopsys DesignWare PCIe controller in ECAM mode will not filter >> > + * type 0 config TLPs sent to devices 1 and up on its downstream port, >> > + * resulting in devices appearing multiple times on bus 0 unless we >> > + * filter out those accesses here. >> > + */ >> > + if (bus->number == cfg->busr.start && PCI_SLOT(devfn) > 0) >> > + return PCIBIOS_DEVICE_NOT_FOUND; >> >> I think we should return 0xffffffff data here, as we do in other >> similar accessors (dw_pcie_rd_conf(), altera_pcie_cfg_read(), >> rockchip_pcie_rd_conf()). >> >> Actually, xilinx-nwl has a nice trick: it implements >> nwl_pcie_map_bus(), which returns NULL for invalid devices. Then it >> can use the generic accessors, and pci_generic_config_read() already >> fills in ~0 for this case. >> >> What do you think of the following? I put it on my pci/host-generic >> branch for now (pending your response and an ack from Will). > > I'd probably just inline the device check in pci_dw_ecam_map_bus directly, > but either way: > > Acked-by: Will Deacon <will.deacon@arm.com> > Thanks > I'm assuming this is so small that there's no point in having a Kconfig > option for these guys that depends on the generic host driver? > I can make the compatible strings shorter if you like?
WARNING: multiple messages have this Message-ID (diff)
From: ard.biesheuvel@linaro.org (Ard Biesheuvel) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 1/2] PCI: pci-host-generic: add support for Synopsys DesignWare RC in ECAM mode Date: Mon, 9 Oct 2017 19:50:04 +0100 [thread overview] Message-ID: <CAKv+Gu8_h=92bLpybsJytSb7p9_333iUTtXtSkDu19EJy0ws=A@mail.gmail.com> (raw) In-Reply-To: <20171009164607.GD30085@arm.com> On 9 October 2017 at 17:46, Will Deacon <will.deacon@arm.com> wrote: > On Fri, Oct 06, 2017 at 06:21:59PM -0500, Bjorn Helgaas wrote: >> On Fri, Oct 06, 2017 at 05:39:18PM +0100, Ard Biesheuvel wrote: >> > diff --git a/drivers/pci/host/pci-host-generic.c b/drivers/pci/host/pci-host-generic.c >> > index 7d709a7e0aa8..01e81a30e303 100644 >> > --- a/drivers/pci/host/pci-host-generic.c >> > +++ b/drivers/pci/host/pci-host-generic.c >> > @@ -35,6 +35,43 @@ static struct pci_ecam_ops gen_pci_cfg_cam_bus_ops = { >> > } >> > }; >> > >> > +static int pci_dw_ecam_config_read(struct pci_bus *bus, u32 devfn, int where, >> > + int size, u32 *val) >> > +{ >> > + struct pci_config_window *cfg = bus->sysdata; >> > + >> > + /* >> > + * The Synopsys DesignWare PCIe controller in ECAM mode will not filter >> > + * type 0 config TLPs sent to devices 1 and up on its downstream port, >> > + * resulting in devices appearing multiple times on bus 0 unless we >> > + * filter out those accesses here. >> > + */ >> > + if (bus->number == cfg->busr.start && PCI_SLOT(devfn) > 0) >> > + return PCIBIOS_DEVICE_NOT_FOUND; >> >> I think we should return 0xffffffff data here, as we do in other >> similar accessors (dw_pcie_rd_conf(), altera_pcie_cfg_read(), >> rockchip_pcie_rd_conf()). >> >> Actually, xilinx-nwl has a nice trick: it implements >> nwl_pcie_map_bus(), which returns NULL for invalid devices. Then it >> can use the generic accessors, and pci_generic_config_read() already >> fills in ~0 for this case. >> >> What do you think of the following? I put it on my pci/host-generic >> branch for now (pending your response and an ack from Will). > > I'd probably just inline the device check in pci_dw_ecam_map_bus directly, > but either way: > > Acked-by: Will Deacon <will.deacon@arm.com> > Thanks > I'm assuming this is so small that there's no point in having a Kconfig > option for these guys that depends on the generic host driver? > I can make the compatible strings shorter if you like?
next prev parent reply other threads:[~2017-10-09 18:50 UTC|newest] Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-10-06 16:39 [PATCH v4 0/2] PCI: add support for firmware initialized DesignWare RCs Ard Biesheuvel 2017-10-06 16:39 ` Ard Biesheuvel 2017-10-06 16:39 ` Ard Biesheuvel 2017-10-06 16:39 ` [PATCH v4 1/2] PCI: pci-host-generic: add support for Synopsys DesignWare RC in ECAM mode Ard Biesheuvel 2017-10-06 16:39 ` Ard Biesheuvel 2017-10-06 23:21 ` Bjorn Helgaas 2017-10-06 23:21 ` Bjorn Helgaas 2017-10-06 23:21 ` Bjorn Helgaas 2017-10-06 23:41 ` Ard Biesheuvel 2017-10-06 23:41 ` Ard Biesheuvel 2017-10-06 23:41 ` Ard Biesheuvel 2017-10-09 16:46 ` Will Deacon 2017-10-09 16:46 ` Will Deacon 2017-10-09 18:50 ` Ard Biesheuvel [this message] 2017-10-09 18:50 ` Ard Biesheuvel 2017-10-09 18:50 ` Ard Biesheuvel 2017-10-10 0:13 ` Bjorn Helgaas 2017-10-10 0:13 ` Bjorn Helgaas 2017-10-10 0:13 ` Bjorn Helgaas 2017-10-10 9:04 ` Ard Biesheuvel 2017-10-10 9:04 ` Ard Biesheuvel 2017-10-10 9:04 ` Ard Biesheuvel 2017-10-10 9:14 ` Will Deacon 2017-10-10 9:14 ` Will Deacon 2017-10-10 9:14 ` Will Deacon 2017-10-31 8:42 ` Cleaning up non-standard PCIe ECAM on Arm servers Jon Masters 2017-10-06 16:39 ` [PATCH v4 2/2] dt-bindings: designware: add binding for Designware PCIe in ECAM mode Ard Biesheuvel 2017-10-06 16:39 ` Ard Biesheuvel
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='CAKv+Gu8_h=92bLpybsJytSb7p9_333iUTtXtSkDu19EJy0ws=A@mail.gmail.com' \ --to=ard.biesheuvel@linaro.org \ --cc=bhelgaas@google.com \ --cc=graeme.gregory@linaro.org \ --cc=helgaas@kernel.org \ --cc=leif.lindholm@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=robh@kernel.org \ --cc=will.deacon@arm.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.