[PATCH v3 4/4] ARM/PCI: remove arch specific pcibios_enable_device()

Xuetao Guan gxt at mprc.pku.edu.cn
Thu Jun 30 07:01:21 PDT 2016


> On Thu, Jun 23, 2016 at 06:39:03PM +0800, Xuetao Guan wrote:
>> > [+cc Guan]
>> >
>> > On Wed, Jun 08, 2016 at 12:04:50PM +0100, Lorenzo Pieralisi wrote:
>> >> The arm pcibios_enable_device() implementation exists solely
>> >> to prevent enabling PCI resources on PCI_PROBE_ONLY systems, since
>> >> on those systems the PCI resources are currently not claimed (ie
>> >> inserted in the PCI resource tree - which means their parent
>> >> pointer is not correctly set-up) therefore they can not be enabled
>> >> since this would trigger PCI set-ups failures.
>> >>
>> >> After removing the pci=firmware command line option in:
>> >>
>> >> commit 903589ca7165 ("ARM: 8554/1: kernel: pci: remove pci=firmware
>> >> command line parameter handling")
>> >
>> > 903589ca7165 removed "pci=firmware" from ARM and from
>> > Documentation/kernel-parameters.txt (where it was documented as
>> > ARM-specific).
>> >
>> > I think unicore32 copied that code from arm, so unicore32 is one of
>> > the few remaining arches that can set PCI_PROBE_ONLY.  I suspect this
>> > was just copied from arm and may not be necessary on unicore32.
>> >
>> > Guan, can you confirm that PCI_PROBE_ONLY is necessary on unicore32,
>> > or that it can be removed?
>> >
>>
>> Yes, this code was copied from arm, and it's not necessary.
>> It can be removed safely.
>
> Great, thank you!  I'll add the patch below to my pci/resource branch for
> v4.8.  Let me know if you see any issues with it.
>
>
> commit b9b8a53e24649e48c0a8bceb8d9d8fe1cfee018c
> Author: Bjorn Helgaas <bhelgaas at google.com>
> Date:   Thu Jun 23 11:33:24 2016 -0500
>
>     unicore32/PCI: Remove pci=firmware command line parameter handling
>
>     Remove support for the "pci=firmware" command line parameter, which
> was
>     way to keep the kernel from changing any PCI BAR assignments.  This
> was
>     copied from ARM, but is not actually needed on unicore32.
>
>     The corresponding ARM support was removed by 903589ca7165 ("ARM:
> 8554/1:
>     kernel: pci: remove pci=firmware command line parameter handling").
>
>     Signed-off-by: Bjorn Helgaas <bhelgaas at google.com>

Sorry for late.

Please add my ack,
Acked-by: GUAN Xuetao <gxt at mprc.pku.edu.cn>

>
> diff --git a/arch/unicore32/kernel/pci.c b/arch/unicore32/kernel/pci.c
> index d45fa5f..62137d1 100644
> --- a/arch/unicore32/kernel/pci.c
> +++ b/arch/unicore32/kernel/pci.c
> @@ -265,10 +265,8 @@ static int __init pci_common_init(void)
>
>  	pci_fixup_irqs(pci_common_swizzle, pci_puv3_map_irq);
>
> -	if (!pci_has_flag(PCI_PROBE_ONLY)) {
> -		pci_bus_size_bridges(puv3_bus);
> -		pci_bus_assign_resources(puv3_bus);
> -	}
> +	pci_bus_size_bridges(puv3_bus);
> +	pci_bus_assign_resources(puv3_bus);
>  	pci_bus_add_devices(puv3_bus);
>  	return 0;
>  }
> @@ -279,9 +277,6 @@ char * __init pcibios_setup(char *str)
>  	if (!strcmp(str, "debug")) {
>  		debug_pci = 1;
>  		return NULL;
> -	} else if (!strcmp(str, "firmware")) {
> -		pci_add_flags(PCI_PROBE_ONLY);
> -		return NULL;
>  	}
>  	return str;
>  }
>




More information about the linux-arm-kernel mailing list