Date: Sat, 19 Apr 2008 08:31:34 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 140249 for review Message-ID: <200804190831.m3J8VYsl059488@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=140249 Change 140249 by hselasky@hselasky_laptop001 on 2008/04/19 08:31:09 Bring the ehci, ohci and uhci PCI ID match code closer to the original. In addition a switch statement is faster than a series of if's, hence the compile can optimise switch statements into using binary search, for example. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/ehci_pci.c#35 edit .. //depot/projects/usb/src/sys/dev/usb/ohci_pci.c#30 edit .. //depot/projects/usb/src/sys/dev/usb/uhci_pci.c#32 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/ehci_pci.c#35 (text+ko) ==== @@ -139,63 +139,68 @@ { uint32_t device_id = pci_get_devid(self); - if (device_id == 0x268c8086) + switch (device_id) { + case 0x268c8086: return ("Intel 63XXESB USB 2.0 controller"); - if (device_id == 0x523910b9) + case 0x523910b9: return "ALi M5239 USB 2.0 controller"; - if (device_id == 0x10227463) + case 0x10227463: return "AMD 8111 USB 2.0 controller"; - if (device_id == 0x20951022) + case 0x20951022: return ("AMD CS5536 (Geode) USB 2.0 controller"); - if (device_id == 0x43451002) + case 0x43451002: return "ATI SB200 USB 2.0 controller"; - if (device_id == 0x43731002) + case 0x43731002: return "ATI SB400 USB 2.0 controller"; - if (device_id == 0x25ad8086) + case 0x25ad8086: return "Intel 6300ESB USB 2.0 controller"; - if (device_id == 0x24cd8086) + case 0x24cd8086: return "Intel 82801DB/L/M (ICH4) USB 2.0 controller"; - if (device_id == 0x24dd8086) + case 0x24dd8086: return "Intel 82801EB/R (ICH5) USB 2.0 controller"; - if (device_id == 0x265c8086) + case 0x265c8086: return "Intel 82801FB (ICH6) USB 2.0 controller"; - if (device_id == 0x27cc8086) + case 0x27cc8086: return "Intel 82801GB/R (ICH7) USB 2.0 controller"; - if (device_id == 0x28368086) + case 0x28368086: return "Intel 82801H (ICH8) USB 2.0 controller USB2-A"; - if (device_id == 0x283a8086) + case 0x283a8086: return "Intel 82801H (ICH8) USB 2.0 controller USB2-B"; - if (device_id == 0x293a8086) + case 0x293a8086: return "Intel 82801I (ICH9) USB 2.0 controller"; - if (device_id == 0x293c8086) + case 0x293c8086: return "Intel 82801I (ICH9) USB 2.0 controller"; - if (device_id == 0x00e01033) { + case 0x00e01033: return ("NEC uPD 720100 USB 2.0 controller"); - } - if (device_id == 0x006810de) + + case 0x006810de: return "NVIDIA nForce2 USB 2.0 controller"; - if (device_id == 0x008810de) + case 0x008810de: return "NVIDIA nForce2 Ultra 400 USB 2.0 controller"; - if (device_id == 0x00d810de) + case 0x00d810de: return "NVIDIA nForce3 USB 2.0 controller"; - if (device_id == 0x00e810de) + case 0x00e810de: return "NVIDIA nForce3 250 USB 2.0 controller"; - if (device_id == 0x005b10de) + case 0x005b10de: return "NVIDIA nForce4 USB 2.0 controller"; - if (device_id == 0x15621131) + case 0x15621131: return "Philips ISP156x USB 2.0 controller"; - if (device_id == 0x31041106) { + case 0x31041106: return ("VIA VT6202 USB 2.0 controller"); + + default: + break; } + if ((pci_get_class(self) == PCIC_SERIALBUS) && (pci_get_subclass(self) == PCIS_SERIALBUS_USB) && (pci_get_progif(self) == PCI_INTERFACE_EHCI)) { ==== //depot/projects/usb/src/sys/dev/usb/ohci_pci.c#30 (text+ko) ==== @@ -126,43 +126,47 @@ { uint32_t device_id = pci_get_devid(self); - if (device_id == 0x523710b9) { + switch (device_id) { + case 0x523710b9: return ("AcerLabs M5237 (Aladdin-V) USB controller"); - } - if (device_id == 0x740c1022) { + + case 0x740c1022: return ("AMD-756 USB Controller"); - } - if (device_id == 0x74141022) { + + case 0x74141022: return ("AMD-766 USB Controller"); - } - if (device_id == 0x43741002) + + case 0x43741002: return "ATI SB400 USB Controller"; - if (device_id == 0x43751002) + case 0x43751002: return "ATI SB400 USB Controller"; - if (device_id == 0x06701095) { + case 0x06701095: return ("CMD Tech 670 (USB0670) USB controller"); - } - if (device_id == 0x06731095) { + + case 0x06731095: return ("CMD Tech 673 (USB0673) USB controller"); - } - if (device_id == 0xc8611045) { + + case 0xc8611045: return ("OPTi 82C861 (FireLink) USB controller"); - } - if (device_id == 0x00351033) { + + case 0x00351033: return ("NEC uPD 9210 USB controller"); - } - if (device_id == 0x00d710de) { + + case 0x00d710de: return ("nVidia nForce3 USB Controller"); - } - if (device_id == 0x70011039) { + + case 0x70011039: return ("SiS 5571 USB controller"); - } - if (device_id == 0x1103108e) + + case 0x1103108e: return "Sun PCIO-2 USB controller"; - if (device_id == 0x0019106b) { + case 0x0019106b: return ("Apple KeyLargo USB controller"); + + default: + break; } if ((pci_get_class(self) == PCIC_SERIALBUS) && (pci_get_subclass(self) == PCIS_SERIALBUS_USB) && ==== //depot/projects/usb/src/sys/dev/usb/uhci_pci.c#32 (text+ko) ==== @@ -111,110 +111,115 @@ { uint32_t device_id = pci_get_devid(self); - if (device_id == 0x26888086) + switch (device_id) { + case 0x26888086: return ("Intel 631XESB/632XESB/3100 USB controller USB-1"); - if (device_id == 0x26898086) + case 0x26898086: return ("Intel 631XESB/632XESB/3100 USB controller USB-2"); - if (device_id == 0x268a8086) + case 0x268a8086: return ("Intel 631XESB/632XESB/3100 USB controller USB-3"); - if (device_id == 0x268b8086) + case 0x268b8086: return ("Intel 631XESB/632XESB/3100 USB controller USB-4"); - if (device_id == 0x70208086) { + case 0x70208086: return ("Intel 82371SB (PIIX3) USB controller"); - } - if (device_id == 0x71128086) { + + case 0x71128086: return ("Intel 82371AB/EB (PIIX4) USB controller"); - } - if (device_id == 0x24128086) { + + case 0x24128086: return ("Intel 82801AA (ICH) USB controller"); - } - if (device_id == 0x24228086) { + + case 0x24228086: return ("Intel 82801AB (ICH0) USB controller"); - } - if (device_id == 0x24428086) { + + case 0x24428086: return ("Intel 82801BA/BAM (ICH2) USB controller USB-A"); - } - if (device_id == 0x24448086) { + + case 0x24448086: return ("Intel 82801BA/BAM (ICH2) USB controller USB-B"); - } - if (device_id == 0x24828086) { + + case 0x24828086: return ("Intel 82801CA/CAM (ICH3) USB controller USB-A"); - } - if (device_id == 0x24848086) { + + case 0x24848086: return ("Intel 82801CA/CAM (ICH3) USB controller USB-B"); - } - if (device_id == 0x24878086) { + + case 0x24878086: return ("Intel 82801CA/CAM (ICH3) USB controller USB-C"); - } - if (device_id == 0x24c28086) { + + case 0x24c28086: return ("Intel 82801DB (ICH4) USB controller USB-A"); - } - if (device_id == 0x24c48086) { + + case 0x24c48086: return ("Intel 82801DB (ICH4) USB controller USB-B"); - } - if (device_id == 0x24c78086) { + + case 0x24c78086: return ("Intel 82801DB (ICH4) USB controller USB-C"); - } - if (device_id == 0x24d28086) { + + case 0x24d28086: return ("Intel 82801EB (ICH5) USB controller USB-A"); - } - if (device_id == 0x24d48086) { + + case 0x24d48086: return ("Intel 82801EB (ICH5) USB controller USB-B"); - } - if (device_id == 0x24d78086) { + + case 0x24d78086: return ("Intel 82801EB (ICH5) USB controller USB-C"); - } - if (device_id == 0x24de8086) { + + case 0x24de8086: return ("Intel 82801EB (ICH5) USB controller USB-D"); - } - if (device_id == 0x26588086) { + + case 0x26588086: return ("Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-A"); - } - if (device_id == 0x26598086) { + + case 0x26598086: return ("Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-B"); - } - if (device_id == 0x265a8086) { + + case 0x265a8086: return ("Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-C"); - } - if (device_id == 0x265b8086) { + + case 0x265b8086: return ("Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-D"); - } - if (device_id == 0x28308086) + + case 0x28308086: return ("Intel 82801H (ICH8) USB controller USB-A"); - if (device_id == 0x28318086) + case 0x28318086: return ("Intel 82801H (ICH8) USB controller USB-B"); - if (device_id == 0x28328086) + case 0x28328086: return ("Intel 82801H (ICH8) USB controller USB-C"); - if (device_id == 0x28348086) + case 0x28348086: return ("Intel 82801H (ICH8) USB controller USB-D"); - if (device_id == 0x28358086) + case 0x28358086: return ("Intel 82801H (ICH8) USB controller USB-E"); - if (device_id == 0x29348086) + case 0x29348086: return ("Intel 82801I (ICH9) USB controller"); - if (device_id == 0x29358086) + case 0x29358086: return ("Intel 82801I (ICH9) USB controller"); - if (device_id == 0x29368086) + case 0x29368086: return ("Intel 82801I (ICH9) USB controller"); - if (device_id == 0x29378086) + case 0x29378086: return ("Intel 82801I (ICH9) USB controller"); - if (device_id == 0x29388086) + case 0x29388086: return ("Intel 82801I (ICH9) USB controller"); - if (device_id == 0x29398086) + case 0x29398086: return ("Intel 82801I (ICH9) USB controller"); - if (device_id == 0x719a8086) { + case 0x719a8086: return ("Intel 82443MX USB controller"); - } - if (device_id == 0x76028086) { + + case 0x76028086: return ("Intel 82372FB/82468GX USB controller"); - } - if (device_id == 0x30381106) { + + case 0x30381106: return ("VIA 83C572 USB controller"); + + default: + break; } + if ((pci_get_class(self) == PCIC_SERIALBUS) && (pci_get_subclass(self) == PCIS_SERIALBUS_USB) && (pci_get_progif(self) == PCI_INTERFACE_UHCI)) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804190831.m3J8VYsl059488>