From 7d7aecc8758fa96102f81327936d4f4d32875674 Mon Sep 17 00:00:00 2001 From: Lakhan Shiva Kamireddy Date: Fri, 8 Jun 2018 23:38:51 +0530 Subject: [PATCH] Add PNP info to PCI attachment of glxsb driver Reviewed by: imp, chuck Submitted by: Lakhan Shiva Kamireddy Sponsored by: Google, Inc. (GSoC 2018) Pull Request: https://github.com/bsdimp/freebsd/pull/5 --- sys/dev/glxsb/glxsb.c | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/sys/dev/glxsb/glxsb.c b/sys/dev/glxsb/glxsb.c index 817113b24ba83c..fe58e82a05e812 100644 --- a/sys/dev/glxsb/glxsb.c +++ b/sys/dev/glxsb/glxsb.c @@ -219,6 +219,16 @@ static int glxsb_crypto_encdec(struct cryptop *, struct cryptodesc *, static void glxsb_crypto_task(void *, int); static int glxsb_crypto_process(device_t, struct cryptop *, int); +static struct glxsb_dev{ + uint16_t vendorid; + uint16_t deviceid; + const char *description; +} glxsb_devs[] = { + {PCI_VENDOR_AMD, PCI_PRODUCT_AMD_GEODE_LX_CRYPTO, + "AMD Geode LX Security Block (AES-128-CBC, RNG)"}, + {0, 0, NULL}, +}; + static device_method_t glxsb_methods[] = { /* device interface */ DEVMETHOD(device_probe, glxsb_probe), @@ -242,18 +252,28 @@ static driver_t glxsb_driver = { static devclass_t glxsb_devclass; DRIVER_MODULE(glxsb, pci, glxsb_driver, glxsb_devclass, 0, 0); +MODULE_PNP_INFO("U16:vendor;U16:device", pci, glxsb, glxsb_devs, + sizeof(glxsb_devs[0]), nitems(glxsb_devs) - 1); MODULE_VERSION(glxsb, 1); MODULE_DEPEND(glxsb, crypto, 1, 1, 1); static int glxsb_probe(device_t dev) { - - if (pci_get_vendor(dev) == PCI_VENDOR_AMD && - pci_get_device(dev) == PCI_PRODUCT_AMD_GEODE_LX_CRYPTO) { - device_set_desc(dev, - "AMD Geode LX Security Block (AES-128-CBC, RNG)"); - return (BUS_PROBE_DEFAULT); + uint16_t vid; + uint16_t did; + const struct glxsb_dev *glxd; + size_t i; + + vid = pci_get_vendor(dev); + did = pci_get_device(dev); + for(i=0; ivendorid && + did == glxd->deviceid){ + device_set_desc(dev, glxd->description); + return (BUS_PROBE_DEFAULT); + } } return (ENXIO);