drm/etnaviv: add function to load the initial PTA state
On GPUs with the security feature the MTLB config is stored in the PTA. Add a function to trigger the initial PTA load through the FE. Signed-off-by: Lucas Stach <l.stach@pengutronix.de>hifive-unleashed-5.1
parent
c997c3df0e
commit
1137bef67a
|
@ -215,6 +215,24 @@ u16 etnaviv_buffer_config_mmuv2(struct etnaviv_gpu *gpu, u32 mtlb_addr, u32 safe
|
|||
return buffer->user_size / 8;
|
||||
}
|
||||
|
||||
u16 etnaviv_buffer_config_pta(struct etnaviv_gpu *gpu)
|
||||
{
|
||||
struct etnaviv_cmdbuf *buffer = &gpu->buffer;
|
||||
|
||||
lockdep_assert_held(&gpu->lock);
|
||||
|
||||
buffer->user_size = 0;
|
||||
|
||||
CMD_LOAD_STATE(buffer, VIVS_MMUv2_PTA_CONFIG,
|
||||
VIVS_MMUv2_PTA_CONFIG_INDEX(0));
|
||||
|
||||
CMD_END(buffer);
|
||||
|
||||
buffer->user_size = ALIGN(buffer->user_size, 8);
|
||||
|
||||
return buffer->user_size / 8;
|
||||
}
|
||||
|
||||
void etnaviv_buffer_end(struct etnaviv_gpu *gpu)
|
||||
{
|
||||
struct etnaviv_cmdbuf *buffer = &gpu->buffer;
|
||||
|
|
|
@ -86,6 +86,7 @@ int etnaviv_gem_new_userptr(struct drm_device *dev, struct drm_file *file,
|
|||
uintptr_t ptr, u32 size, u32 flags, u32 *handle);
|
||||
u16 etnaviv_buffer_init(struct etnaviv_gpu *gpu);
|
||||
u16 etnaviv_buffer_config_mmuv2(struct etnaviv_gpu *gpu, u32 mtlb_addr, u32 safe_addr);
|
||||
u16 etnaviv_buffer_config_pta(struct etnaviv_gpu *gpu);
|
||||
void etnaviv_buffer_end(struct etnaviv_gpu *gpu);
|
||||
void etnaviv_sync_point_queue(struct etnaviv_gpu *gpu, unsigned int event);
|
||||
void etnaviv_buffer_queue(struct etnaviv_gpu *gpu, u32 exec_state,
|
||||
|
|
Loading…
Reference in New Issue