Factor out code to do the DRM_I830_GETPARAM ioctl.
authorKristian Høgsberg <krh@temari.boston.redhat.com>
Wed, 9 Jan 2008 23:04:19 +0000 (18:04 -0500)
committerKristian Høgsberg <krh@temari.boston.redhat.com>
Thu, 10 Jan 2008 00:08:55 +0000 (19:08 -0500)
src/mesa/drivers/dri/intel/intel_screen.c

index cd72a4b12233121a744c0198f45fbf7f8da10795..abeb0f9b9f0d8b48c469daf0f5c928ec76aba8f5 100644 (file)
@@ -295,6 +295,23 @@ static const __DRIextension *intelExtensions[] = {
     NULL
 };
 
+static GLboolean
+intel_get_param(__DRIscreenPrivate *psp, int param, int *value)
+{
+   int ret;
+   drmI830GetParam gp;
+
+   gp.param = param;
+   gp.value = value;
+
+   ret = drmCommandWriteRead(psp->fd, DRM_I830_GETPARAM, &gp, sizeof(gp));
+   if (ret) {
+      fprintf(stderr, "drmI830GetParam: %d\n", ret);
+      return GL_FALSE;
+   }
+
+   return GL_TRUE;
+}
 
 static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
 {
@@ -358,36 +375,14 @@ static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
    intelScreen->drmMinor = sPriv->drm_version.minor;
 
    /* Determine if IRQs are active? */
-   {
-      int ret;
-      drmI830GetParam gp;
-
-      gp.param = I830_PARAM_IRQ_ACTIVE;
-      gp.value = &intelScreen->irq_active;
-
-      ret = drmCommandWriteRead(sPriv->fd, DRM_I830_GETPARAM,
-                                &gp, sizeof(gp));
-      if (ret) {
-         fprintf(stderr, "drmI830GetParam: %d\n", ret);
-         return GL_FALSE;
-      }
-   }
+   if (!intel_get_param(sPriv, I830_PARAM_IRQ_ACTIVE,
+                       &intelScreen->irq_active))
+      return GL_FALSE;
 
    /* Determine if batchbuffers are allowed */
-   {
-      int ret;
-      drmI830GetParam gp;
-
-      gp.param = I830_PARAM_ALLOW_BATCHBUFFER;
-      gp.value = &intelScreen->allow_batchbuffer;
-
-      ret = drmCommandWriteRead(sPriv->fd, DRM_I830_GETPARAM,
-                                &gp, sizeof(gp));
-      if (ret) {
-         fprintf(stderr, "drmI830GetParam: (%d) %d\n", gp.param, ret);
-         return GL_FALSE;
-      }
-   }
+   if (!intel_get_param(sPriv, I830_PARAM_ALLOW_BATCHBUFFER,
+                       &intelScreen->allow_batchbuffer))
+      return GL_FALSE;
 
    sPriv->extensions = intelExtensions;