Skip to content

Commit

Permalink
drm/i965: On I965, use correct 3DSTATE_DRAWING_RECTANGLE command in v…
Browse files Browse the repository at this point in the history
…blank

The batchbuffer submission paths were fixed to use the 965-specific command,
but the vblank tasklet was not. When the older version is sent, the 965 will
lock up.

Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Keith Packard authored and Dave Airlie committed Apr 26, 2008
1 parent f1c3e67 commit a36b7dc
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions drivers/char/drm/i915_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,16 +125,26 @@ static void i915_vblank_tasklet(struct drm_device *dev)

i915_kernel_lost_context(dev);

BEGIN_LP_RING(6);

OUT_RING(GFX_OP_DRAWRECT_INFO);
OUT_RING(0);
OUT_RING(0);
OUT_RING(sarea_priv->width | sarea_priv->height << 16);
OUT_RING(sarea_priv->width | sarea_priv->height << 16);
OUT_RING(0);

ADVANCE_LP_RING();
if (IS_I965G(dev)) {
BEGIN_LP_RING(4);

OUT_RING(GFX_OP_DRAWRECT_INFO_I965);
OUT_RING(0);
OUT_RING(((sarea_priv->width - 1) & 0xffff) | ((sarea_priv->height - 1) << 16));
OUT_RING(0);
ADVANCE_LP_RING();
} else {
BEGIN_LP_RING(6);

OUT_RING(GFX_OP_DRAWRECT_INFO);
OUT_RING(0);
OUT_RING(0);
OUT_RING(sarea_priv->width | sarea_priv->height << 16);
OUT_RING(sarea_priv->width | sarea_priv->height << 16);
OUT_RING(0);

ADVANCE_LP_RING();
}

sarea_priv->ctxOwner = DRM_KERNEL_CONTEXT;

Expand Down

0 comments on commit a36b7dc

Please sign in to comment.