diff options
author | Keith Packard <keithp@keithp.com> | 2008-11-07 20:44:14 -0500 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2008-11-11 03:03:28 -0500 |
commit | 0baf823a10bd4131f70e9712d1f02de3c247f1df (patch) | |
tree | 1a1593f990d54cf2b5f98fb9e4105f05ea6fe742 /drivers/gpu/drm/i915/i915_dma.c | |
parent | afa21e0584f78964c092981fad94e45d38cda249 (diff) |
drm/i915: Move legacy breadcrumb out of the reserved status page area
Addresses in the hardware status page below index 0x20 are reserved for use
by the hardware. The legacy breadcrumb was sitting at index 5. Move it to
index 0x21, and make sure everyone uses the defined value instead of
hard-coded constants.
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_dma.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 9d4278be0ca0..0d215e38606a 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -445,7 +445,7 @@ static void i915_emit_breadcrumb(struct drm_device *dev) | |||
445 | 445 | ||
446 | BEGIN_LP_RING(4); | 446 | BEGIN_LP_RING(4); |
447 | OUT_RING(MI_STORE_DWORD_INDEX); | 447 | OUT_RING(MI_STORE_DWORD_INDEX); |
448 | OUT_RING(5 << MI_STORE_DWORD_INDEX_SHIFT); | 448 | OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT); |
449 | OUT_RING(dev_priv->counter); | 449 | OUT_RING(dev_priv->counter); |
450 | OUT_RING(0); | 450 | OUT_RING(0); |
451 | ADVANCE_LP_RING(); | 451 | ADVANCE_LP_RING(); |
@@ -576,7 +576,7 @@ static int i915_dispatch_flip(struct drm_device * dev) | |||
576 | 576 | ||
577 | BEGIN_LP_RING(4); | 577 | BEGIN_LP_RING(4); |
578 | OUT_RING(MI_STORE_DWORD_INDEX); | 578 | OUT_RING(MI_STORE_DWORD_INDEX); |
579 | OUT_RING(5 << MI_STORE_DWORD_INDEX_SHIFT); | 579 | OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT); |
580 | OUT_RING(dev_priv->counter); | 580 | OUT_RING(dev_priv->counter); |
581 | OUT_RING(0); | 581 | OUT_RING(0); |
582 | ADVANCE_LP_RING(); | 582 | ADVANCE_LP_RING(); |
@@ -611,7 +611,6 @@ static int i915_batchbuffer(struct drm_device *dev, void *data, | |||
611 | struct drm_file *file_priv) | 611 | struct drm_file *file_priv) |
612 | { | 612 | { |
613 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 613 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
614 | u32 *hw_status = dev_priv->hw_status_page; | ||
615 | drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *) | 614 | drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *) |
616 | dev_priv->sarea_priv; | 615 | dev_priv->sarea_priv; |
617 | drm_i915_batchbuffer_t *batch = data; | 616 | drm_i915_batchbuffer_t *batch = data; |
@@ -637,7 +636,7 @@ static int i915_batchbuffer(struct drm_device *dev, void *data, | |||
637 | mutex_unlock(&dev->struct_mutex); | 636 | mutex_unlock(&dev->struct_mutex); |
638 | 637 | ||
639 | if (sarea_priv) | 638 | if (sarea_priv) |
640 | sarea_priv->last_dispatch = (int)hw_status[5]; | 639 | sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); |
641 | return ret; | 640 | return ret; |
642 | } | 641 | } |
643 | 642 | ||
@@ -645,7 +644,6 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data, | |||
645 | struct drm_file *file_priv) | 644 | struct drm_file *file_priv) |
646 | { | 645 | { |
647 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 646 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
648 | u32 *hw_status = dev_priv->hw_status_page; | ||
649 | drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *) | 647 | drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *) |
650 | dev_priv->sarea_priv; | 648 | dev_priv->sarea_priv; |
651 | drm_i915_cmdbuffer_t *cmdbuf = data; | 649 | drm_i915_cmdbuffer_t *cmdbuf = data; |
@@ -673,7 +671,7 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data, | |||
673 | } | 671 | } |
674 | 672 | ||
675 | if (sarea_priv) | 673 | if (sarea_priv) |
676 | sarea_priv->last_dispatch = (int)hw_status[5]; | 674 | sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); |
677 | return 0; | 675 | return 0; |
678 | } | 676 | } |
679 | 677 | ||