linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] PCI: aardvark: fix big endian support
@ 2019-07-16 12:12 Grzegorz Jaszczyk
  2019-09-30  8:17 ` Grzegorz Jaszczyk
  2019-10-17 12:43 ` Lorenzo Pieralisi
  0 siblings, 2 replies; 5+ messages in thread
From: Grzegorz Jaszczyk @ 2019-07-16 12:12 UTC (permalink / raw)
  To: thomas.petazzoni, lorenzo.pieralisi, bhelgaas
  Cc: linux-pci, linux-arm-kernel, mw, Grzegorz Jaszczyk

Initialise every not-byte wide fields of emulated pci bridge config
space with proper cpu_to_le* macro. This is required since the structure
describing config space of emulated bridge assumes little-endian
convention.

Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
---
v1->v2
- add missing cpu_to_le32 for class_revison assignment (issues found by
Thomas Petazzoni and also detected by Sparse tool).

 drivers/pci/controller/pci-aardvark.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 134e030..178e92f 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -479,18 +479,20 @@ static void advk_sw_pci_bridge_init(struct advk_pcie *pcie)
 {
 	struct pci_bridge_emul *bridge = &pcie->bridge;
 
-	bridge->conf.vendor = advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff;
-	bridge->conf.device = advk_readl(pcie, PCIE_CORE_DEV_ID_REG) >> 16;
+	bridge->conf.vendor =
+		cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff);
+	bridge->conf.device =
+		cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) >> 16);
 	bridge->conf.class_revision =
-		advk_readl(pcie, PCIE_CORE_DEV_REV_REG) & 0xff;
+		cpu_to_le32(advk_readl(pcie, PCIE_CORE_DEV_REV_REG) & 0xff);
 
 	/* Support 32 bits I/O addressing */
 	bridge->conf.iobase = PCI_IO_RANGE_TYPE_32;
 	bridge->conf.iolimit = PCI_IO_RANGE_TYPE_32;
 
 	/* Support 64 bits memory pref */
-	bridge->conf.pref_mem_base = PCI_PREF_RANGE_TYPE_64;
-	bridge->conf.pref_mem_limit = PCI_PREF_RANGE_TYPE_64;
+	bridge->conf.pref_mem_base = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
+	bridge->conf.pref_mem_limit = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
 
 	/* Support interrupt A for MSI feature */
 	bridge->conf.intpin = PCIE_CORE_INT_A_ASSERT_ENABLE;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] PCI: aardvark: fix big endian support
  2019-07-16 12:12 [PATCH v2] PCI: aardvark: fix big endian support Grzegorz Jaszczyk
@ 2019-09-30  8:17 ` Grzegorz Jaszczyk
  2019-09-30 14:39   ` Lorenzo Pieralisi
  2019-10-17 12:43 ` Lorenzo Pieralisi
  1 sibling, 1 reply; 5+ messages in thread
From: Grzegorz Jaszczyk @ 2019-09-30  8:17 UTC (permalink / raw)
  To: Thomas Petazzoni, lorenzo.pieralisi, Bjorn Helgaas
  Cc: linux-pci, linux-arm-kernel, Marcin Wojtas, Russell King - ARM Linux

Hello,

I want to kindly remind about this patch.

Best regards,
Grzegorz

wt., 16 lip 2019 o 14:12 Grzegorz Jaszczyk <jaz@semihalf.com> napisał(a):
>
> Initialise every not-byte wide fields of emulated pci bridge config
> space with proper cpu_to_le* macro. This is required since the structure
> describing config space of emulated bridge assumes little-endian
> convention.
>
> Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
> ---
> v1->v2
> - add missing cpu_to_le32 for class_revison assignment (issues found by
> Thomas Petazzoni and also detected by Sparse tool).
>
>  drivers/pci/controller/pci-aardvark.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
> index 134e030..178e92f 100644
> --- a/drivers/pci/controller/pci-aardvark.c
> +++ b/drivers/pci/controller/pci-aardvark.c
> @@ -479,18 +479,20 @@ static void advk_sw_pci_bridge_init(struct advk_pcie *pcie)
>  {
>         struct pci_bridge_emul *bridge = &pcie->bridge;
>
> -       bridge->conf.vendor = advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff;
> -       bridge->conf.device = advk_readl(pcie, PCIE_CORE_DEV_ID_REG) >> 16;
> +       bridge->conf.vendor =
> +               cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff);
> +       bridge->conf.device =
> +               cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) >> 16);
>         bridge->conf.class_revision =
> -               advk_readl(pcie, PCIE_CORE_DEV_REV_REG) & 0xff;
> +               cpu_to_le32(advk_readl(pcie, PCIE_CORE_DEV_REV_REG) & 0xff);
>
>         /* Support 32 bits I/O addressing */
>         bridge->conf.iobase = PCI_IO_RANGE_TYPE_32;
>         bridge->conf.iolimit = PCI_IO_RANGE_TYPE_32;
>
>         /* Support 64 bits memory pref */
> -       bridge->conf.pref_mem_base = PCI_PREF_RANGE_TYPE_64;
> -       bridge->conf.pref_mem_limit = PCI_PREF_RANGE_TYPE_64;
> +       bridge->conf.pref_mem_base = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
> +       bridge->conf.pref_mem_limit = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
>
>         /* Support interrupt A for MSI feature */
>         bridge->conf.intpin = PCIE_CORE_INT_A_ASSERT_ENABLE;
> --
> 2.7.4
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] PCI: aardvark: fix big endian support
  2019-09-30  8:17 ` Grzegorz Jaszczyk
