2022-08-20 12:54:59

by Pali Rohár

[permalink] [raw]
Subject: [PATCH] powerpc/fsl-pci: Choose PCI host bridge with alias pci0 as the primary

If there's no PCI host bridge with ISA then check for PCI host bridge with
alias "pci0" (first PCI host bridge) and if it exists then choose it as the
primary PCI host bridge.

This makes choice of primary PCI host bridge more stable across boots and
updates as the last fallback candidate for primary PCI host bridge (if
there is no choice) is selected arbitrary.

Signed-off-by: Pali Rohár <[email protected]>
---
arch/powerpc/sysdev/fsl_pci.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index 1011cfea2e32..e4b703943dd3 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -1125,6 +1125,19 @@ void __init fsl_pci_assign_primary(void)
return;
}

+ /*
+ * If there's no PCI host bridge with ISA then check for
+ * PCI host bridge with alias "pci0" (first PCI host bridge).
+ */
+ np = of_find_node_by_path("pci0");
+ if (np && of_match_node(pci_ids, np) && of_device_is_available(np)) {
+ fsl_pci_primary = np;
+ of_node_put(np);
+ return;
+ }
+ if (np)
+ of_node_put(np);
+
/*
* If there's no PCI host bridge with ISA, arbitrarily
* designate one as primary. This can go away once
--
2.20.1


2022-10-09 11:30:30

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH] powerpc/fsl-pci: Choose PCI host bridge with alias pci0 as the primary

Hello! Any opinion on this patch?

On Saturday 20 August 2022 14:33:27 Pali Rohár wrote:
> If there's no PCI host bridge with ISA then check for PCI host bridge with
> alias "pci0" (first PCI host bridge) and if it exists then choose it as the
> primary PCI host bridge.
>
> This makes choice of primary PCI host bridge more stable across boots and
> updates as the last fallback candidate for primary PCI host bridge (if
> there is no choice) is selected arbitrary.
>
> Signed-off-by: Pali Rohár <[email protected]>
> ---
> arch/powerpc/sysdev/fsl_pci.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
> index 1011cfea2e32..e4b703943dd3 100644
> --- a/arch/powerpc/sysdev/fsl_pci.c
> +++ b/arch/powerpc/sysdev/fsl_pci.c
> @@ -1125,6 +1125,19 @@ void __init fsl_pci_assign_primary(void)
> return;
> }
>
> + /*
> + * If there's no PCI host bridge with ISA then check for
> + * PCI host bridge with alias "pci0" (first PCI host bridge).
> + */
> + np = of_find_node_by_path("pci0");
> + if (np && of_match_node(pci_ids, np) && of_device_is_available(np)) {
> + fsl_pci_primary = np;
> + of_node_put(np);
> + return;
> + }
> + if (np)
> + of_node_put(np);
> +
> /*
> * If there's no PCI host bridge with ISA, arbitrarily
> * designate one as primary. This can go away once
> --
> 2.20.1
>

2022-11-01 23:40:22

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH] powerpc/fsl-pci: Choose PCI host bridge with alias pci0 as the primary

Hello! I would like to remind this patch.

On Sunday 09 October 2022 13:08:08 Pali Rohár wrote:
> Hello! Any opinion on this patch?
>
> On Saturday 20 August 2022 14:33:27 Pali Rohár wrote:
> > If there's no PCI host bridge with ISA then check for PCI host bridge with
> > alias "pci0" (first PCI host bridge) and if it exists then choose it as the
> > primary PCI host bridge.
> >
> > This makes choice of primary PCI host bridge more stable across boots and
> > updates as the last fallback candidate for primary PCI host bridge (if
> > there is no choice) is selected arbitrary.
> >
> > Signed-off-by: Pali Rohár <[email protected]>
> > ---
> > arch/powerpc/sysdev/fsl_pci.c | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
> > index 1011cfea2e32..e4b703943dd3 100644
> > --- a/arch/powerpc/sysdev/fsl_pci.c
> > +++ b/arch/powerpc/sysdev/fsl_pci.c
> > @@ -1125,6 +1125,19 @@ void __init fsl_pci_assign_primary(void)
> > return;
> > }
> >
> > + /*
> > + * If there's no PCI host bridge with ISA then check for
> > + * PCI host bridge with alias "pci0" (first PCI host bridge).
> > + */
> > + np = of_find_node_by_path("pci0");
> > + if (np && of_match_node(pci_ids, np) && of_device_is_available(np)) {
> > + fsl_pci_primary = np;
> > + of_node_put(np);
> > + return;
> > + }
> > + if (np)
> > + of_node_put(np);
> > +
> > /*
> > * If there's no PCI host bridge with ISA, arbitrarily
> > * designate one as primary. This can go away once
> > --
> > 2.20.1
> >

2022-11-26 17:07:27

by Pali Rohár

[permalink] [raw]
Subject: Re: [PATCH] powerpc/fsl-pci: Choose PCI host bridge with alias pci0 as the primary

PING?

On Tuesday 01 November 2022 23:19:09 Pali Rohár wrote:
> Hello! I would like to remind this patch.
>
> On Sunday 09 October 2022 13:08:08 Pali Rohár wrote:
> > Hello! Any opinion on this patch?
> >
> > On Saturday 20 August 2022 14:33:27 Pali Rohár wrote:
> > > If there's no PCI host bridge with ISA then check for PCI host bridge with
> > > alias "pci0" (first PCI host bridge) and if it exists then choose it as the
> > > primary PCI host bridge.
> > >
> > > This makes choice of primary PCI host bridge more stable across boots and
> > > updates as the last fallback candidate for primary PCI host bridge (if
> > > there is no choice) is selected arbitrary.
> > >
> > > Signed-off-by: Pali Rohár <[email protected]>
> > > ---
> > > arch/powerpc/sysdev/fsl_pci.c | 13 +++++++++++++
> > > 1 file changed, 13 insertions(+)
> > >
> > > diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
> > > index 1011cfea2e32..e4b703943dd3 100644
> > > --- a/arch/powerpc/sysdev/fsl_pci.c
> > > +++ b/arch/powerpc/sysdev/fsl_pci.c
> > > @@ -1125,6 +1125,19 @@ void __init fsl_pci_assign_primary(void)
> > > return;
> > > }
> > >
> > > + /*
> > > + * If there's no PCI host bridge with ISA then check for
> > > + * PCI host bridge with alias "pci0" (first PCI host bridge).
> > > + */
> > > + np = of_find_node_by_path("pci0");
> > > + if (np && of_match_node(pci_ids, np) && of_device_is_available(np)) {
> > > + fsl_pci_primary = np;
> > > + of_node_put(np);
> > > + return;
> > > + }
> > > + if (np)
> > > + of_node_put(np);
> > > +
> > > /*
> > > * If there's no PCI host bridge with ISA, arbitrarily
> > > * designate one as primary. This can go away once
> > > --
> > > 2.20.1
> > >