[U-Boot-Users] [PATCH] pci: Move PCI device configuration check into a separate weak function

Nobuhiro Iwamatsu hemamu at t-base.ne.jp
Wed Jul 9 07:08:48 CEST 2008


Hi, Stefan.

2008/7/8 Stefan Roese <sr at denx.de>:
> This patch moves the check, if a device should be skipped in PCI PNP
> configuration into the function pci_skip_dev(). This function is defined
> as weak so that it can be overwritten by a platform specific one if
> needed. The check if the device should get printed in the PCI summary upon
> bootup (when CONFIG_PCI_SCAN_SHOW is defined) is moved to the function
> pci_print_dev() which is also defined as weak too.
>
> Signed-off-by: Stefan Roese <sr at denx.de>
> ---
>  drivers/pci/pci.c |   70 ++++++++++++++++++++++++++++++++++------------------
>  1 files changed, 46 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index b3ae3b1..16180cb 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -411,6 +411,40 @@ void pci_cfgfunc_do_nothing(struct pci_controller *hose,
>  extern int pciauto_config_device(struct pci_controller *hose, pci_dev_t dev);
>  extern void pciauto_config_init(struct pci_controller *hose);
>
> +int __pci_skip_dev(struct pci_controller *hose, pci_dev_t dev)
> +{
> +       /*
> +        * Check if pci device should be skipped in configuration
> +        */
> +       if (dev == PCI_BDF(hose->first_busno, 0, 0)) {
> +#if defined(CONFIG_PCI_CONFIG_HOST_BRIDGE) /* don't skip host bridge */
> +               /*
> +                * Only skip configuration if "pciconfighost" is not set
> +                */
> +               if (getenv("pciconfighost") == NULL)
> +                       return 1;
> +#else
> +               return 1;
> +#endif
> +       }
> +
> +       return 0;
> +}
> +int pci_skip_dev(struct pci_controller *hose, pci_dev_t dev)
> +       __attribute__((weak, alias("__pci_skip_dev")));
> +
> +#ifdef CONFIG_PCI_SCAN_SHOW
> +int __pci_print_dev(struct pci_controller *hose, pci_dev_t dev)
> +{
> +       if (dev == PCI_BDF(hose->first_busno, 0, 0))
> +               return 0;
> +
> +       return 1;
> +}
> +int pci_print_dev(struct pci_controller *hose, pci_dev_t dev)
> +       __attribute__((weak, alias("__pci_print_dev")));
> +#endif /* CONFIG_PCI_SCAN_SHOW */

When PCI_BDF was 0,0,0, does the board of PPC have the device which
do not want to initialize?

Best regards,
 Nobuhiro
-- 
Nobuhiro Iwamatsu




More information about the U-Boot mailing list