@@ -145,6 +145,10 @@ static int a3xx_hw_init(struct msm_gpu *gpu)
145
145
gpu_write (gpu , REG_A3XX_VBIF_ROUND_ROBIN_QOS_ARB , 0x0003 );
146
146
gpu_write (gpu , REG_A3XX_VBIF_OUT_RD_LIM_CONF0 , 0x0000000a );
147
147
gpu_write (gpu , REG_A3XX_VBIF_OUT_WR_LIM_CONF0 , 0x0000000a );
148
+ } else if (adreno_is_a306a (adreno_gpu )) {
149
+ gpu_write (gpu , REG_A3XX_VBIF_ROUND_ROBIN_QOS_ARB , 0x0003 );
150
+ gpu_write (gpu , REG_A3XX_VBIF_OUT_RD_LIM_CONF0 , 0x00000010 );
151
+ gpu_write (gpu , REG_A3XX_VBIF_OUT_WR_LIM_CONF0 , 0x00000010 );
148
152
} else if (adreno_is_a320 (adreno_gpu )) {
149
153
/* Set up 16 deep read/write request queues: */
150
154
gpu_write (gpu , REG_A3XX_VBIF_IN_RD_LIM_CONF0 , 0x10101010 );
@@ -237,7 +241,9 @@ static int a3xx_hw_init(struct msm_gpu *gpu)
237
241
gpu_write (gpu , REG_A3XX_UCHE_CACHE_MODE_CONTROL_REG , 0x00000001 );
238
242
239
243
/* Enable Clock gating: */
240
- if (adreno_is_a305b (adreno_gpu ) || adreno_is_a306 (adreno_gpu ))
244
+ if (adreno_is_a305b (adreno_gpu ) ||
245
+ adreno_is_a306 (adreno_gpu ) ||
246
+ adreno_is_a306a (adreno_gpu ))
241
247
gpu_write (gpu , REG_A3XX_RBBM_CLOCK_CTL , 0xaaaaaaaa );
242
248
else if (adreno_is_a320 (adreno_gpu ))
243
249
gpu_write (gpu , REG_A3XX_RBBM_CLOCK_CTL , 0xbfffffff );
@@ -334,8 +340,10 @@ static int a3xx_hw_init(struct msm_gpu *gpu)
334
340
gpu_write (gpu , REG_A3XX_CP_PFP_UCODE_DATA , ptr [i ]);
335
341
336
342
/* CP ROQ queue sizes (bytes) - RB:16, ST:16, IB1:32, IB2:64 */
337
- if (adreno_is_a305 (adreno_gpu ) || adreno_is_a306 (adreno_gpu ) ||
338
- adreno_is_a320 (adreno_gpu )) {
343
+ if (adreno_is_a305 (adreno_gpu ) ||
344
+ adreno_is_a306 (adreno_gpu ) ||
345
+ adreno_is_a306a (adreno_gpu ) ||
346
+ adreno_is_a320 (adreno_gpu )) {
339
347
gpu_write (gpu , REG_AXXX_CP_QUEUE_THRESHOLDS ,
340
348
AXXX_CP_QUEUE_THRESHOLDS_CSQ_IB1_START (2 ) |
341
349
AXXX_CP_QUEUE_THRESHOLDS_CSQ_IB2_START (6 ) |
0 commit comments