From: Alan Douglas <adouglas@cadence.com> To: Niklas Cassel <niklas.cassel@axis.com>, "kishon@ti.com" <kishon@ti.com>, "cyrille.pitchen@free-electrons.com" <cyrille.pitchen@free-electrons.com>, Bjorn Helgaas <bhelgaas@google.com> Cc: Niklas Cassel <niklass@axis.com>, "linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Subject: RE: [PATCH v5 07/12] PCI: cadence: Set PCI_BASE_ADDRESS_MEM_TYPE_64 if a 64-bit BAR was set-up Date: Wed, 28 Mar 2018 13:24:10 +0000 [thread overview] Message-ID: <CO2PR07MB97221CD6D90F81C2D81D65BD8A30@CO2PR07MB972.namprd07.prod.outlook.com> (raw) In-Reply-To: <20180328115018.31921-8-niklas.cassel@axis.com> > On 28/03/2018 12:51, Niklas Cassel wrote: > cdns_pcie_ep_set_bar() does some round-up of the BAR size, which means that a 64-bit BAR can be set-up, even when the flag > PCI_BASE_ADDRESS_MEM_TYPE_64 isn't set. > If a 64-bit BAR was set-up, set the flag PCI_BASE_ADDRESS_MEM_TYPE_64, so that the calling function can know what BAR width that was actually set-up. > I'm not sure why cdns_pcie_ep_set_bar() doesn't obey the flag PCI_BASE_ADDRESS_MEM_TYPE_64, but I leave this for the MAINTAINER to fix, since there might be a reason why > this flag is ignored. Will investigate and fix this in future patch > Signed-off-by: Niklas Cassel <niklas.cassel@axis.com> > --- > drivers/pci/cadence/pcie-cadence-ep.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/pci/cadence/pcie-cadence-ep.c b/drivers/pci/cadence/pcie-cadence-ep.c > index cef36cd6b710..2905e098678c 100644 > --- a/drivers/pci/cadence/pcie-cadence-ep.c > +++ b/drivers/pci/cadence/pcie-cadence-ep.c > @@ -106,6 +106,9 @@ static int cdns_pcie_ep_set_bar(struct pci_epc *epc, u8 fn, > if (is_64bits && (bar & 1)) > return -EINVAL; > > + if (is_64bits && !(flags & PCI_BASE_ADDRESS_MEM_TYPE_64)) > + epf_bar->flags |= PCI_BASE_ADDRESS_MEM_TYPE_64; > + > if (is_64bits && is_prefetch) > ctrl = CDNS_PCIE_LM_BAR_CFG_CTRL_PREFETCH_MEM_64BITS; > else if (is_prefetch) > -- > 2.14.2 Change looks good to me.
WARNING: multiple messages have this Message-ID (diff)
From: Alan Douglas <adouglas@cadence.com> To: Niklas Cassel <niklas.cassel@axis.com>, "kishon@ti.com" <kishon@ti.com>, "cyrille.pitchen@free-electrons.com" <cyrille.pitchen@free-electrons.com>, Bjorn Helgaas <bhelgaas@google.com> Cc: Niklas Cassel <niklass@axis.com>, "linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Subject: RE: [PATCH v5 07/12] PCI: cadence: Set PCI_BASE_ADDRESS_MEM_TYPE_64 if a 64-bit BAR was set-up Date: Wed, 28 Mar 2018 13:24:10 +0000 [thread overview] Message-ID: <CO2PR07MB97221CD6D90F81C2D81D65BD8A30@CO2PR07MB972.namprd07.prod.outlook.com> (raw) In-Reply-To: <20180328115018.31921-8-niklas.cassel@axis.com> > On 28/03/2018 12:51, Niklas Cassel wrote: > cdns_pcie_ep_set_bar() does some round-up of the BAR size, which means th= at a 64-bit BAR can be set-up, even when the flag > PCI_BASE_ADDRESS_MEM_TYPE_64 isn't set. > If a 64-bit BAR was set-up, set the flag PCI_BASE_ADDRESS_MEM_TYPE_64, so= that the calling function can know what BAR width that was actually set-up= . > I'm not sure why cdns_pcie_ep_set_bar() doesn't obey the flag PCI_BASE_AD= DRESS_MEM_TYPE_64, but I leave this for the MAINTAINER to fix, since there = might be a reason why > this flag is ignored. Will investigate and fix this in future patch > Signed-off-by: Niklas Cassel <niklas.cassel@axis.com> > --- > drivers/pci/cadence/pcie-cadence-ep.c | 3 +++ > 1 file changed, 3 insertions(+) >=20 > diff --git a/drivers/pci/cadence/pcie-cadence-ep.c b/drivers/pci/cadence/= pcie-cadence-ep.c > index cef36cd6b710..2905e098678c 100644 > --- a/drivers/pci/cadence/pcie-cadence-ep.c > +++ b/drivers/pci/cadence/pcie-cadence-ep.c > @@ -106,6 +106,9 @@ static int cdns_pcie_ep_set_bar(struct pci_epc *epc, = u8 fn, > if (is_64bits && (bar & 1)) > return -EINVAL; > =20 > + if (is_64bits && !(flags & PCI_BASE_ADDRESS_MEM_TYPE_64)) > + epf_bar->flags |=3D PCI_BASE_ADDRESS_MEM_TYPE_64; > + > if (is_64bits && is_prefetch) > ctrl =3D CDNS_PCIE_LM_BAR_CFG_CTRL_PREFETCH_MEM_64BITS; > else if (is_prefetch) > -- > 2.14.2 Change looks good to me.
next prev parent reply other threads:[~2018-03-28 13:24 UTC|newest] Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-28 11:50 [PATCH v5 00/12] PCI endpoint 64-bit BAR fixes Niklas Cassel 2018-03-28 11:50 ` [PATCH v5 01/12] PCI: endpoint: BAR width should not depend on sizeof dma_addr_t Niklas Cassel 2018-03-29 9:35 ` Kishon Vijay Abraham I 2018-03-28 11:50 ` [PATCH v5 02/12] PCI: endpoint: Simplify epc->ops->set_bar()/pci_epc_set_bar() Niklas Cassel 2018-03-28 13:12 ` Gustavo Pimentel 2018-03-29 9:36 ` Kishon Vijay Abraham I 2018-03-28 11:50 ` [PATCH v5 03/12] PCI: endpoint: Setting BAR_5 to 64-bits wide is invalid Niklas Cassel 2018-03-29 9:40 ` Kishon Vijay Abraham I 2018-03-28 11:50 ` [PATCH v5 04/12] PCI: endpoint: Setting 64-bit/prefetch bit is invalid when IO is set Niklas Cassel 2018-03-29 9:42 ` Kishon Vijay Abraham I 2018-03-28 11:50 ` [PATCH v5 05/12] PCI: endpoint: Setting a BAR size > 4 GB is invalid if 64-bit flag is not set Niklas Cassel 2018-03-29 9:42 ` Kishon Vijay Abraham I 2018-03-28 11:50 ` [PATCH v5 06/12] PCI: designware-ep: Make dw_pcie_ep_set_bar() handle 64-bit BARs properly Niklas Cassel 2018-03-28 13:13 ` Gustavo Pimentel 2018-03-29 9:47 ` Kishon Vijay Abraham I 2018-04-02 19:37 ` Niklas Cassel 2018-04-03 5:39 ` Kishon Vijay Abraham I 2018-04-03 12:53 ` Lorenzo Pieralisi 2018-04-03 14:03 ` Niklas Cassel 2018-03-28 11:50 ` [PATCH v5 07/12] PCI: cadence: Set PCI_BASE_ADDRESS_MEM_TYPE_64 if a 64-bit BAR was set-up Niklas Cassel 2018-03-28 13:24 ` Alan Douglas [this message] 2018-03-28 13:24 ` Alan Douglas 2018-03-28 19:37 ` Bjorn Helgaas 2018-03-29 16:49 ` Alan Douglas 2018-03-29 16:49 ` Alan Douglas 2018-03-28 11:50 ` [PATCH v5 08/12] PCI: endpoint: Handle 64-bit BARs properly Niklas Cassel 2018-03-29 9:50 ` Kishon Vijay Abraham I 2018-03-28 11:50 ` [PATCH v5 09/12] PCI: endpoint: Make epc->ops->clear_bar()/pci_epc_clear_bar() take struct *epf_bar Niklas Cassel 2018-03-28 13:14 ` Gustavo Pimentel 2018-03-29 10:00 ` Kishon Vijay Abraham I 2018-04-02 18:47 ` Niklas Cassel 2018-03-28 11:50 ` [PATCH v5 10/12] PCI: endpoint: Make sure that BAR_5 does not have 64-bit flag set when clearing Niklas Cassel 2018-03-29 10:02 ` Kishon Vijay Abraham I 2018-03-28 11:50 ` [PATCH v5 11/12] PCI: designware-ep: Make dw_pcie_ep_reset_bar() handle 64-bit BARs properly Niklas Cassel 2018-03-28 13:14 ` Gustavo Pimentel 2018-03-29 10:03 ` Kishon Vijay Abraham I 2018-03-28 11:50 ` [PATCH v5 12/12] misc: pci_endpoint_test: Handle " Niklas Cassel 2018-03-29 13:52 ` [PATCH v5 00/12] PCI endpoint 64-bit BAR fixes Gustavo Pimentel 2018-04-02 19:39 ` Niklas Cassel
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=CO2PR07MB97221CD6D90F81C2D81D65BD8A30@CO2PR07MB972.namprd07.prod.outlook.com \ --to=adouglas@cadence.com \ --cc=bhelgaas@google.com \ --cc=cyrille.pitchen@free-electrons.com \ --cc=kishon@ti.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=niklas.cassel@axis.com \ --cc=niklass@axis.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.