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