msm_ringbuffer
struct msm_ringbuffer *ring = submit->ring;
static u32 a2xx_get_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
struct msm_ringbuffer *ring = gpu->rb[0];
struct msm_ringbuffer *ring = submit->ring;
static u32 a3xx_get_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
struct msm_ringbuffer *ring = gpu->rb[0];
struct msm_ringbuffer *ring = gpu->rb[0];
struct msm_ringbuffer *ring = submit->ring;
static u32 a4xx_get_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
bool a5xx_idle(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
struct msm_ringbuffer *ring = gpu->funcs->active_ring(gpu);
struct msm_ringbuffer *ring = submit->ring;
static struct msm_ringbuffer *a5xx_active_ring(struct msm_gpu *gpu)
static uint32_t a5xx_get_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
static void update_shadow_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
void a5xx_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring,
struct msm_ringbuffer *ring = gpu->rb[0];
struct msm_ringbuffer *ring = gpu->rb[0];
struct msm_ringbuffer *ring = submit->ring;
bool a5xx_idle(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
void a5xx_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring, bool sync);
struct msm_ringbuffer *cur_ring;
struct msm_ringbuffer *next_ring;
struct msm_ringbuffer *ring = gpu->rb[0];
struct msm_ringbuffer *ring;
struct msm_ringbuffer *ring)
static inline void update_wptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
static struct msm_ringbuffer *get_next_ring(struct msm_gpu *gpu)
struct msm_ringbuffer *ring = gpu->rb[i];
struct msm_ringbuffer *ring = gpu->rb[0];
static bool a6xx_idle(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
static void update_shadow_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
void a6xx_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
struct msm_ringbuffer *ring = gpu->funcs->active_ring(gpu);
static void get_stats_counter(struct msm_ringbuffer *ring, u32 counter,
struct msm_ringbuffer *ring, struct msm_gem_submit *submit)
static struct msm_ringbuffer *a6xx_active_ring(struct msm_gpu *gpu)
static uint32_t a6xx_get_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
static bool a6xx_progress(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
struct msm_ringbuffer *ring = submit->ring;
static void a6xx_emit_set_pseudo_reg(struct msm_ringbuffer *ring,
struct msm_ringbuffer *ring = submit->ring;
struct msm_ringbuffer *ring = gpu->rb[0];
struct msm_ringbuffer *ring = gpu->rb[0];
void a6xx_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
void a8xx_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
bool a8xx_progress(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
struct msm_ringbuffer *cur_ring;
struct msm_ringbuffer *next_ring;
struct msm_ringbuffer *ring;
struct msm_ringbuffer *ring)
static inline void update_wptr(struct a6xx_gpu *a6xx_gpu, struct msm_ringbuffer *ring)
static struct msm_ringbuffer *get_next_ring(struct msm_gpu *gpu)
struct msm_ringbuffer *ring = gpu->rb[i];
bool a8xx_progress(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
static bool a8xx_idle(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
void a8xx_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
struct msm_ringbuffer *ring = gpu->rb[0];
struct msm_ringbuffer *ring = gpu->funcs->active_ring(gpu);
struct msm_ringbuffer *ring = gpu->rb[i];
static uint32_t ring_freewords(struct msm_ringbuffer *ring)
void adreno_wait_ring(struct msm_ringbuffer *ring, uint32_t ndwords)
struct msm_ringbuffer *ring = gpu->rb[i];
struct msm_ringbuffer *ring)
struct msm_ringbuffer *adreno_active_ring(struct msm_gpu *gpu)
void adreno_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring, u32 reg)
bool adreno_idle(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
void adreno_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring, u32 reg);
bool adreno_idle(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
void adreno_wait_ring(struct msm_ringbuffer *ring, uint32_t ndwords);
struct msm_ringbuffer *adreno_active_ring(struct msm_gpu *gpu);
OUT_PKT0(struct msm_ringbuffer *ring, uint16_t regindx, uint16_t cnt)
OUT_PKT2(struct msm_ringbuffer *ring)
OUT_PKT3(struct msm_ringbuffer *ring, uint8_t opcode, uint16_t cnt)
OUT_PKT4(struct msm_ringbuffer *ring, uint16_t regindx, uint16_t cnt)
OUT_PKT7(struct msm_ringbuffer *ring, uint8_t opcode, uint16_t cnt)
static inline uint32_t get_wptr(struct msm_ringbuffer *ring)
struct msm_ringbuffer *ring;
struct msm_ringbuffer *ring;
find_submit(struct msm_ringbuffer *ring, uint32_t fence)
struct msm_ringbuffer *cur_ring = gpu->funcs->active_ring(gpu);
struct msm_ringbuffer *ring = gpu->rb[i];
struct msm_ringbuffer *ring = gpu->rb[i];
struct msm_ringbuffer *cur_ring = gpu->funcs->active_ring(gpu);
static bool made_progress(struct msm_gpu *gpu, struct msm_ringbuffer *ring)
struct msm_ringbuffer *ring = gpu->funcs->active_ring(gpu);
static void retire_submit(struct msm_gpu *gpu, struct msm_ringbuffer *ring,
struct msm_ringbuffer *ring = gpu->rb[i];
struct msm_ringbuffer *ring = submit->ring;
struct msm_ringbuffer *rb[MSM_GPU_MAX_RINGS];
struct msm_ringbuffer *ring = gpu->rb[i];
void (*flush)(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
struct msm_ringbuffer *(*active_ring)(struct msm_gpu *gpu);
uint32_t (*get_rptr)(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
bool (*progress)(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
void msm_ringbuffer_destroy(struct msm_ringbuffer *ring)
struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
struct msm_ringbuffer *ring;
struct msm_ringbuffer *msm_ringbuffer_new(struct msm_gpu *gpu, int id,
void msm_ringbuffer_destroy(struct msm_ringbuffer *ring);
OUT_RING(struct msm_ringbuffer *ring, uint32_t data)
get_sched_entity(struct msm_context *ctx, struct msm_ringbuffer *ring,