]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/etnaviv: split out FE start
authorLucas Stach <l.stach@pengutronix.de>
Wed, 17 Aug 2016 13:27:52 +0000 (15:27 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Thu, 15 Sep 2016 13:29:39 +0000 (15:29 +0200)
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>
drivers/gpu/drm/etnaviv/etnaviv_gpu.c
drivers/gpu/drm/etnaviv/etnaviv_gpu.h

index 74e09dcae75f9bbc50ea0b40145efa2b68babcc4..fcf4b927dc83bb8e26c4b0d7b893398741c7ce2b 100644 (file)
@@ -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)
index 303450b1f981e2ace91196c42dc67a6acd53785c..7a10a9c32a70083bf90cad748ce5e978dbfa12c5 100644 (file)
@@ -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;