FreeBSD: Add support for matching solely on vedor id.
authorRobert Noland <rnoland@2hip.net>
Mon, 16 Mar 2009 05:41:23 +0000 (00:41 -0500)
committerRobert Noland <rnoland@2hip.net>
Mon, 16 Mar 2009 05:41:23 +0000 (00:41 -0500)
This also adds that ability to set device name from VPD, but that
doesn't seem to be working...

bsd-core/drm_drv.c

index 883e3a0..a9165a4 100644 (file)
@@ -179,7 +179,10 @@ int drm_probe(device_t kdev, drm_pci_id_list_t *idlist)
 
        id_entry = drm_find_description(vendor, device, idlist);
        if (id_entry != NULL) {
-               device_set_desc(kdev, id_entry->name);
+               if (!device_get_desc(kdev)) {
+                       DRM_DEBUG("desc : %s\n", device_get_desc(kdev));
+                       device_set_desc(kdev, id_entry->name);
+               }
                return 0;
        }
 
@@ -287,7 +290,8 @@ drm_pci_id_list_t *drm_find_description(int vendor, int device,
        
        for (i = 0; idlist[i].vendor != 0; i++) {
                if ((idlist[i].vendor == vendor) &&
-                   (idlist[i].device == device)) {
+                   ((idlist[i].device == device) ||
+                   (idlist[i].device == 0))) {
                        return &idlist[i];
                }
        }