diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2010-09-15 22:43:11 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-21 06:19:55 -0400 |
commit | 5c1143bbecf50184ff7cad6287b4e0993bacbd9f (patch) | |
tree | feccbd785e3dd4331539f7d0146022eb2806b013 /drivers/gpu | |
parent | 92f49d9cec0052e09d938ac913d8e9ab432a0584 (diff) |
drm/i915: do not export the instances of struct intel_ring_buffer
Introduce intel_init_render_ring_buffer(), intel_init_bsd_ring_buffer
for ring initialization.
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.c | 29 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.h | 4 |
3 files changed, 31 insertions, 16 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 325f52bc1401..7b33b4d5ebff 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -4496,28 +4496,18 @@ i915_gem_init_ringbuffer(struct drm_device *dev) | |||
4496 | drm_i915_private_t *dev_priv = dev->dev_private; | 4496 | drm_i915_private_t *dev_priv = dev->dev_private; |
4497 | int ret; | 4497 | int ret; |
4498 | 4498 | ||
4499 | dev_priv->render_ring = render_ring; | ||
4500 | |||
4501 | if (!I915_NEED_GFX_HWS(dev)) { | ||
4502 | dev_priv->render_ring.status_page.page_addr | ||
4503 | = dev_priv->status_page_dmah->vaddr; | ||
4504 | memset(dev_priv->render_ring.status_page.page_addr, | ||
4505 | 0, PAGE_SIZE); | ||
4506 | } | ||
4507 | |||
4508 | if (HAS_PIPE_CONTROL(dev)) { | 4499 | if (HAS_PIPE_CONTROL(dev)) { |
4509 | ret = i915_gem_init_pipe_control(dev); | 4500 | ret = i915_gem_init_pipe_control(dev); |
4510 | if (ret) | 4501 | if (ret) |
4511 | return ret; | 4502 | return ret; |
4512 | } | 4503 | } |
4513 | 4504 | ||
4514 | ret = intel_init_ring_buffer(dev, &dev_priv->render_ring); | 4505 | ret = intel_init_render_ring_buffer(dev); |
4515 | if (ret) | 4506 | if (ret) |
4516 | goto cleanup_pipe_control; | 4507 | goto cleanup_pipe_control; |
4517 | 4508 | ||
4518 | if (HAS_BSD(dev)) { | 4509 | if (HAS_BSD(dev)) { |
4519 | dev_priv->bsd_ring = bsd_ring; | 4510 | ret = intel_init_bsd_ring_buffer(dev); |
4520 | ret = intel_init_ring_buffer(dev, &dev_priv->bsd_ring); | ||
4521 | if (ret) | 4511 | if (ret) |
4522 | goto cleanup_render_ring; | 4512 | goto cleanup_render_ring; |
4523 | } | 4513 | } |
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 45f66e289af1..178e2cea9835 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -793,7 +793,7 @@ void intel_fill_struct(struct drm_device *dev, | |||
793 | intel_ring_advance(dev, ring); | 793 | intel_ring_advance(dev, ring); |
794 | } | 794 | } |
795 | 795 | ||
796 | struct intel_ring_buffer render_ring = { | 796 | static struct intel_ring_buffer render_ring = { |
797 | .name = "render ring", | 797 | .name = "render ring", |
798 | .id = RING_RENDER, | 798 | .id = RING_RENDER, |
799 | .regs = { | 799 | .regs = { |
@@ -831,7 +831,7 @@ struct intel_ring_buffer render_ring = { | |||
831 | 831 | ||
832 | /* ring buffer for bit-stream decoder */ | 832 | /* ring buffer for bit-stream decoder */ |
833 | 833 | ||
834 | struct intel_ring_buffer bsd_ring = { | 834 | static struct intel_ring_buffer bsd_ring = { |
835 | .name = "bsd ring", | 835 | .name = "bsd ring", |
836 | .id = RING_BSD, | 836 | .id = RING_BSD, |
837 | .regs = { | 837 | .regs = { |
@@ -866,3 +866,28 @@ struct intel_ring_buffer bsd_ring = { | |||
866 | .status_page = {NULL, 0, NULL}, | 866 | .status_page = {NULL, 0, NULL}, |
867 | .map = {0,} | 867 | .map = {0,} |
868 | }; | 868 | }; |
869 | |||
870 | int intel_init_render_ring_buffer(struct drm_device *dev) | ||
871 | { | ||
872 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
873 | |||
874 | dev_priv->render_ring = render_ring; | ||
875 | |||
876 | if (!I915_NEED_GFX_HWS(dev)) { | ||
877 | dev_priv->render_ring.status_page.page_addr | ||
878 | = dev_priv->status_page_dmah->vaddr; | ||
879 | memset(dev_priv->render_ring.status_page.page_addr, | ||
880 | 0, PAGE_SIZE); | ||
881 | } | ||
882 | |||
883 | return intel_init_ring_buffer(dev, &dev_priv->render_ring); | ||
884 | } | ||
885 | |||
886 | int intel_init_bsd_ring_buffer(struct drm_device *dev) | ||
887 | { | ||
888 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
889 | |||
890 | dev_priv->bsd_ring = bsd_ring; | ||
891 | |||
892 | return intel_init_ring_buffer(dev, &dev_priv->bsd_ring); | ||
893 | } | ||
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h index 8dc0e62b7d2a..5603d6e945e9 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h | |||
@@ -133,7 +133,7 @@ void intel_ring_advance(struct drm_device *dev, | |||
133 | u32 intel_ring_get_seqno(struct drm_device *dev, | 133 | u32 intel_ring_get_seqno(struct drm_device *dev, |
134 | struct intel_ring_buffer *ring); | 134 | struct intel_ring_buffer *ring); |
135 | 135 | ||
136 | extern struct intel_ring_buffer render_ring; | 136 | int intel_init_render_ring_buffer(struct drm_device *dev); |
137 | extern struct intel_ring_buffer bsd_ring; | 137 | int intel_init_bsd_ring_buffer(struct drm_device *dev); |
138 | 138 | ||
139 | #endif /* _INTEL_RINGBUFFER_H_ */ | 139 | #endif /* _INTEL_RINGBUFFER_H_ */ |