From 2a87647c6adca73400e3f9f9e9ef7624c7837082 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Sat, 21 Sep 2013 17:41:57 +0100 Subject: [PATCH] targets/xorg-nouveau: drop usage of dri1 function DRICreatePCIBusID The function should have never used it in the first place as it was a left over from the DRI1 days of the nouveau ddx. While we're around check if KMS is supported before opening the nouveau device, and add support for Fermi & Kepler cards. Compile tested only due to the lack of a Fermi/Kepler card. Signed-off-by: Emil Velikov --- .../targets/xorg-nouveau/nouveau_xorg.c | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/gallium/targets/xorg-nouveau/nouveau_xorg.c b/src/gallium/targets/xorg-nouveau/nouveau_xorg.c index 454aea6d48b..2e44ddb3c3b 100644 --- a/src/gallium/targets/xorg-nouveau/nouveau_xorg.c +++ b/src/gallium/targets/xorg-nouveau/nouveau_xorg.c @@ -30,7 +30,6 @@ #include "../../state_trackers/xorg/xorg_winsys.h" #include -#include #include static void nouveau_xorg_identify(int flags); @@ -129,32 +128,31 @@ nouveau_xorg_pci_probe(DriverPtr driver, char *busid; int chipset, ret; - if (device->vendor_id != 0x10DE) + busid = malloc(64); + if (!busid) return FALSE; - if (!xf86LoaderCheckSymbol("DRICreatePCIBusID")) { - xf86DrvMsg(-1, X_ERROR, "[drm] No DRICreatePCIBusID symbol\n"); + sprintf(busid, "pci:%04x:%02x:%02x.%d", + device->domain, device->bus, + device->dev, device->func); + + ret = drmCheckModesettingSupported(busid); + if (ret) { + xf86DrvMsg(-1, X_ERROR, "[drm] KMS not enabled\n"); + free(busid); return FALSE; } - busid = DRICreatePCIBusID(device); ret = nouveau_device_open(busid, &dev); + free(busid); if (ret) { xf86DrvMsg(-1, X_ERROR, "[drm] failed to open device\n"); - free(busid); return FALSE; } chipset = dev->chipset; nouveau_device_del(&dev); - ret = drmCheckModesettingSupported(busid); - free(busid); - if (ret) { - xf86DrvMsg(-1, X_ERROR, "[drm] KMS not enabled\n"); - return FALSE; - } - switch (chipset & 0xf0) { case 0x00: case 0x10: @@ -169,6 +167,9 @@ nouveau_xorg_pci_probe(DriverPtr driver, case 0x90: case 0xa0: case 0xc0: + case 0xd0: + case 0xe0: + case 0xf0: xf86DrvMsg(-1, X_INFO, "Detected chipset: NV%02x\n", chipset); break; default: -- 2.30.2