linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] powerpc/pci: Fix setup of Freescale PCI / PCIe controllers
@ 2013-06-14  9:05 Rojhalat Ibrahim
  2013-06-14 20:18 ` Scott Wood
  0 siblings, 1 reply; 5+ messages in thread
From: Rojhalat Ibrahim @ 2013-06-14  9:05 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, linux-kernel, Michael Guntsche

Commit 50d8f87d2b3 (powerpc/fsl-pci Make PCIe hotplug work with Freescale
PCIe controllers) does not handle non-PCIe controllers properly, which causes
a panic during boot for certain configurations.
This patch fixes the issue by calling setup_indirect_pci for all device types.
fsl_indirect_read_config is now only used for booke/86xx PCIe controllers.

Reported-by: Michael Guntsche <mike@it-loops.com>
Cc: Scott Wood <scottwood@freescale.com>
Signed-off-by: Rojhalat Ibrahim <imr@rtschenk.de>
---
v2: Make it more consistent.

 arch/powerpc/sysdev/fsl_pci.c |   20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index 028ac1f..5682c8a 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -97,20 +97,12 @@ static int fsl_indirect_read_config(struct pci_bus *bus, 
unsigned int devfn,
 	return indirect_read_config(bus, devfn, offset, len, val);
 }
 
-static struct pci_ops fsl_indirect_pci_ops =
+static struct pci_ops fsl_indirect_pcie_ops =
 {
 	.read = fsl_indirect_read_config,
 	.write = indirect_write_config,
 };
 
-static void __init fsl_setup_indirect_pci(struct pci_controller* hose,
-					  resource_size_t cfg_addr,
-					  resource_size_t cfg_data, u32 flags)
-{
-	setup_indirect_pci(hose, cfg_addr, cfg_data, flags);
-	hose->ops = &fsl_indirect_pci_ops;
-}
-
 #if defined(CONFIG_FSL_SOC_BOOKE) || defined(CONFIG_PPC_86xx)
 
 #define MAX_PHYS_ADDR_BITS	40
@@ -504,13 +496,15 @@ int __init fsl_add_bridge(struct platform_device *pdev, 
int is_primary)
 	if (!hose->private_data)
 		goto no_bridge;
 
-	fsl_setup_indirect_pci(hose, rsrc.start, rsrc.start + 0x4,
-			       PPC_INDIRECT_TYPE_BIG_ENDIAN);
+	setup_indirect_pci(hose, rsrc.start, rsrc.start + 0x4,
+			   PPC_INDIRECT_TYPE_BIG_ENDIAN);
 
 	if (in_be32(&pci->block_rev1) < PCIE_IP_REV_3_0)
 		hose->indirect_type |= PPC_INDIRECT_TYPE_FSL_CFG_REG_LINK;
 
 	if (early_find_capability(hose, 0, 0, PCI_CAP_ID_EXP)) {
+		/* use fsl_indirect_read_config for PCIe */
+		hose->ops = &fsl_indirect_pcie_ops;
 		/* For PCIE read HEADER_TYPE to identify controler mode */
 		early_read_config_byte(hose, 0, 0, PCI_HEADER_TYPE, &hdr_type);
 		if ((hdr_type & 0x7f) != PCI_HEADER_TYPE_BRIDGE)
@@ -814,8 +808,8 @@ int __init mpc83xx_add_bridge(struct device_node *dev)
 		if (ret)
 			goto err0;
 	} else {
-		fsl_setup_indirect_pci(hose, rsrc_cfg.start,
-				       rsrc_cfg.start + 4, 0);
+		setup_indirect_pci(hose, rsrc_cfg.start,
+				   rsrc_cfg.start + 4, 0);
 	}
 
 	printk(KERN_INFO "Found FSL PCI host bridge at 0x%016llx. "

--
1.8.1.5

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

* Re: [PATCH v2] powerpc/pci: Fix setup of Freescale PCI / PCIe controllers
  2013-06-14  9:05 [PATCH v2] powerpc/pci: Fix setup of Freescale PCI / PCIe controllers Rojhalat Ibrahim
@ 2013-06-14 20:18 ` Scott Wood
  2013-06-17 13:15   ` Rojhalat Ibrahim
  0 siblings, 1 reply; 5+ messages in thread
From: Scott Wood @ 2013-06-14 20:18 UTC (permalink / raw)
  To: Rojhalat Ibrahim; +Cc: linuxppc-dev, linux-kernel, Michael Guntsche

On 06/14/2013 04:05:34 AM, Rojhalat Ibrahim wrote:
> Commit 50d8f87d2b3 (powerpc/fsl-pci Make PCIe hotplug work with =20
> Freescale
> PCIe controllers) does not handle non-PCIe controllers properly, =20
> which causes
> a panic during boot for certain configurations.
> This patch fixes the issue by calling setup_indirect_pci for all =20
> device types.
> fsl_indirect_read_config is now only used for booke/86xx PCIe =20
> controllers.
>=20
> Reported-by: Michael Guntsche <mike@it-loops.com>
> Cc: Scott Wood <scottwood@freescale.com>
> Signed-off-by: Rojhalat Ibrahim <imr@rtschenk.de>
> ---
> v2: Make it more consistent.
>=20
>  arch/powerpc/sysdev/fsl_pci.c |   20 +++++++-------------
>  1 file changed, 7 insertions(+), 13 deletions(-)
>=20
> diff --git a/arch/powerpc/sysdev/fsl_pci.c =20
> b/arch/powerpc/sysdev/fsl_pci.c
> index 028ac1f..5682c8a 100644
> --- a/arch/powerpc/sysdev/fsl_pci.c
> +++ b/arch/powerpc/sysdev/fsl_pci.c
> @@ -97,20 +97,12 @@ static int fsl_indirect_read_config(struct =20
> pci_bus *bus,
> unsigned int devfn,
>  	return indirect_read_config(bus, devfn, offset, len, val);
>  }
>=20
> -static struct pci_ops fsl_indirect_pci_ops =3D
> +static struct pci_ops fsl_indirect_pcie_ops =3D
>  {
>  	.read =3D fsl_indirect_read_config,
>  	.write =3D indirect_write_config,
>  };

On 83xx:
cc1: warnings being treated as errors
/home/scott/fsl/git/linux/upstream/arch/powerpc/sysdev/fsl_pci.c:100:23: =20
error: 'fsl_indirect_pcie_ops' defined but not used
make[2]: *** [arch/powerpc/sysdev/fsl_pci.o] Error 1
make[2]: *** Waiting for unfinished jobs....

I can fix this when applying, but this makes me wonder how you tested =20
it, given that the whole point is to fix 83xx...  Did you fix this and =20
then accidentally sent a stale version?

Also, please be careful that the patch doesn't get line wrapped -- I =20
had to manually unwrap a couple places.  Use git send-email if you =20
can't get KMail to cooperate.

-Scott=

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

* Re: [PATCH v2] powerpc/pci: Fix setup of Freescale PCI / PCIe controllers
  2013-06-14 20:18 ` Scott Wood