@ 2019-09-30 14:39   ` Lorenzo Pieralisi
  2019-10-04  8:38     ` Grzegorz Jaszczyk
  0 siblings, 1 reply; 5+ messages in thread
From: Lorenzo Pieralisi @ 2019-09-30 14:39 UTC (permalink / raw)
  To: Grzegorz Jaszczyk
  Cc: Thomas Petazzoni, Bjorn Helgaas, linux-pci, linux-arm-kernel,
	Marcin Wojtas, Russell King - ARM Linux

On Mon, Sep 30, 2019 at 10:17:33AM +0200, Grzegorz Jaszczyk wrote:
> Hello,
> 
> I want to kindly remind about this patch.

I need Thomas' ACK on these patches to merge them.

Thanks,
Lorenzo

> Best regards,
> Grzegorz
> 
> wt., 16 lip 2019 o 14:12 Grzegorz Jaszczyk <jaz@semihalf.com> napisał(a):
> >
> > Initialise every not-byte wide fields of emulated pci bridge config
> > space with proper cpu_to_le* macro. This is required since the structure
> > describing config space of emulated bridge assumes little-endian
> > convention.
> >
> > Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
> > ---
> > v1->v2
> > - add missing cpu_to_le32 for class_revison assignment (issues found by
> > Thomas Petazzoni and also detected by Sparse tool).
> >
> >  drivers/pci/controller/pci-aardvark.c | 12 +++++++-----
> >  1 file changed, 7 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
> > index 134e030..178e92f 100644
> > --- a/drivers/pci/controller/pci-aardvark.c
> > +++ b/drivers/pci/controller/pci-aardvark.c
> > @@ -479,18 +479,20 @@ static void advk_sw_pci_bridge_init(struct advk_pcie *pcie)
> >  {
> >         struct pci_bridge_emul *bridge = &pcie->bridge;
> >
> > -       bridge->conf.vendor = advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff;
> > -       bridge->conf.device = advk_readl(pcie, PCIE_CORE_DEV_ID_REG) >> 16;
> > +       bridge->conf.vendor =
> > +               cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff);
> > +       bridge->conf.device =
> > +               cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) >> 16);
> >         bridge->conf.class_revision =
> > -               advk_readl(pcie, PCIE_CORE_DEV_REV_REG) & 0xff;
> > +               cpu_to_le32(advk_readl(pcie, PCIE_CORE_DEV_REV_REG) & 0xff);
> >
> >         /* Support 32 bits I/O addressing */
> >         bridge->conf.iobase = PCI_IO_RANGE_TYPE_32;
> >         bridge->conf.iolimit = PCI_IO_RANGE_TYPE_32;
> >
> >         /* Support 64 bits memory pref */
> > -       bridge->conf.pref_mem_base = PCI_PREF_RANGE_TYPE_64;
> > -       bridge->conf.pref_mem_limit = PCI_PREF_RANGE_TYPE_64;
> > +       bridge->conf.pref_mem_base = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
> > +       bridge->conf.pref_mem_limit = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
> >
> >         /* Support interrupt A for MSI feature */
> >         bridge->conf.intpin = PCIE_CORE_INT_A_ASSERT_ENABLE;
> > --
> > 2.7.4
> >

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] PCI: aardvark: fix big endian support
  2019-09-30 14:39   ` Lorenzo Pieralisi
@ 2019-10-04  8:38     ` Grzegorz Jaszczyk
  0 siblings, 0 replies; 5+ messages in thread
