drm/amdgpu: Initialize pipe priority order on graphic initialization
authorozeng <oak.zeng@amd.com>
Fri, 10 Feb 2017 23:55:36 +0000 (17:55 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 13 Feb 2017 20:08:33 +0000 (15:08 -0500)
Initialized PIPE_ORDER_TS0/1/2/3 field of SPI_ARB_PRIORITY register to 2.
This set the pipe priority order to:
02 - HP3D, CS_H, GFX, CS_M, CS_L

Signed-off-by: Oak Zeng <Oak.Zeng@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c

index e3589b55a1e1cdf85d20f75c1f231d069c954365..1f9354541f29b1c13aa2a87f590b1382a9a1756d 100644 (file)
@@ -1983,6 +1983,14 @@ static void gfx_v7_0_gpu_init(struct amdgpu_device *adev)
        WREG32(mmPA_CL_ENHANCE, PA_CL_ENHANCE__CLIP_VTX_REORDER_ENA_MASK |
                        (3 << PA_CL_ENHANCE__NUM_CLIP_SEQ__SHIFT));
        WREG32(mmPA_SC_ENHANCE, PA_SC_ENHANCE__ENABLE_PA_SC_OUT_OF_ORDER_MASK);
+
+       tmp = RREG32(mmSPI_ARB_PRIORITY);
+       tmp = REG_SET_FIELD(tmp, SPI_ARB_PRIORITY, PIPE_ORDER_TS0, 2);
+       tmp = REG_SET_FIELD(tmp, SPI_ARB_PRIORITY, PIPE_ORDER_TS1, 2);
+       tmp = REG_SET_FIELD(tmp, SPI_ARB_PRIORITY, PIPE_ORDER_TS2, 2);
+       tmp = REG_SET_FIELD(tmp, SPI_ARB_PRIORITY, PIPE_ORDER_TS3, 2);
+       WREG32(mmSPI_ARB_PRIORITY, tmp);
+
        mutex_unlock(&adev->grbm_idx_mutex);
 
        udelay(50);
index 35f9cd83b8219de6eb50b4ac7c2ba4048aa2e488..6ed19e3ab364e68634ef9516d46e906c1c82cc32 100644 (file)
@@ -3898,6 +3898,14 @@ static void gfx_v8_0_gpu_init(struct amdgpu_device *adev)
                        PA_SC_FIFO_SIZE__SC_HIZ_TILE_FIFO_SIZE__SHIFT) |
                   (adev->gfx.config.sc_earlyz_tile_fifo_size <<
                        PA_SC_FIFO_SIZE__SC_EARLYZ_TILE_FIFO_SIZE__SHIFT));
+
+       tmp = RREG32(mmSPI_ARB_PRIORITY);
+       tmp = REG_SET_FIELD(tmp, SPI_ARB_PRIORITY, PIPE_ORDER_TS0, 2);
+       tmp = REG_SET_FIELD(tmp, SPI_ARB_PRIORITY, PIPE_ORDER_TS1, 2);
+       tmp = REG_SET_FIELD(tmp, SPI_ARB_PRIORITY, PIPE_ORDER_TS2, 2);
+       tmp = REG_SET_FIELD(tmp, SPI_ARB_PRIORITY, PIPE_ORDER_TS3, 2);
+       WREG32(mmSPI_ARB_PRIORITY, tmp);
+
        mutex_unlock(&adev->grbm_idx_mutex);
 
 }