@@ -129,6 +129,59 @@ static const struct adreno_reglist a615_hwcg[] = {
129
129
{},
130
130
};
131
131
132
+ static const struct adreno_reglist a620_hwcg [] = {
133
+ {REG_A6XX_RBBM_CLOCK_CNTL_SP0 , 0x02222222 },
134
+ {REG_A6XX_RBBM_CLOCK_CNTL2_SP0 , 0x02222220 },
135
+ {REG_A6XX_RBBM_CLOCK_DELAY_SP0 , 0x00000080 },
136
+ {REG_A6XX_RBBM_CLOCK_HYST_SP0 , 0x0000f3cf },
137
+ {REG_A6XX_RBBM_CLOCK_CNTL_TP0 , 0x02222222 },
138
+ {REG_A6XX_RBBM_CLOCK_CNTL2_TP0 , 0x22222222 },
139
+ {REG_A6XX_RBBM_CLOCK_CNTL3_TP0 , 0x22222222 },
140
+ {REG_A6XX_RBBM_CLOCK_CNTL4_TP0 , 0x00022222 },
141
+ {REG_A6XX_RBBM_CLOCK_DELAY_TP0 , 0x11111111 },
142
+ {REG_A6XX_RBBM_CLOCK_DELAY2_TP0 , 0x11111111 },
143
+ {REG_A6XX_RBBM_CLOCK_DELAY3_TP0 , 0x11111111 },
144
+ {REG_A6XX_RBBM_CLOCK_DELAY4_TP0 , 0x00011111 },
145
+ {REG_A6XX_RBBM_CLOCK_HYST_TP0 , 0x77777777 },
146
+ {REG_A6XX_RBBM_CLOCK_HYST2_TP0 , 0x77777777 },
147
+ {REG_A6XX_RBBM_CLOCK_HYST3_TP0 , 0x77777777 },
148
+ {REG_A6XX_RBBM_CLOCK_HYST4_TP0 , 0x00077777 },
149
+ {REG_A6XX_RBBM_CLOCK_CNTL_RB0 , 0x22222222 },
150
+ {REG_A6XX_RBBM_CLOCK_CNTL2_RB0 , 0x01002222 },
151
+ {REG_A6XX_RBBM_CLOCK_CNTL_CCU0 , 0x00002220 },
152
+ {REG_A6XX_RBBM_CLOCK_HYST_RB_CCU0 , 0x00040f00 },
153
+ {REG_A6XX_RBBM_CLOCK_CNTL_RAC , 0x25222022 },
154
+ {REG_A6XX_RBBM_CLOCK_CNTL2_RAC , 0x00005555 },
155
+ {REG_A6XX_RBBM_CLOCK_DELAY_RAC , 0x00000011 },
156
+ {REG_A6XX_RBBM_CLOCK_HYST_RAC , 0x00445044 },
157
+ {REG_A6XX_RBBM_CLOCK_CNTL_TSE_RAS_RBBM , 0x04222222 },
158
+ {REG_A6XX_RBBM_CLOCK_MODE_VFD , 0x00002222 },
159
+ {REG_A6XX_RBBM_CLOCK_MODE_GPC , 0x00222222 },
160
+ {REG_A6XX_RBBM_CLOCK_DELAY_HLSQ_2 , 0x00000002 },
161
+ {REG_A6XX_RBBM_CLOCK_MODE_HLSQ , 0x00002222 },
162
+ {REG_A6XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM , 0x00004000 },
163
+ {REG_A6XX_RBBM_CLOCK_DELAY_VFD , 0x00002222 },
164
+ {REG_A6XX_RBBM_CLOCK_DELAY_GPC , 0x00000200 },
165
+ {REG_A6XX_RBBM_CLOCK_DELAY_HLSQ , 0x00000000 },
166
+ {REG_A6XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM , 0x00000000 },
167
+ {REG_A6XX_RBBM_CLOCK_HYST_VFD , 0x00000000 },
168
+ {REG_A6XX_RBBM_CLOCK_HYST_GPC , 0x04104004 },
169
+ {REG_A6XX_RBBM_CLOCK_HYST_HLSQ , 0x00000000 },
170
+ {REG_A6XX_RBBM_CLOCK_CNTL_TEX_FCHE , 0x00000222 },
171
+ {REG_A6XX_RBBM_CLOCK_DELAY_TEX_FCHE , 0x00000111 },
172
+ {REG_A6XX_RBBM_CLOCK_HYST_TEX_FCHE , 0x00000777 },
173
+ {REG_A6XX_RBBM_CLOCK_CNTL_UCHE , 0x22222222 },
174
+ {REG_A6XX_RBBM_CLOCK_HYST_UCHE , 0x00000004 },
175
+ {REG_A6XX_RBBM_CLOCK_DELAY_UCHE , 0x00000002 },
176
+ {REG_A6XX_RBBM_ISDB_CNT , 0x00000182 },
177
+ {REG_A6XX_RBBM_RAC_THRESHOLD_CNT , 0x00000000 },
178
+ {REG_A6XX_RBBM_SP_HYST_CNT , 0x00000000 },
179
+ {REG_A6XX_RBBM_CLOCK_CNTL_GMU_GX , 0x00000222 },
180
+ {REG_A6XX_RBBM_CLOCK_DELAY_GMU_GX , 0x00000111 },
181
+ {REG_A6XX_RBBM_CLOCK_HYST_GMU_GX , 0x00000555 },
182
+ {},
183
+ };
184
+
132
185
static const struct adreno_reglist a630_hwcg [] = {
133
186
{REG_A6XX_RBBM_CLOCK_CNTL_SP0 , 0x22222222 },
134
187
{REG_A6XX_RBBM_CLOCK_CNTL_SP1 , 0x22222222 },
@@ -490,7 +543,6 @@ static const u32 a630_protect_regs[] = {
490
543
};
491
544
DECLARE_ADRENO_PROTECT (a630_protect , 32 );
492
545
493
- /* These are for a620 and a650 */
494
546
static const u32 a650_protect_regs [] = {
495
547
A6XX_PROTECT_RDONLY (0x00000 , 0x04ff ),
496
548
A6XX_PROTECT_RDONLY (0x00501 , 0x0005 ),
@@ -803,6 +855,30 @@ static const struct adreno_info a6xx_gpus[] = {
803
855
{ 169 , 2 },
804
856
{ 180 , 1 },
805
857
),
858
+ }, {
859
+ .chip_ids = ADRENO_CHIP_IDS (0x06020100 ),
860
+ .family = ADRENO_6XX_GEN3 ,
861
+ .fw = {
862
+ [ADRENO_FW_SQE ] = "a650_sqe.fw" ,
863
+ [ADRENO_FW_GMU ] = "a621_gmu.bin" ,
864
+ },
865
+ .gmem = SZ_512K ,
866
+ .inactive_period = DRM_MSM_INACTIVE_PERIOD ,
867
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
868
+ ADRENO_QUIRK_HAS_HW_APRIV ,
869
+ .init = a6xx_gpu_init ,
870
+ .zapfw = "a620_zap.mbn" ,
871
+ .a6xx = & (const struct a6xx_info ) {
872
+ .hwcg = a620_hwcg ,
873
+ .protect = & a650_protect ,
874
+ .gmu_cgc_mode = 0x00020200 ,
875
+ .prim_fifo_threshold = 0x00010000 ,
876
+ },
877
+ .address_space_size = SZ_16G ,
878
+ .speedbins = ADRENO_SPEEDBINS (
879
+ { 0 , 0 },
880
+ { 137 , 1 },
881
+ ),
806
882
}, {
807
883
.chip_ids = ADRENO_CHIP_IDS (
808
884
0x06030001 ,
0 commit comments