loader: use drmGetDevice[s]2 API

By this allows us to fetch the device list/info w/o the revision field.
At the moment retrieving the latter wakes up the device.

Note: kernel patch to resolve that should be in 4.10.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Tested-by: Mike Lothian <mike@fireburn.co.uk>
This commit is contained in:
Emil Velikov
2016-12-01 19:51:03 +00:00
committed by Emil Velikov
parent 2c72e78ff5
commit a50c4eb2a0

View File

@@ -145,7 +145,7 @@ static char *drm_get_id_path_tag_for_fd(int fd)
drmDevicePtr device; drmDevicePtr device;
char *tag; char *tag;
if (drmGetDevice(fd, &device) != 0) if (drmGetDevice2(fd, 0, &device) != 0)
return NULL; return NULL;
tag = drm_construct_id_path_tag(device); tag = drm_construct_id_path_tag(device);
@@ -179,7 +179,7 @@ int loader_get_user_preferred_fd(int default_fd, int *different_device)
if (default_tag == NULL) if (default_tag == NULL)
goto err; goto err;
num_devices = drmGetDevices(devices, MAX_DRM_DEVICES); num_devices = drmGetDevices2(0, devices, MAX_DRM_DEVICES);
if (num_devices < 0) if (num_devices < 0)
goto err; goto err;
@@ -275,7 +275,7 @@ drm_get_pci_id_for_fd(int fd, int *vendor_id, int *chip_id)
drmDevicePtr device; drmDevicePtr device;
int ret; int ret;
if (drmGetDevice(fd, &device) == 0) { if (drmGetDevice2(fd, 0, &device) == 0) {
if (device->bustype == DRM_BUS_PCI) { if (device->bustype == DRM_BUS_PCI) {
*vendor_id = device->deviceinfo.pci->vendor_id; *vendor_id = device->deviceinfo.pci->vendor_id;
*chip_id = device->deviceinfo.pci->device_id; *chip_id = device->deviceinfo.pci->device_id;