From: Grzegorz Jaszczyk @ 2019-10-04  8:38 UTC (permalink / raw)
  To: Thomas Petazzoni
  Cc: Bjorn Helgaas, linux-pci, Lorenzo Pieralisi, linux-arm-kernel,
	Marcin Wojtas, Russell King - ARM Linux

pon., 30 wrz 2019 o 16:39 Lorenzo Pieralisi
<lorenzo.pieralisi@arm.com> napisał(a):
>
> > I want to kindly remind about this patch.
>
> I need Thomas' ACK on these patches to merge them.

Thomas, could you please take a look?

Thank you in advance,
Grzegorz

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] PCI: aardvark: fix big endian support
  2019-07-16 12:12 [PATCH v2] PCI: aardvark: fix big endian support Grzegorz Jaszczyk
  2019-09-30  8:17 ` Grzegorz Jaszczyk
@ 2019-10-17 12:43 ` Lorenzo Pieralisi
  1 sibling, 0 replies; 5+ messages in thread
From: Lorenzo Pieralisi @ 2019-10-17 12:43 UTC (permalink / raw)
  To: Grzegorz Jaszczyk
  Cc: thomas.petazzoni, bhelgaas, linux-pci, linux-arm-kernel, mw

On Tue, Jul 16, 2019 at 02:12:07PM +0200, Grzegorz Jaszczyk wrote:
> Initialise every not-byte wide fields of emulated pci bridge config
> space with proper cpu_to_le* macro. This is required since the structure
> describing config space of emulated bridge assumes little-endian
> convention.
> 
> Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
> ---
> v1->v2
> - add missing cpu_to_le32 for class_revison assignment (issues found by
> Thomas Petazzoni and also detected by Sparse tool).
> 
>  drivers/pci/controller/pci-aardvark.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)

Applied to pci/aardvark, thanks.

Lorenzo

> diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
> index 134e030..178e92f 100644
> --- a/drivers/pci/controller/pci-aardvark.c
> +++ b/drivers/pci/controller/pci-aardvark.c
> @@ -479,18 +479,20 @@ static void advk_sw_pci_bridge_init(struct advk_pcie *pcie)
>  {
>  	struct pci_bridge_emul *bridge = &pcie->bridge;
>  
> -	bridge->conf.vendor = advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff;
> -	bridge->conf.device = advk_readl(pcie, PCIE_CORE_DEV_ID_REG) >> 16;
> +	bridge->conf.vendor =
> +		cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff);
> +	bridge->conf.device =
> +		cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) >> 16);
>  	bridge->conf.class_revision =
> -		advk_readl(pcie, PCIE_CORE_DEV_REV_REG) & 0xff;
> +		cpu_to_le32(advk_readl(pcie, PCIE_CORE_DEV_REV_REG) & 0xff);
>  
>  	/* Support 32 bits I/O addressing */
>  	bridge->conf.iobase = PCI_IO_RANGE_TYPE_32;
>  	bridge->conf.iolimit = PCI_IO_RANGE_TYPE_32;
>  
>  	/* Support 64 bits memory pref */
> -	bridge->conf.pref_mem_base = PCI_PREF_RANGE_TYPE_64;
> -	bridge->conf.pref_mem_limit = PCI_PREF_RANGE_TYPE_64;
> +	bridge->conf.pref_mem_base = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
> +	bridge->conf.pref_mem_limit = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
>  
>  	/* Support interrupt A for MSI feature */
>  	bridge->conf.intpin = PCIE_CORE_INT_A_ASSERT_ENABLE;
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-10-17 12:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-16 12:12 [PATCH v2] PCI: aardvark: fix big endian support Grzegorz Jaszczyk
2019-09-30  8:17 ` Grzegorz Jaszczyk
2019-09-30 14:39   ` Lorenzo Pieralisi
2019-10-04  8:38     ` Grzegorz Jaszczyk
2019-10-17 12:43 ` Lorenzo Pieralisi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).