[U-Boot] [PATCH v2 15/26] dm: pci: Drop the old version of pci_find_class()
Bin Meng
bmeng.cn at gmail.com
Mon Dec 7 11:58:34 CET 2015
On Mon, Nov 30, 2015 at 4:18 AM, Simon Glass <sjg at chromium.org> wrote:
> Move this function into the compatibility file so that it is not available
> by default.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v2:
> - Move the functions into pci_common.c so they can be used by old code
>
> drivers/pci/pci_common.c | 84 ++++++++++++++++++++++++------------------------
> 1 file changed, 42 insertions(+), 42 deletions(-)
>
> diff --git a/drivers/pci/pci_common.c b/drivers/pci/pci_common.c
> index a4573b0..b388a1c 100644
> --- a/drivers/pci/pci_common.c
> +++ b/drivers/pci/pci_common.c
> @@ -79,48 +79,6 @@ const char *pci_class_str(u8 class)
> };
> }
>
> -pci_dev_t pci_find_class(uint find_class, int index)
> -{
> - int bus;
> - int devnum;
> - pci_dev_t bdf;
> - uint32_t class;
> -
> - for (bus = 0; bus <= pci_last_busno(); bus++) {
> - for (devnum = 0; devnum < PCI_MAX_PCI_DEVICES - 1; devnum++) {
> - pci_read_config_dword(PCI_BDF(bus, devnum, 0),
> - PCI_CLASS_REVISION, &class);
> - if (class >> 16 == 0xffff)
> - continue;
> -
> - for (bdf = PCI_BDF(bus, devnum, 0);
> - bdf <= PCI_BDF(bus, devnum,
> - PCI_MAX_PCI_FUNCTIONS - 1);
> - bdf += PCI_BDF(0, 0, 1)) {
> - pci_read_config_dword(bdf, PCI_CLASS_REVISION,
> - &class);
> - class >>= 8;
> -
> - if (class != find_class)
> - continue;
> - /*
> - * Decrement the index. We want to return the
> - * correct device, so index is 0 for the first
> - * matching device, 1 for the second, etc.
> - */
> - if (index) {
> - index--;
> - continue;
> - }
> - /* Return index'th controller. */
> - return bdf;
> - }
> - }
> - }
> -
> - return -ENODEV;
> -}
> -
> __weak int pci_skip_dev(struct pci_controller *hose, pci_dev_t dev)
> {
> /*
> @@ -364,4 +322,46 @@ pci_dev_t pci_hose_find_devices(struct pci_controller *hose, int busnum,
>
> return -1;
> }
> +
> +pci_dev_t pci_find_class(uint find_class, int index)
> +{
> + int bus;
> + int devnum;
> + pci_dev_t bdf;
> + uint32_t class;
> +
> + for (bus = 0; bus <= pci_last_busno(); bus++) {
> + for (devnum = 0; devnum < PCI_MAX_PCI_DEVICES - 1; devnum++) {
> + pci_read_config_dword(PCI_BDF(bus, devnum, 0),
> + PCI_CLASS_REVISION, &class);
> + if (class >> 16 == 0xffff)
> + continue;
> +
> + for (bdf = PCI_BDF(bus, devnum, 0);
> + bdf <= PCI_BDF(bus, devnum,
> + PCI_MAX_PCI_FUNCTIONS - 1);
> + bdf += PCI_BDF(0, 0, 1)) {
> + pci_read_config_dword(bdf, PCI_CLASS_REVISION,
> + &class);
> + class >>= 8;
> +
> + if (class != find_class)
> + continue;
> + /*
> + * Decrement the index. We want to return the
> + * correct device, so index is 0 for the first
> + * matching device, 1 for the second, etc.
> + */
> + if (index) {
> + index--;
> + continue;
> + }
> + /* Return index'th controller. */
> + return bdf;
> + }
> + }
> + }
> +
> + return -ENODEV;
> +}
> #endif /* !CONFIG_DM_PCI || CONFIG_DM_PCI_COMPAT */
> --
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
More information about the U-Boot
mailing list