drm/etnaviv: split out FE start
Split out into a new externally visible function, as the IOMMUv2 code needs this functionality, too. Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
This commit is contained in:
parent
b88163e36c
commit
229855b650
@ -526,6 +526,14 @@ static void etnaviv_gpu_enable_mlcg(struct etnaviv_gpu *gpu)
|
||||
gpu_write(gpu, VIVS_PM_MODULE_CONTROLS, pmc);
|
||||
}
|
||||
|
||||
void etnaviv_gpu_start_fe(struct etnaviv_gpu *gpu, u32 address, u16 prefetch)
|
||||
{
|
||||
gpu_write(gpu, VIVS_FE_COMMAND_ADDRESS, address);
|
||||
gpu_write(gpu, VIVS_FE_COMMAND_CONTROL,
|
||||
VIVS_FE_COMMAND_CONTROL_ENABLE |
|
||||
VIVS_FE_COMMAND_CONTROL_PREFETCH(prefetch));
|
||||
}
|
||||
|
||||
static void etnaviv_gpu_hw_init(struct etnaviv_gpu *gpu)
|
||||
{
|
||||
u16 prefetch;
|
||||
@ -573,11 +581,8 @@ static void etnaviv_gpu_hw_init(struct etnaviv_gpu *gpu)
|
||||
prefetch = etnaviv_buffer_init(gpu);
|
||||
|
||||
gpu_write(gpu, VIVS_HI_INTR_ENBL, ~0U);
|
||||
gpu_write(gpu, VIVS_FE_COMMAND_ADDRESS,
|
||||
etnaviv_iommu_get_cmdbuf_va(gpu, gpu->buffer));
|
||||
gpu_write(gpu, VIVS_FE_COMMAND_CONTROL,
|
||||
VIVS_FE_COMMAND_CONTROL_ENABLE |
|
||||
VIVS_FE_COMMAND_CONTROL_PREFETCH(prefetch));
|
||||
etnaviv_gpu_start_fe(gpu, etnaviv_iommu_get_cmdbuf_va(gpu, gpu->buffer),
|
||||
prefetch);
|
||||
}
|
||||
|
||||
int etnaviv_gpu_init(struct etnaviv_gpu *gpu)
|
||||
|
@ -215,6 +215,7 @@ void etnaviv_gpu_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf);
|
||||
int etnaviv_gpu_pm_get_sync(struct etnaviv_gpu *gpu);
|
||||
void etnaviv_gpu_pm_put(struct etnaviv_gpu *gpu);
|
||||
int etnaviv_gpu_wait_idle(struct etnaviv_gpu *gpu, unsigned int timeout_ms);
|
||||
void etnaviv_gpu_start_fe(struct etnaviv_gpu *gpu, u32 address, u16 prefetch);
|
||||
|
||||
extern struct platform_driver etnaviv_gpu_driver;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user