@ 2013-06-17 13:15   ` Rojhalat Ibrahim
  2013-06-18  0:10     ` Scott Wood
  0 siblings, 1 reply; 5+ messages in thread
From: Rojhalat Ibrahim @ 2013-06-17 13:15 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, linux-kernel, Michael Guntsche

On Friday 14 June 2013 15:18:03 Scott Wood wrote:
> On 06/14/2013 04:05:34 AM, Rojhalat Ibrahim wrote:
> > Commit 50d8f87d2b3 (powerpc/fsl-pci Make PCIe hotplug work with
> > Freescale
> > PCIe controllers) does not handle non-PCIe controllers properly,
> > which causes
> > a panic during boot for certain configurations.
> > This patch fixes the issue by calling setup_indirect_pci for all
> > device types.
> > fsl_indirect_read_config is now only used for booke/86xx PCIe
> > controllers.
> > 
> > Reported-by: Michael Guntsche <mike@it-loops.com>
> > Cc: Scott Wood <scottwood@freescale.com>
> > Signed-off-by: Rojhalat Ibrahim <imr@rtschenk.de>
> > ---
> > v2: Make it more consistent.
> > 
> >  arch/powerpc/sysdev/fsl_pci.c |   20 +++++++-------------
> >  1 file changed, 7 insertions(+), 13 deletions(-)
> > 
> > diff --git a/arch/powerpc/sysdev/fsl_pci.c
> > b/arch/powerpc/sysdev/fsl_pci.c
> > index 028ac1f..5682c8a 100644
> > --- a/arch/powerpc/sysdev/fsl_pci.c
> > +++ b/arch/powerpc/sysdev/fsl_pci.c
> > @@ -97,20 +97,12 @@ static int fsl_indirect_read_config(struct
> > pci_bus *bus,
> > unsigned int devfn,
> > 
> >  	return indirect_read_config(bus, devfn, offset, len, val);
> >  
> >  }
> > 
> > -static struct pci_ops fsl_indirect_pci_ops =
> > +static struct pci_ops fsl_indirect_pcie_ops =
> > 
> >  {
> >  
> >  	.read = fsl_indirect_read_config,
> >  	.write = indirect_write_config,
> >  
> >  };
> 
> On 83xx:
> cc1: warnings being treated as errors
> /home/scott/fsl/git/linux/upstream/arch/powerpc/sysdev/fsl_pci.c:100:23:
> error: 'fsl_indirect_pcie_ops' defined but not used
> make[2]: *** [arch/powerpc/sysdev/fsl_pci.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> 
> I can fix this when applying, but this makes me wonder how you tested
> it, given that the whole point is to fix 83xx...  Did you fix this and
> then accidentally sent a stale version?
> 
> Also, please be careful that the patch doesn't get line wrapped -- I
> had to manually unwrap a couple places.  Use git send-email if you
> can't get KMail to cooperate.
> 
> -Scott

Sorry about the mess. I'll send a v3.
Please note: I don't have an 83xx system. So I can only test if it compiles, 
which I obviously did not do with the right config.

   Rojhalat

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

* Re: [PATCH v2] powerpc/pci: Fix setup of Freescale PCI / PCIe controllers
  2013-06-17 13:15   ` Rojhalat Ibrahim
@ 2013-06-18  0:10     ` Scott Wood
  2013-06-18 17:31       ` Michael Guntsche
  0 siblings, 1 reply; 5+ messages in thread
From: Scott Wood @ 2013-06-18  0:10 UTC (permalink / raw)
  To: Rojhalat Ibrahim; +Cc: linuxppc-dev, linux-kernel, Michael Guntsche

On 06/17/2013 08:15:33 AM, Rojhalat Ibrahim wrote:
> On Friday 14 June 2013 15:18:03 Scott Wood wrote:
> > On 83xx:
> > cc1: warnings being treated as errors
> > =20
> /home/scott/fsl/git/linux/upstream/arch/powerpc/sysdev/fsl_pci.c:100:23:
> > error: 'fsl_indirect_pcie_ops' defined but not used
> > make[2]: *** [arch/powerpc/sysdev/fsl_pci.o] Error 1
> > make[2]: *** Waiting for unfinished jobs....
> >
> > I can fix this when applying, but this makes me wonder how you =20
> tested
> > it, given that the whole point is to fix 83xx...  Did you fix this =20
> and
> > then accidentally sent a stale version?
> >
> > Also, please be careful that the patch doesn't get line wrapped -- I
> > had to manually unwrap a couple places.  Use git send-email if you
> > can't get KMail to cooperate.
> >
> > -Scott
>=20
> Sorry about the mess. I'll send a v3.
> Please note: I don't have an 83xx system. So I can only test if it =20
> compiles,
> which I obviously did not do with the right config.

OK, so it looks like it was Michael who ran into the problem on 83xx.  =20
Michael, could you test the v3 patch that Rojhalat posted?

-Scott=

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

* Re: [PATCH v2] powerpc/pci: Fix setup of Freescale PCI / PCIe controllers
  2013-06-18  0:10     ` Scott Wood
@ 2013-06-18 17:31       ` Michael Guntsche
  0 siblings, 0 replies; 5+ messages in thread
From: Michael Guntsche @ 2013-06-18 17:31 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev, Rojhalat Ibrahim, linux-kernel

On Tue, Jun 18, 2013 at 2:10 AM, Scott Wood <scottwood@freescale.com> wrote:
> On 06/17/2013 08:15:33 AM, Rojhalat Ibrahim wrote:
>>
>> On Friday 14 June 2013 15:18:03 Scott Wood wrote:
>> > On 83xx:
>> > cc1: warnings being treated as errors
>> > /home/scott/fsl/git/linux/upstream/arch/powerpc/sysdev/fsl_pci.c:100:23:
>> > error: 'fsl_indirect_pcie_ops' defined but not used
>> > make[2]: *** [arch/powerpc/sysdev/fsl_pci.o] Error 1
>> > make[2]: *** Waiting for unfinished jobs....
>> >
>> > I can fix this when applying, but this makes me wonder how you tested
>> > it, given that the whole point is to fix 83xx...  Did you fix this and
>> > then accidentally sent a stale version?
>> >
>> > Also, please be careful that the patch doesn't get line wrapped -- I
>> > had to manually unwrap a couple places.  Use git send-email if you
>> > can't get KMail to cooperate.
>> >
>> > -Scott
>>
>> Sorry about the mess. I'll send a v3.
>> Please note: I don't have an 83xx system. So I can only test if it
>> compiles,
>> which I obviously did not do with the right config.
>
>
> OK, so it looks like it was Michael who ran into the problem on 83xx.
> Michael, could you test the v3 patch that Rojhalat posted?
>
> -Scott

I did a quick check against -rc6 and the system compiles and boots up fine.

/Mike

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

end of thread, other threads:[~2013-06-18 17:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-14  9:05 [PATCH v2] powerpc/pci: Fix setup of Freescale PCI / PCIe controllers Rojhalat Ibrahim
2013-06-14 20:18 ` Scott Wood
2013-06-17 13:15   ` Rojhalat Ibrahim
2013-06-18  0:10     ` Scott Wood
2013-06-18 17:31       ` Michael Guntsche

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).