aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-11-02 14:55:05 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-11-11 17:51:39 -0500
commit231f42a48f744c9a4f53752948fad2d793638937 (patch)
treecc34cbd00b8b48ade802913d6fc600316a5c7317
parent3e37394802c1f2b0000da0a096455d2a3900df48 (diff)
drm/i915: move dri1 dungeon out of dev_priv
Also, move dev_priv->counter there, it's only used in i915_dma.c And also move the dri1 dungeon at the end of dev_priv where no one cares about it. Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c28
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h31
2 files changed, 31 insertions, 28 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index d04facbbdc02..e67080729746 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -451,16 +451,16 @@ static void i915_emit_breadcrumb(struct drm_device *dev)
451 drm_i915_private_t *dev_priv = dev->dev_private; 451 drm_i915_private_t *dev_priv = dev->dev_private;
452 struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv; 452 struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
453 453
454 dev_priv->counter++; 454 dev_priv->dri1.counter++;
455 if (dev_priv->counter > 0x7FFFFFFFUL) 455 if (dev_priv->dri1.counter > 0x7FFFFFFFUL)
456 dev_priv->counter = 0; 456 dev_priv->dri1.counter = 0;
457 if (master_priv->sarea_priv) 457 if (master_priv->sarea_priv)
458 master_priv->sarea_priv->last_enqueue = dev_priv->counter; 458 master_priv->sarea_priv->last_enqueue = dev_priv->dri1.counter;
459 459
460 if (BEGIN_LP_RING(4) == 0) { 460 if (BEGIN_LP_RING(4) == 0) {
461 OUT_RING(MI_STORE_DWORD_INDEX); 461 OUT_RING(MI_STORE_DWORD_INDEX);
462 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT); 462 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
463 OUT_RING(dev_priv->counter); 463 OUT_RING(dev_priv->dri1.counter);
464 OUT_RING(0); 464 OUT_RING(0);
465 ADVANCE_LP_RING(); 465 ADVANCE_LP_RING();
466 } 466 }
@@ -602,12 +602,12 @@ static int i915_dispatch_flip(struct drm_device * dev)
602 602
603 ADVANCE_LP_RING(); 603 ADVANCE_LP_RING();
604 604
605 master_priv->sarea_priv->last_enqueue = dev_priv->counter++; 605 master_priv->sarea_priv->last_enqueue = dev_priv->dri1.counter++;
606 606
607 if (BEGIN_LP_RING(4) == 0) { 607 if (BEGIN_LP_RING(4) == 0) {
608 OUT_RING(MI_STORE_DWORD_INDEX); 608 OUT_RING(MI_STORE_DWORD_INDEX);
609 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT); 609 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
610 OUT_RING(dev_priv->counter); 610 OUT_RING(dev_priv->dri1.counter);
611 OUT_RING(0); 611 OUT_RING(0);
612 ADVANCE_LP_RING(); 612 ADVANCE_LP_RING();
613 } 613 }
@@ -775,21 +775,21 @@ static int i915_emit_irq(struct drm_device * dev)
775 775
776 DRM_DEBUG_DRIVER("\n"); 776 DRM_DEBUG_DRIVER("\n");
777 777
778 dev_priv->counter++; 778 dev_priv->dri1.counter++;
779 if (dev_priv->counter > 0x7FFFFFFFUL) 779 if (dev_priv->dri1.counter > 0x7FFFFFFFUL)
780 dev_priv->counter = 1; 780 dev_priv->dri1.counter = 1;
781 if (master_priv->sarea_priv) 781 if (master_priv->sarea_priv)
782 master_priv->sarea_priv->last_enqueue = dev_priv->counter; 782 master_priv->sarea_priv->last_enqueue = dev_priv->dri1.counter;
783 783
784 if (BEGIN_LP_RING(4) == 0) { 784 if (BEGIN_LP_RING(4) == 0) {
785 OUT_RING(MI_STORE_DWORD_INDEX); 785 OUT_RING(MI_STORE_DWORD_INDEX);
786 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT); 786 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
787 OUT_RING(dev_priv->counter); 787 OUT_RING(dev_priv->dri1.counter);
788 OUT_RING(MI_USER_INTERRUPT); 788 OUT_RING(MI_USER_INTERRUPT);
789 ADVANCE_LP_RING(); 789 ADVANCE_LP_RING();
790 } 790 }
791 791
792 return dev_priv->counter; 792 return dev_priv->dri1.counter;
793} 793}
794 794
795static int i915_wait_irq(struct drm_device * dev, int irq_nr) 795static int i915_wait_irq(struct drm_device * dev, int irq_nr)
@@ -820,7 +820,7 @@ static int i915_wait_irq(struct drm_device * dev, int irq_nr)
820 820
821 if (ret == -EBUSY) { 821 if (ret == -EBUSY) {
822 DRM_ERROR("EBUSY -- rec: %d emitted: %d\n", 822 DRM_ERROR("EBUSY -- rec: %d emitted: %d\n",
823 READ_BREADCRUMB(dev_priv), (int)dev_priv->counter); 823 READ_BREADCRUMB(dev_priv), (int)dev_priv->dri1.counter);
824 } 824 }
825 825
826 return ret; 826 return ret;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 8c7c43f07873..ad3c4c134e2d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -586,6 +586,19 @@ struct intel_ilk_power_mgmt {
586 struct drm_i915_gem_object *renderctx; 586 struct drm_i915_gem_object *renderctx;
587}; 587};
588 588
589struct i915_dri1_state {
590 unsigned allow_batchbuffer : 1;
591 u32 __iomem *gfx_hws_cpu_addr;
592
593 unsigned int cpp;
594 int back_offset;
595 int front_offset;
596 int current_page;
597 int page_flipping;
598
599 uint32_t counter;
600};
601
589typedef struct drm_i915_private { 602typedef struct drm_i915_private {
590 struct drm_device *dev; 603 struct drm_device *dev;
591 604
@@ -620,7 +633,6 @@ typedef struct drm_i915_private {
620 uint32_t next_seqno; 633 uint32_t next_seqno;
621 634
622 drm_dma_handle_t *status_page_dmah; 635 drm_dma_handle_t *status_page_dmah;
623 uint32_t counter;
624 struct resource mch_res; 636 struct resource mch_res;
625 637
626 atomic_t irq_received; 638 atomic_t irq_received;
@@ -827,19 +839,6 @@ typedef struct drm_i915_private {
827 u32 object_count; 839 u32 object_count;
828 } mm; 840 } mm;
829 841
830 /* Old dri1 support infrastructure, beware the dragons ya fools entering
831 * here! */
832 struct {
833 unsigned allow_batchbuffer : 1;
834 u32 __iomem *gfx_hws_cpu_addr;
835
836 unsigned int cpp;
837 int back_offset;
838 int front_offset;
839 int current_page;
840 int page_flipping;
841 } dri1;
842
843 /* Kernel Modesetting */ 842 /* Kernel Modesetting */
844 843
845 struct sdvo_device_mapping sdvo_mappings[2]; 844 struct sdvo_device_mapping sdvo_mappings[2];
@@ -893,6 +892,10 @@ typedef struct drm_i915_private {
893 uint32_t hw_context_size; 892 uint32_t hw_context_size;
894 893
895 struct i915_suspend_saved_registers regfile; 894 struct i915_suspend_saved_registers regfile;
895
896 /* Old dri1 support infrastructure, beware the dragons ya fools entering
897 * here! */
898 struct i915_dri1_state dri1;
896} drm_i915_private_t; 899} drm_i915_private_t;
897 900
898/* Iterate over initialised rings */ 901/* Iterate over initialised rings */