@@ -1353,6 +1353,69 @@ static const uint32_t a7xx_pwrup_reglist_regs[] = {
13531353
13541354DECLARE_ADRENO_REGLIST_LIST (a7xx_pwrup_reglist );
13551355
1356+ /* Applicable for X185, A750 */
1357+ static const u32 a750_ifpc_reglist_regs [] = {
1358+ REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_0 ,
1359+ REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_1 ,
1360+ REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_2 ,
1361+ REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_3 ,
1362+ REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_4 ,
1363+ REG_A6XX_TPL1_NC_MODE_CNTL ,
1364+ REG_A6XX_SP_NC_MODE_CNTL ,
1365+ REG_A6XX_CP_DBG_ECO_CNTL ,
1366+ REG_A6XX_CP_PROTECT_CNTL ,
1367+ REG_A6XX_CP_PROTECT (0 ),
1368+ REG_A6XX_CP_PROTECT (1 ),
1369+ REG_A6XX_CP_PROTECT (2 ),
1370+ REG_A6XX_CP_PROTECT (3 ),
1371+ REG_A6XX_CP_PROTECT (4 ),
1372+ REG_A6XX_CP_PROTECT (5 ),
1373+ REG_A6XX_CP_PROTECT (6 ),
1374+ REG_A6XX_CP_PROTECT (7 ),
1375+ REG_A6XX_CP_PROTECT (8 ),
1376+ REG_A6XX_CP_PROTECT (9 ),
1377+ REG_A6XX_CP_PROTECT (10 ),
1378+ REG_A6XX_CP_PROTECT (11 ),
1379+ REG_A6XX_CP_PROTECT (12 ),
1380+ REG_A6XX_CP_PROTECT (13 ),
1381+ REG_A6XX_CP_PROTECT (14 ),
1382+ REG_A6XX_CP_PROTECT (15 ),
1383+ REG_A6XX_CP_PROTECT (16 ),
1384+ REG_A6XX_CP_PROTECT (17 ),
1385+ REG_A6XX_CP_PROTECT (18 ),
1386+ REG_A6XX_CP_PROTECT (19 ),
1387+ REG_A6XX_CP_PROTECT (20 ),
1388+ REG_A6XX_CP_PROTECT (21 ),
1389+ REG_A6XX_CP_PROTECT (22 ),
1390+ REG_A6XX_CP_PROTECT (23 ),
1391+ REG_A6XX_CP_PROTECT (24 ),
1392+ REG_A6XX_CP_PROTECT (25 ),
1393+ REG_A6XX_CP_PROTECT (26 ),
1394+ REG_A6XX_CP_PROTECT (27 ),
1395+ REG_A6XX_CP_PROTECT (28 ),
1396+ REG_A6XX_CP_PROTECT (29 ),
1397+ REG_A6XX_CP_PROTECT (30 ),
1398+ REG_A6XX_CP_PROTECT (31 ),
1399+ REG_A6XX_CP_PROTECT (32 ),
1400+ REG_A6XX_CP_PROTECT (33 ),
1401+ REG_A6XX_CP_PROTECT (34 ),
1402+ REG_A6XX_CP_PROTECT (35 ),
1403+ REG_A6XX_CP_PROTECT (36 ),
1404+ REG_A6XX_CP_PROTECT (37 ),
1405+ REG_A6XX_CP_PROTECT (38 ),
1406+ REG_A6XX_CP_PROTECT (39 ),
1407+ REG_A6XX_CP_PROTECT (40 ),
1408+ REG_A6XX_CP_PROTECT (41 ),
1409+ REG_A6XX_CP_PROTECT (42 ),
1410+ REG_A6XX_CP_PROTECT (43 ),
1411+ REG_A6XX_CP_PROTECT (44 ),
1412+ REG_A6XX_CP_PROTECT (45 ),
1413+ REG_A6XX_CP_PROTECT (46 ),
1414+ REG_A6XX_CP_PROTECT (47 ),
1415+ };
1416+
1417+ DECLARE_ADRENO_REGLIST_LIST (a750_ifpc_reglist );
1418+
13561419static const struct adreno_info a7xx_gpus [] = {
13571420 {
13581421 .chip_ids = ADRENO_CHIP_IDS (0x07000200 ),
@@ -1442,12 +1505,14 @@ static const struct adreno_info a7xx_gpus[] = {
14421505 .inactive_period = DRM_MSM_INACTIVE_PERIOD ,
14431506 .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
14441507 ADRENO_QUIRK_HAS_HW_APRIV |
1445- ADRENO_QUIRK_PREEMPTION ,
1508+ ADRENO_QUIRK_PREEMPTION |
1509+ ADRENO_QUIRK_IFPC ,
14461510 .init = a6xx_gpu_init ,
14471511 .a6xx = & (const struct a6xx_info ) {
14481512 .hwcg = a740_hwcg ,
14491513 .protect = & a730_protect ,
14501514 .pwrup_reglist = & a7xx_pwrup_reglist ,
1515+ .ifpc_reglist = & a750_ifpc_reglist ,
14511516 .gmu_chipid = 0x7050001 ,
14521517 .gmu_cgc_mode = 0x00020202 ,
14531518 .bcms = (const struct a6xx_bcm []) {
@@ -1487,6 +1552,7 @@ static const struct adreno_info a7xx_gpus[] = {
14871552 .a6xx = & (const struct a6xx_info ) {
14881553 .protect = & a730_protect ,
14891554 .pwrup_reglist = & a7xx_pwrup_reglist ,
1555+ .ifpc_reglist = & a750_ifpc_reglist ,
14901556 .gmu_chipid = 0x7090100 ,
14911557 .gmu_cgc_mode = 0x00020202 ,
14921558 .bcms = (const struct a6xx_bcm []) {
0 commit comments