Author: smh
Date: Wed May 14 09:12:01 2014
New Revision: 266008
URL: http://svnweb.freebsd.org/changeset/base/266008

Log:
  MFC r265149
  
  Make uninteresting PCI devices with no attached drivers only print out
  on a verbose boot.
  
  Sponsored by: Multiplay

Modified:
  stable/10/sys/dev/pci/pci.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/pci/pci.c
==============================================================================
--- stable/10/sys/dev/pci/pci.c Wed May 14 09:03:02 2014        (r266007)
+++ stable/10/sys/dev/pci/pci.c Wed May 14 09:12:01 2014        (r266008)
@@ -3726,105 +3726,107 @@ static const struct
 {
        int             class;
        int             subclass;
+       int             report; /* 0 = bootverbose, 1 = always */
        const char      *desc;
 } pci_nomatch_tab[] = {
-       {PCIC_OLD,              -1,                     "old"},
-       {PCIC_OLD,              PCIS_OLD_NONVGA,        "non-VGA display 
device"},
-       {PCIC_OLD,              PCIS_OLD_VGA,           "VGA-compatible display 
device"},
-       {PCIC_STORAGE,          -1,                     "mass storage"},
-       {PCIC_STORAGE,          PCIS_STORAGE_SCSI,      "SCSI"},
-       {PCIC_STORAGE,          PCIS_STORAGE_IDE,       "ATA"},
-       {PCIC_STORAGE,          PCIS_STORAGE_FLOPPY,    "floppy disk"},
-       {PCIC_STORAGE,          PCIS_STORAGE_IPI,       "IPI"},
-       {PCIC_STORAGE,          PCIS_STORAGE_RAID,      "RAID"},
-       {PCIC_STORAGE,          PCIS_STORAGE_ATA_ADMA,  "ATA (ADMA)"},
-       {PCIC_STORAGE,          PCIS_STORAGE_SATA,      "SATA"},
-       {PCIC_STORAGE,          PCIS_STORAGE_SAS,       "SAS"},
-       {PCIC_STORAGE,          PCIS_STORAGE_NVM,       "NVM"},
-       {PCIC_NETWORK,          -1,                     "network"},
-       {PCIC_NETWORK,          PCIS_NETWORK_ETHERNET,  "ethernet"},
-       {PCIC_NETWORK,          PCIS_NETWORK_TOKENRING, "token ring"},
-       {PCIC_NETWORK,          PCIS_NETWORK_FDDI,      "fddi"},
-       {PCIC_NETWORK,          PCIS_NETWORK_ATM,       "ATM"},
-       {PCIC_NETWORK,          PCIS_NETWORK_ISDN,      "ISDN"},
-       {PCIC_DISPLAY,          -1,                     "display"},
-       {PCIC_DISPLAY,          PCIS_DISPLAY_VGA,       "VGA"},
-       {PCIC_DISPLAY,          PCIS_DISPLAY_XGA,       "XGA"},
-       {PCIC_DISPLAY,          PCIS_DISPLAY_3D,        "3D"},
-       {PCIC_MULTIMEDIA,       -1,                     "multimedia"},
-       {PCIC_MULTIMEDIA,       PCIS_MULTIMEDIA_VIDEO,  "video"},
-       {PCIC_MULTIMEDIA,       PCIS_MULTIMEDIA_AUDIO,  "audio"},
-       {PCIC_MULTIMEDIA,       PCIS_MULTIMEDIA_TELE,   "telephony"},
-       {PCIC_MULTIMEDIA,       PCIS_MULTIMEDIA_HDA,    "HDA"},
-       {PCIC_MEMORY,           -1,                     "memory"},
-       {PCIC_MEMORY,           PCIS_MEMORY_RAM,        "RAM"},
-       {PCIC_MEMORY,           PCIS_MEMORY_FLASH,      "flash"},
-       {PCIC_BRIDGE,           -1,                     "bridge"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_HOST,       "HOST-PCI"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_ISA,        "PCI-ISA"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_EISA,       "PCI-EISA"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_MCA,        "PCI-MCA"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_PCI,        "PCI-PCI"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_PCMCIA,     "PCI-PCMCIA"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_NUBUS,      "PCI-NuBus"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_CARDBUS,    "PCI-CardBus"},
-       {PCIC_BRIDGE,           PCIS_BRIDGE_RACEWAY,    "PCI-RACEway"},
-       {PCIC_SIMPLECOMM,       -1,                     "simple comms"},
-       {PCIC_SIMPLECOMM,       PCIS_SIMPLECOMM_UART,   "UART"},        /* 
could detect 16550 */
-       {PCIC_SIMPLECOMM,       PCIS_SIMPLECOMM_PAR,    "parallel port"},
-       {PCIC_SIMPLECOMM,       PCIS_SIMPLECOMM_MULSER, "multiport serial"},
-       {PCIC_SIMPLECOMM,       PCIS_SIMPLECOMM_MODEM,  "generic modem"},
-       {PCIC_BASEPERIPH,       -1,                     "base peripheral"},
-       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_PIC,    "interrupt controller"},
-       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_DMA,    "DMA controller"},
-       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_TIMER,  "timer"},
-       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_RTC,    "realtime clock"},
-       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_PCIHOT, "PCI hot-plug 
controller"},
-       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_SDHC,   "SD host controller"},
-       {PCIC_INPUTDEV,         -1,                     "input device"},
-       {PCIC_INPUTDEV,         PCIS_INPUTDEV_KEYBOARD, "keyboard"},
-       {PCIC_INPUTDEV,         PCIS_INPUTDEV_DIGITIZER,"digitizer"},
-       {PCIC_INPUTDEV,         PCIS_INPUTDEV_MOUSE,    "mouse"},
-       {PCIC_INPUTDEV,         PCIS_INPUTDEV_SCANNER,  "scanner"},
-       {PCIC_INPUTDEV,         PCIS_INPUTDEV_GAMEPORT, "gameport"},
-       {PCIC_DOCKING,          -1,                     "docking station"},
-       {PCIC_PROCESSOR,        -1,                     "processor"},
-       {PCIC_SERIALBUS,        -1,                     "serial bus"},
-       {PCIC_SERIALBUS,        PCIS_SERIALBUS_FW,      "FireWire"},
-       {PCIC_SERIALBUS,        PCIS_SERIALBUS_ACCESS,  "AccessBus"},
-       {PCIC_SERIALBUS,        PCIS_SERIALBUS_SSA,     "SSA"},
-       {PCIC_SERIALBUS,        PCIS_SERIALBUS_USB,     "USB"},
-       {PCIC_SERIALBUS,        PCIS_SERIALBUS_FC,      "Fibre Channel"},
-       {PCIC_SERIALBUS,        PCIS_SERIALBUS_SMBUS,   "SMBus"},
-       {PCIC_WIRELESS,         -1,                     "wireless controller"},
-       {PCIC_WIRELESS,         PCIS_WIRELESS_IRDA,     "iRDA"},
-       {PCIC_WIRELESS,         PCIS_WIRELESS_IR,       "IR"},
-       {PCIC_WIRELESS,         PCIS_WIRELESS_RF,       "RF"},
-       {PCIC_INTELLIIO,        -1,                     "intelligent I/O 
controller"},
-       {PCIC_INTELLIIO,        PCIS_INTELLIIO_I2O,     "I2O"},
-       {PCIC_SATCOM,           -1,                     "satellite 
communication"},
-       {PCIC_SATCOM,           PCIS_SATCOM_TV,         "sat TV"},
-       {PCIC_SATCOM,           PCIS_SATCOM_AUDIO,      "sat audio"},
-       {PCIC_SATCOM,           PCIS_SATCOM_VOICE,      "sat voice"},
-       {PCIC_SATCOM,           PCIS_SATCOM_DATA,       "sat data"},
-       {PCIC_CRYPTO,           -1,                     "encrypt/decrypt"},
-       {PCIC_CRYPTO,           PCIS_CRYPTO_NETCOMP,    "network/computer 
crypto"},
-       {PCIC_CRYPTO,           PCIS_CRYPTO_ENTERTAIN,  "entertainment crypto"},
-       {PCIC_DASP,             -1,                     "dasp"},
-       {PCIC_DASP,             PCIS_DASP_DPIO,         "DPIO module"},
-       {0, 0,          NULL}
+       {PCIC_OLD,              -1,                     1, "old"},
+       {PCIC_OLD,              PCIS_OLD_NONVGA,        1, "non-VGA display 
device"},
+       {PCIC_OLD,              PCIS_OLD_VGA,           1, "VGA-compatible 
display device"},
+       {PCIC_STORAGE,          -1,                     1, "mass storage"},
+       {PCIC_STORAGE,          PCIS_STORAGE_SCSI,      1, "SCSI"},
+       {PCIC_STORAGE,          PCIS_STORAGE_IDE,       1, "ATA"},
+       {PCIC_STORAGE,          PCIS_STORAGE_FLOPPY,    1, "floppy disk"},
+       {PCIC_STORAGE,          PCIS_STORAGE_IPI,       1, "IPI"},
+       {PCIC_STORAGE,          PCIS_STORAGE_RAID,      1, "RAID"},
+       {PCIC_STORAGE,          PCIS_STORAGE_ATA_ADMA,  1, "ATA (ADMA)"},
+       {PCIC_STORAGE,          PCIS_STORAGE_SATA,      1, "SATA"},
+       {PCIC_STORAGE,          PCIS_STORAGE_SAS,       1, "SAS"},
+       {PCIC_STORAGE,          PCIS_STORAGE_NVM,       1, "NVM"},
+       {PCIC_NETWORK,          -1,                     1, "network"},
+       {PCIC_NETWORK,          PCIS_NETWORK_ETHERNET,  1, "ethernet"},
+       {PCIC_NETWORK,          PCIS_NETWORK_TOKENRING, 1, "token ring"},
+       {PCIC_NETWORK,          PCIS_NETWORK_FDDI,      1, "fddi"},
+       {PCIC_NETWORK,          PCIS_NETWORK_ATM,       1, "ATM"},
+       {PCIC_NETWORK,          PCIS_NETWORK_ISDN,      1, "ISDN"},
+       {PCIC_DISPLAY,          -1,                     1, "display"},
+       {PCIC_DISPLAY,          PCIS_DISPLAY_VGA,       1, "VGA"},
+       {PCIC_DISPLAY,          PCIS_DISPLAY_XGA,       1, "XGA"},
+       {PCIC_DISPLAY,          PCIS_DISPLAY_3D,        1, "3D"},
+       {PCIC_MULTIMEDIA,       -1,                     1, "multimedia"},
+       {PCIC_MULTIMEDIA,       PCIS_MULTIMEDIA_VIDEO,  1, "video"},
+       {PCIC_MULTIMEDIA,       PCIS_MULTIMEDIA_AUDIO,  1, "audio"},
+       {PCIC_MULTIMEDIA,       PCIS_MULTIMEDIA_TELE,   1, "telephony"},
+       {PCIC_MULTIMEDIA,       PCIS_MULTIMEDIA_HDA,    1, "HDA"},
+       {PCIC_MEMORY,           -1,                     1, "memory"},
+       {PCIC_MEMORY,           PCIS_MEMORY_RAM,        1, "RAM"},
+       {PCIC_MEMORY,           PCIS_MEMORY_FLASH,      1, "flash"},
+       {PCIC_BRIDGE,           -1,                     1, "bridge"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_HOST,       1, "HOST-PCI"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_ISA,        1, "PCI-ISA"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_EISA,       1, "PCI-EISA"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_MCA,        1, "PCI-MCA"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_PCI,        1, "PCI-PCI"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_PCMCIA,     1, "PCI-PCMCIA"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_NUBUS,      1, "PCI-NuBus"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_CARDBUS,    1, "PCI-CardBus"},
+       {PCIC_BRIDGE,           PCIS_BRIDGE_RACEWAY,    1, "PCI-RACEway"},
+       {PCIC_SIMPLECOMM,       -1,                     1, "simple comms"},
+       {PCIC_SIMPLECOMM,       PCIS_SIMPLECOMM_UART,   1, "UART"},     /* 
could detect 16550 */
+       {PCIC_SIMPLECOMM,       PCIS_SIMPLECOMM_PAR,    1, "parallel port"},
+       {PCIC_SIMPLECOMM,       PCIS_SIMPLECOMM_MULSER, 1, "multiport serial"},
+       {PCIC_SIMPLECOMM,       PCIS_SIMPLECOMM_MODEM,  1, "generic modem"},
+       {PCIC_BASEPERIPH,       -1,                     0, "base peripheral"},
+       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_PIC,    1, "interrupt 
controller"},
+       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_DMA,    1, "DMA controller"},
+       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_TIMER,  1, "timer"},
+       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_RTC,    1, "realtime clock"},
+       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_PCIHOT, 1, "PCI hot-plug 
controller"},
+       {PCIC_BASEPERIPH,       PCIS_BASEPERIPH_SDHC,   1, "SD host 
controller"},
+       {PCIC_INPUTDEV,         -1,                     1, "input device"},
+       {PCIC_INPUTDEV,         PCIS_INPUTDEV_KEYBOARD, 1, "keyboard"},
+       {PCIC_INPUTDEV,         PCIS_INPUTDEV_DIGITIZER,1, "digitizer"},
+       {PCIC_INPUTDEV,         PCIS_INPUTDEV_MOUSE,    1, "mouse"},
+       {PCIC_INPUTDEV,         PCIS_INPUTDEV_SCANNER,  1, "scanner"},
+       {PCIC_INPUTDEV,         PCIS_INPUTDEV_GAMEPORT, 1, "gameport"},
+       {PCIC_DOCKING,          -1,                     1, "docking station"},
+       {PCIC_PROCESSOR,        -1,                     1, "processor"},
+       {PCIC_SERIALBUS,        -1,                     1, "serial bus"},
+       {PCIC_SERIALBUS,        PCIS_SERIALBUS_FW,      1, "FireWire"},
+       {PCIC_SERIALBUS,        PCIS_SERIALBUS_ACCESS,  1, "AccessBus"},
+       {PCIC_SERIALBUS,        PCIS_SERIALBUS_SSA,     1, "SSA"},
+       {PCIC_SERIALBUS,        PCIS_SERIALBUS_USB,     1, "USB"},
+       {PCIC_SERIALBUS,        PCIS_SERIALBUS_FC,      1, "Fibre Channel"},
+       {PCIC_SERIALBUS,        PCIS_SERIALBUS_SMBUS,   0, "SMBus"},
+       {PCIC_WIRELESS,         -1,                     1, "wireless 
controller"},
+       {PCIC_WIRELESS,         PCIS_WIRELESS_IRDA,     1, "iRDA"},
+       {PCIC_WIRELESS,         PCIS_WIRELESS_IR,       1, "IR"},
+       {PCIC_WIRELESS,         PCIS_WIRELESS_RF,       1, "RF"},
+       {PCIC_INTELLIIO,        -1,                     1, "intelligent I/O 
controller"},
+       {PCIC_INTELLIIO,        PCIS_INTELLIIO_I2O,     1, "I2O"},
+       {PCIC_SATCOM,           -1,                     1, "satellite 
communication"},
+       {PCIC_SATCOM,           PCIS_SATCOM_TV,         1, "sat TV"},
+       {PCIC_SATCOM,           PCIS_SATCOM_AUDIO,      1, "sat audio"},
+       {PCIC_SATCOM,           PCIS_SATCOM_VOICE,      1, "sat voice"},
+       {PCIC_SATCOM,           PCIS_SATCOM_DATA,       1, "sat data"},
+       {PCIC_CRYPTO,           -1,                     1, "encrypt/decrypt"},
+       {PCIC_CRYPTO,           PCIS_CRYPTO_NETCOMP,    1, "network/computer 
crypto"},
+       {PCIC_CRYPTO,           PCIS_CRYPTO_ENTERTAIN,  1, "entertainment 
crypto"},
+       {PCIC_DASP,             -1,                     0, "dasp"},
+       {PCIC_DASP,             PCIS_DASP_DPIO,         1, "DPIO module"},
+       {0, 0, 0,               NULL}
 };
 
 void
 pci_probe_nomatch(device_t dev, device_t child)
 {
-       int i;
+       int i, report;
        const char *cp, *scp;
        char *device;
 
        /*
         * Look for a listing for this device in a loaded device database.
         */
+       report = 1;
        if ((device = pci_describe_device(child)) != NULL) {
                device_printf(dev, "<%s>", device);
                free(device, M_DEVBUF);
@@ -3839,19 +3841,25 @@ pci_probe_nomatch(device_t dev, device_t
                        if (pci_nomatch_tab[i].class == pci_get_class(child)) {
                                if (pci_nomatch_tab[i].subclass == -1) {
                                        cp = pci_nomatch_tab[i].desc;
+                                       report = pci_nomatch_tab[i].report;
                                } else if (pci_nomatch_tab[i].subclass ==
                                    pci_get_subclass(child)) {
                                        scp = pci_nomatch_tab[i].desc;
+                                       report = pci_nomatch_tab[i].report;
                                }
                        }
                }
-               device_printf(dev, "<%s%s%s>",
-                   cp ? cp : "",
-                   ((cp != NULL) && (scp != NULL)) ? ", " : "",
-                   scp ? scp : "");
+               if (report || bootverbose) {
+                       device_printf(dev, "<%s%s%s>",
+                           cp ? cp : "",
+                           ((cp != NULL) && (scp != NULL)) ? ", " : "",
+                           scp ? scp : "");
+               }
+       }
+       if (report || bootverbose) {
+               printf(" at device %d.%d (no driver attached)\n",
+                   pci_get_slot(child), pci_get_function(child));
        }
-       printf(" at device %d.%d (no driver attached)\n",
-           pci_get_slot(child), pci_get_function(child));
        pci_cfg_save(child, device_get_ivars(child), 1);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to