Selaa lähdekoodia

drm/i915: setup sarea properly in master_priv

If we are running DRI1 userspace, we really need to set the sarea up properly.

thanks to Richard for finding/testing this.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie 16 vuotta sitten
vanhempi
commit
3a03ac1a02
1 muutettua tiedostoa jossa 8 lisäystä ja 0 poistoa
  1. 8 0
      drivers/gpu/drm/i915/i915_dma.c

+ 8 - 0
drivers/gpu/drm/i915/i915_dma.c

@@ -177,6 +177,14 @@ static int i915_initialize(struct drm_device * dev, drm_i915_init_t * init)
 	drm_i915_private_t *dev_priv = dev->dev_private;
 	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 
+	master_priv->sarea = drm_getsarea(dev);
+	if (master_priv->sarea) {
+		master_priv->sarea_priv = (drm_i915_sarea_t *)
+			((u8 *)master_priv->sarea->handle + init->sarea_priv_offset);
+	} else {
+		DRM_DEBUG("sarea not found assuming DRI2 userspace\n");
+	}
+
 	if (init->ring_size != 0) {
 		if (dev_priv->ring.ring_obj != NULL) {
 			i915_dma_cleanup(dev);