Index: sys/dev/amdsmb/amdsmb.c =================================================================== --- sys/dev/amdsmb/amdsmb.c +++ sys/dev/amdsmb/amdsmb.c @@ -125,24 +125,22 @@ static int amdsmb_detach(device_t dev); +struct pci_device_table amdsmb_devs[] = { + { PCI_DEV(AMDSMB_VENDORID_AMD, AMDSMB_DEVICEID_AMD8111_SMB2), + PCI_DESCR("AMD-8111 SMBus 2.0 Controller") } +}; + static int amdsmb_probe(device_t dev) { - u_int16_t vid; - u_int16_t did; - - vid = pci_get_vendor(dev); - did = pci_get_device(dev); + const struct pci_device_table *tbl; - if (vid == AMDSMB_VENDORID_AMD) { - switch(did) { - case AMDSMB_DEVICEID_AMD8111_SMB2: - device_set_desc(dev, "AMD-8111 SMBus 2.0 Controller"); - return (BUS_PROBE_DEFAULT); - } - } + tbl = PCI_MATCH(dev, amdsmb_devs); + if (tbl == NULL) + return (ENXIO); + device_set_desc(dev, tbl->descr); - return (ENXIO); + return (BUS_PROBE_DEFAULT); } static int Index: sys/modules/amdsmb/Makefile =================================================================== --- /dev/null +++ sys/modules/amdsmb/Makefile @@ -0,0 +1,8 @@ +# $FreeBSD$ + +.PATH: ${SRCTOP}/sys/dev/amdsmb + +KMOD= amdsmb +SRCS= amdsmb.c bus_if.h device_if.h pci_if.h smbus_if.h + +.include