[U-Boot] [PATCH 08/14] dm: pci: Reorder functions in cmd_pci.c
Bin Meng
bmeng.cn at gmail.com
Fri Nov 13 08:11:05 CET 2015
Hi Simon,
On Fri, Nov 13, 2015 at 5:45 AM, Simon Glass <sjg at chromium.org> wrote:
> Before converting this to driver model, reorder the code to avoid forward
> function declarations.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> common/cmd_pci.c | 216 +++++++++++++++++++++++++++----------------------------
> 1 file changed, 106 insertions(+), 110 deletions(-)
>
> diff --git a/common/cmd_pci.c b/common/cmd_pci.c
> index debcd1c..53b0f42 100644
> --- a/common/cmd_pci.c
> +++ b/common/cmd_pci.c
> @@ -21,115 +21,6 @@
> #include <asm/io.h>
> #include <pci.h>
>
> -/*
> - * Follows routines for the output of infos about devices on PCI bus.
> - */
> -
> -void pci_header_show(pci_dev_t dev);
> -void pci_header_show_brief(pci_dev_t dev);
> -
> -/*
> - * Subroutine: pciinfo
> - *
> - * Description: Show information about devices on PCI bus.
> - * Depending on the define CONFIG_SYS_SHORT_PCI_LISTING
> - * the output will be more or less exhaustive.
> - *
> - * Inputs: bus_no the number of the bus to be scanned.
> - *
> - * Return: None
> - *
> - */
> -void pciinfo(int BusNum, int ShortPCIListing)
> -{
> - struct pci_controller *hose = pci_bus_to_hose(BusNum);
> - int Device;
> - int Function;
> - unsigned char HeaderType;
> - unsigned short VendorID;
> - pci_dev_t dev;
> - int ret;
> -
> - if (!hose)
> - return;
> -
> - printf("Scanning PCI devices on bus %d\n", BusNum);
> -
> - if (ShortPCIListing) {
> - printf("BusDevFun VendorId DeviceId Device Class Sub-Class\n");
> - printf("_____________________________________________________________\n");
> - }
> -
> - for (Device = 0; Device < PCI_MAX_PCI_DEVICES; Device++) {
> - HeaderType = 0;
> - VendorID = 0;
> - for (Function = 0; Function < PCI_MAX_PCI_FUNCTIONS; Function++) {
> - /*
> - * If this is not a multi-function device, we skip the rest.
> - */
> - if (Function && !(HeaderType & 0x80))
> - break;
> -
> - dev = PCI_BDF(BusNum, Device, Function);
> -
> - if (pci_skip_dev(hose, dev))
> - continue;
> -
> - ret = pci_read_config_word(dev, PCI_VENDOR_ID,
> - &VendorID);
> - if (ret)
> - goto error;
> - if ((VendorID == 0xFFFF) || (VendorID == 0x0000))
> - continue;
> -
> - if (!Function) pci_read_config_byte(dev, PCI_HEADER_TYPE, &HeaderType);
> -
> - if (ShortPCIListing)
> - {
> - printf("%02x.%02x.%02x ", BusNum, Device, Function);
> - pci_header_show_brief(dev);
> - }
> - else
> - {
> - printf("\nFound PCI device %02x.%02x.%02x:\n",
> - BusNum, Device, Function);
> - pci_header_show(dev);
> - }
> - }
> - }
> -
> - return;
> -error:
> - printf("Cannot read bus configuration: %d\n", ret);
> -}
> -
> -
> -/*
> - * Subroutine: pci_header_show_brief
> - *
> - * Description: Reads and prints the header of the
> - * specified PCI device in short form.
> - *
> - * Inputs: dev Bus+Device+Function number
> - *
> - * Return: None
> - *
> - */
> -void pci_header_show_brief(pci_dev_t dev)
> -{
> - u16 vendor, device;
> - u8 class, subclass;
> -
> - pci_read_config_word(dev, PCI_VENDOR_ID, &vendor);
> - pci_read_config_word(dev, PCI_DEVICE_ID, &device);
> - pci_read_config_byte(dev, PCI_CLASS_CODE, &class);
> - pci_read_config_byte(dev, PCI_CLASS_SUB_CODE, &subclass);
> -
> - printf("0x%.4x 0x%.4x %-23s 0x%.2x\n",
> - vendor, device,
> - pci_class_str(class), subclass);
> -}
> -
> struct pci_reg_info {
> const char *name;
> enum pci_size_t size;
> @@ -283,10 +174,10 @@ void pci_header_show(pci_dev_t dev)
> {
> u8 _byte, header_type;
>
> + pci_read_config_byte(dev, PCI_CLASS_CODE, &_byte);
> pci_read_config_byte(dev, PCI_HEADER_TYPE, &header_type);
> pci_show_regs(dev, regs_start);
>
> - pci_read_config_byte(dev, PCI_CLASS_CODE, &_byte);
> printf(" class code = 0x%.2x (%s)\n", _byte,
> pci_class_str(_byte));
> pci_show_regs(dev, regs_rest);
> @@ -308,6 +199,111 @@ void pci_header_show(pci_dev_t dev)
> }
> }
>
> +/*
> + * Subroutine: pci_header_show_brief
> + *
> + * Description: Reads and prints the header of the
> + * specified PCI device in short form.
> + *
> + * Inputs: dev Bus+Device+Function number
> + *
> + * Return: None
Can we use @dev, @return here?
> + *
> + */
> +void pci_header_show_brief(pci_dev_t dev)
> +{
> + u16 vendor, device;
> + u8 class, subclass;
> +
> + pci_read_config_word(dev, PCI_VENDOR_ID, &vendor);
> + pci_read_config_word(dev, PCI_DEVICE_ID, &device);
> + pci_read_config_byte(dev, PCI_CLASS_CODE, &class);
> + pci_read_config_byte(dev, PCI_CLASS_SUB_CODE, &subclass);
> +
> + printf("0x%.4x 0x%.4x %-23s 0x%.2x\n",
> + vendor, device,
> + pci_class_str(class), subclass);
> +}
> +
> +/*
> + * Subroutine: pciinfo
> + *
> + * Description: Show information about devices on PCI bus.
> + * Depending on the defineCONFIG_SYS_SHORT_PCI_LISTING
> + * the output will be more or less exhaustive.
> + *
> + * Inputs: bus_no the number of the bus to be scanned.
> + *
It should be 'bus_num'. 'short_pci_listing' is missing here. Also
please use @bus_num, @return, etc.
> + * Return: None
> + *
> + */
> +void pciinfo(int bus_num, int short_pci_listing)
> +{
> + struct pci_controller *hose = pci_bus_to_hose(bus_num);
> + int Device;
> + int Function;
> + unsigned char HeaderType;
> + unsigned short VendorID;
Please rename the above 4 variables to avoid CamelCase.
> + pci_dev_t dev;
> + int ret;
> +
> + if (!hose)
> + return;
> +
> + printf("Scanning PCI devices on bus %d\n", bus_num);
> +
> + if (short_pci_listing) {
> + printf("BusDevFun VendorId DeviceId Device Class Sub-Class\n");
> + printf("_____________________________________________________________\n");
> + }
> +
> + for (Device = 0; Device < PCI_MAX_PCI_DEVICES; Device++) {
> + HeaderType = 0;
> + VendorID = 0;
> + for (Function = 0; Function < PCI_MAX_PCI_FUNCTIONS;
> + Function++) {
> + /*
> + * If this is not a multi-function device, we skip
> + * the rest.
> + */
> + if (Function && !(HeaderType & 0x80))
> + break;
> +
> + dev = PCI_BDF(bus_num, Device, Function);
> +
> + if (pci_skip_dev(hose, dev))
> + continue;
> +
> + ret = pci_read_config_word(dev, PCI_VENDOR_ID,
> + &VendorID);
> + if (ret)
> + goto error;
> + if ((VendorID == 0xFFFF) || (VendorID == 0x0000))
> + continue;
> +
> + if (!Function) {
> + pci_read_config_byte(dev, PCI_HEADER_TYPE,
> + &HeaderType);
> + }
> +
> + if (short_pci_listing) {
> + printf("%02x.%02x.%02x ", bus_num, Device,
> + Function);
> + pci_header_show_brief(dev);
> + } else {
> + printf("\nFound PCI device %02x.%02x.%02x:\n",
> + bus_num, Device, Function);
> + pci_header_show(dev);
> + }
> + }
> + }
> +
> + return;
> +error:
> + printf("Cannot read bus configuration: %d\n", ret);
> +}
> +
> +
> /* Convert the "bus.device.function" identifier into a number.
> */
> static pci_dev_t get_pci_dev(char* name)
> --
Regards,
Bin
More information about the U-Boot
mailing list