···297297}298298299299/* Append a command buffer to the ring buffer. */300300-void etnaviv_buffer_queue(struct etnaviv_gpu *gpu, unsigned int event,301301- struct etnaviv_cmdbuf *cmdbuf)300300+void etnaviv_buffer_queue(struct etnaviv_gpu *gpu, u32 exec_state,301301+ unsigned int event, struct etnaviv_cmdbuf *cmdbuf)302302{303303 struct etnaviv_cmdbuf *buffer = gpu->buffer;304304 unsigned int waitlink_offset = buffer->user_size - 16;305305 u32 return_target, return_dwords;306306 u32 link_target, link_dwords;307307- bool switch_context = gpu->exec_state != cmdbuf->exec_state;307307+ bool switch_context = gpu->exec_state != exec_state;308308309309 lockdep_assert_held(&gpu->lock);310310···363363 }364364365365 if (switch_context) {366366- etnaviv_cmd_select_pipe(gpu, buffer, cmdbuf->exec_state);367367- gpu->exec_state = cmdbuf->exec_state;366366+ etnaviv_cmd_select_pipe(gpu, buffer, exec_state);367367+ gpu->exec_state = exec_state;368368 }369369370370 /* And the link to the submitted buffer */
-2
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.h
···3535 u32 user_size;3636 /* fence after which this buffer is to be disposed */3737 struct dma_fence *fence;3838- /* target exec state */3939- u32 exec_state;4038 /* per GPU in-flight list */4139 struct list_head node;4240 /* BOs attached to this command buffer */