@@ -1565,6 +1565,17 @@ static struct disp_mapping dcpext_reserved_regions_t600x[MAX_DCPEXT][2] = {
15651565 },
15661566};
15671567
1568+ static struct disp_mapping disp_reserved_regions_t602x [] = {
1569+ {"region-id-49" , "dcp_txt" , true, false, false},
1570+ {"region-id-50" , "dcp_data" , true, false, false},
1571+ {"region-id-57" , "region57" , true, false, false},
1572+ // The 2 following regions are mapped in dart-dcp sid 0 and dart-disp0 sid 0 and 4
1573+ {"region-id-94" , "region94" , true, true, false},
1574+ {"region-id-95" , "region95" , true, false, true},
1575+ // used on M1 Pro/Max/Ultra, mapped to dcp and disp0
1576+ {"region-id-157" , "region157" , true, true, false},
1577+ };
1578+
15681579#define ARRAY_SIZE (s ) (sizeof(s) / sizeof((s)[0]))
15691580
15701581static int dt_set_display (void )
@@ -1616,6 +1627,13 @@ static int dt_set_display(void)
16161627 dcpext_reserved_regions_t600x [n ],
16171628 ARRAY_SIZE (dcpext_reserved_regions_t600x [n ]));
16181629 }
1630+ } else if (!fdt_node_check_compatible (dt , 0 , "apple,t6020" ) ||
1631+ !fdt_node_check_compatible (dt , 0 , "apple,t6021" )) {
1632+ ret = dt_carveout_reserved_regions ("dcp" , "disp0" , "disp0_piodma" ,
1633+ disp_reserved_regions_t602x ,
1634+ ARRAY_SIZE (disp_reserved_regions_t602x ));
1635+ if (ret )
1636+ return ret ;
16191637 } else {
16201638 printf ("DT: unknown compatible, skip display reserved-memory setup\n" );
16211639 return 0 ;
0 commit comments