* [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: Michael Guntsche, linuxppc-dev, linux-kernel
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: Michael Guntsche, linuxppc-dev, linux-kernel
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
^ 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: Michael Guntsche, linuxppc-dev, linux-kernel
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: Michael Guntsche, linuxppc-dev, linux-kernel
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
^ 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: Rojhalat Ibrahim, linuxppc-dev, 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