mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
drm/i915: switch ring->id to be a real id
... and add a helpr function for the places where we want a flag. This way we can use ring->id to index into arrays. v2: Resurrect the missing beautification-space Chris Wilson noted. I'm moving this space around because I'll reuse ring_str in the next patch. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
b6daa025b1
commit
96154f2fab
@ -669,9 +669,9 @@ static int i915_ringbuffer_info(struct seq_file *m, void *data)
|
||||
static const char *ring_str(int ring)
|
||||
{
|
||||
switch (ring) {
|
||||
case RING_RENDER: return " render";
|
||||
case RING_BSD: return " bsd";
|
||||
case RING_BLT: return " blt";
|
||||
case RCS: return "render";
|
||||
case VCS: return "bsd";
|
||||
case BCS: return "blt";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
@ -714,7 +714,7 @@ static void print_error_buffers(struct seq_file *m,
|
||||
seq_printf(m, "%s [%d]:\n", name, count);
|
||||
|
||||
while (count--) {
|
||||
seq_printf(m, " %08x %8u %04x %04x %08x%s%s%s%s%s%s",
|
||||
seq_printf(m, " %08x %8u %04x %04x %08x%s%s%s%s%s%s%s",
|
||||
err->gtt_offset,
|
||||
err->size,
|
||||
err->read_domains,
|
||||
@ -724,6 +724,7 @@ static void print_error_buffers(struct seq_file *m,
|
||||
tiling_flag(err->tiling),
|
||||
dirty_flag(err->dirty),
|
||||
purgeable_flag(err->purgeable),
|
||||
err->ring != -1 ? " " : "",
|
||||
ring_str(err->ring),
|
||||
cache_level_str(err->cache_level));
|
||||
|
||||
|
@ -203,9 +203,9 @@ i915_gem_object_set_to_gpu_domain(struct drm_i915_gem_object *obj,
|
||||
cd->invalidate_domains |= invalidate_domains;
|
||||
cd->flush_domains |= flush_domains;
|
||||
if (flush_domains & I915_GEM_GPU_DOMAINS)
|
||||
cd->flush_rings |= obj->ring->id;
|
||||
cd->flush_rings |= intel_ring_flag(obj->ring);
|
||||
if (invalidate_domains & I915_GEM_GPU_DOMAINS)
|
||||
cd->flush_rings |= ring->id;
|
||||
cd->flush_rings |= intel_ring_flag(ring);
|
||||
}
|
||||
|
||||
struct eb_objects {
|
||||
|
@ -804,7 +804,7 @@ static u32 capture_bo_list(struct drm_i915_error_buffer *err,
|
||||
err->tiling = obj->tiling_mode;
|
||||
err->dirty = obj->dirty;
|
||||
err->purgeable = obj->madv != I915_MADV_WILLNEED;
|
||||
err->ring = obj->ring ? obj->ring->id : 0;
|
||||
err->ring = obj->ring ? obj->ring->id : -1;
|
||||
err->cache_level = obj->cache_level;
|
||||
|
||||
if (++i == count)
|
||||
|
@ -729,13 +729,13 @@ void intel_ring_setup_status_page(struct intel_ring_buffer *ring)
|
||||
*/
|
||||
if (IS_GEN7(dev)) {
|
||||
switch (ring->id) {
|
||||
case RING_RENDER:
|
||||
case RCS:
|
||||
mmio = RENDER_HWS_PGA_GEN7;
|
||||
break;
|
||||
case RING_BLT:
|
||||
case BCS:
|
||||
mmio = BLT_HWS_PGA_GEN7;
|
||||
break;
|
||||
case RING_BSD:
|
||||
case VCS:
|
||||
mmio = BSD_HWS_PGA_GEN7;
|
||||
break;
|
||||
}
|
||||
@ -1199,7 +1199,7 @@ void intel_ring_advance(struct intel_ring_buffer *ring)
|
||||
|
||||
static const struct intel_ring_buffer render_ring = {
|
||||
.name = "render ring",
|
||||
.id = RING_RENDER,
|
||||
.id = RCS,
|
||||
.mmio_base = RENDER_RING_BASE,
|
||||
.size = 32 * PAGE_SIZE,
|
||||
.init = init_render_ring,
|
||||
@ -1222,7 +1222,7 @@ static const struct intel_ring_buffer render_ring = {
|
||||
|
||||
static const struct intel_ring_buffer bsd_ring = {
|
||||
.name = "bsd ring",
|
||||
.id = RING_BSD,
|
||||
.id = VCS,
|
||||
.mmio_base = BSD_RING_BASE,
|
||||
.size = 32 * PAGE_SIZE,
|
||||
.init = init_ring_common,
|
||||
@ -1332,7 +1332,7 @@ gen6_bsd_ring_put_irq(struct intel_ring_buffer *ring)
|
||||
/* ring buffer for Video Codec for Gen6+ */
|
||||
static const struct intel_ring_buffer gen6_bsd_ring = {
|
||||
.name = "gen6 bsd ring",
|
||||
.id = RING_BSD,
|
||||
.id = VCS,
|
||||
.mmio_base = GEN6_BSD_RING_BASE,
|
||||
.size = 32 * PAGE_SIZE,
|
||||
.init = init_ring_common,
|
||||
@ -1467,7 +1467,7 @@ static void blt_ring_cleanup(struct intel_ring_buffer *ring)
|
||||
|
||||
static const struct intel_ring_buffer gen6_blt_ring = {
|
||||
.name = "blt ring",
|
||||
.id = RING_BLT,
|
||||
.id = BCS,
|
||||
.mmio_base = BLT_RING_BASE,
|
||||
.size = 32 * PAGE_SIZE,
|
||||
.init = blt_ring_init,
|
||||
|
@ -1,13 +1,6 @@
|
||||
#ifndef _INTEL_RINGBUFFER_H_
|
||||
#define _INTEL_RINGBUFFER_H_
|
||||
|
||||
enum {
|
||||
RCS = 0x0,
|
||||
VCS,
|
||||
BCS,
|
||||
I915_NUM_RINGS,
|
||||
};
|
||||
|
||||
struct intel_hw_status_page {
|
||||
u32 __iomem *page_addr;
|
||||
unsigned int gfx_addr;
|
||||
@ -36,10 +29,11 @@ struct intel_hw_status_page {
|
||||
struct intel_ring_buffer {
|
||||
const char *name;
|
||||
enum intel_ring_id {
|
||||
RING_RENDER = 0x1,
|
||||
RING_BSD = 0x2,
|
||||
RING_BLT = 0x4,
|
||||
RCS = 0x0,
|
||||
VCS,
|
||||
BCS,
|
||||
} id;
|
||||
#define I915_NUM_RINGS 3
|
||||
u32 mmio_base;
|
||||
void __iomem *virtual_start;
|
||||
struct drm_device *dev;
|
||||
@ -119,6 +113,12 @@ struct intel_ring_buffer {
|
||||
void *private;
|
||||
};
|
||||
|
||||
static inline unsigned
|
||||
intel_ring_flag(struct intel_ring_buffer *ring)
|
||||
{
|
||||
return 1 << ring->id;
|
||||
}
|
||||
|
||||
static inline u32
|
||||
intel_ring_sync_index(struct intel_ring_buffer *ring,
|
||||
struct intel_ring_buffer *other)
|
||||
|
Loading…
Reference in New Issue
Block a user