Merge branch 'mesa_7_6_branch'
[mesa.git] / src / gallium / winsys / drm / radeon / core / radeon_r300.c
index e927409e3ab4ba0c0de38ab3e94e301be2ea95ec..d2d84f1a8f0ee31b57db8dcb8e38c9710e8e6e07 100644 (file)
@@ -133,33 +133,33 @@ static void radeon_r300_flush_cs(struct r300_winsys* winsys)
 static void do_ioctls(struct r300_winsys* winsys, int fd)
 {
     struct drm_radeon_gem_info gem_info = {0};
-    drm_radeon_getparam_t gp = {0};
     struct drm_radeon_info info = {0};
     int target = 0;
     int retval;
 
-    info.value = ⌖
-    gp.value = ⌖
+    info.value = (unsigned long)⌖
 
-    /* First, get PCI ID */
+    /* First, get the number of pixel pipes */
+    info.request = RADEON_INFO_NUM_GB_PIPES;
+    retval = drmCommandWriteRead(fd, DRM_RADEON_INFO, &info, sizeof(info));
+    if (retval) {
+        fprintf(stderr, "%s: Failed to get GB pipe count, "
+                "error number %d\n", __FUNCTION__, retval);
+        exit(1);
+    }
+    winsys->gb_pipes = target;
+
+    /* Then, get PCI ID */
     info.request = RADEON_INFO_DEVICE_ID;
     retval = drmCommandWriteRead(fd, DRM_RADEON_INFO, &info, sizeof(info));
     if (retval) {
-        fprintf(stderr, "%s: New ioctl for PCI ID failed "
-                "(error number %d), trying classic ioctl...\n",
-                __FUNCTION__, retval);
-        gp.param = RADEON_PARAM_DEVICE_ID;
-        retval = drmCommandWriteRead(fd, DRM_RADEON_GETPARAM, &gp,
-                sizeof(gp));
-        if (retval) {
-            fprintf(stderr, "%s: Failed to get PCI ID, "
-                    "error number %d\n", __FUNCTION__, retval);
-            exit(1);
-        }
+        fprintf(stderr, "%s: Failed to get PCI ID, "
+                "error number %d\n", __FUNCTION__, retval);
+        exit(1);
     }
     winsys->pci_id = target;
 
-    /* Then, retrieve MM info */
+    /* Finally, retrieve MM info */
     retval = drmCommandWriteRead(fd, DRM_RADEON_GEM_INFO,
             &gem_info, sizeof(gem_info));
     if (retval) {