diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-11-02 14:55:05 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-11-11 17:51:39 -0500 |
commit | 231f42a48f744c9a4f53752948fad2d793638937 (patch) | |
tree | cc34cbd00b8b48ade802913d6fc600316a5c7317 | |
parent | 3e37394802c1f2b0000da0a096455d2a3900df48 (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.c | 28 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 31 |
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 | ||
795 | static int i915_wait_irq(struct drm_device * dev, int irq_nr) | 795 | static 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 | ||
589 | struct 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 | |||
589 | typedef struct drm_i915_private { | 602 | typedef 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 */ |