Loading drivers/gpu/drm/radeon/si.c +122 −0 Original line number Diff line number Diff line Loading @@ -270,6 +270,40 @@ static const u32 oland_golden_registers[] = 0x15c0, 0x000c0fc0, 0x000c0400 }; static const u32 hainan_golden_registers[] = { 0x9a10, 0x00010000, 0x00018208, 0x9830, 0xffffffff, 0x00000000, 0x9834, 0xf00fffff, 0x00000400, 0x9838, 0x0002021c, 0x00020200, 0xd0c0, 0xff000fff, 0x00000100, 0xd030, 0x000300c0, 0x00800040, 0xd8c0, 0xff000fff, 0x00000100, 0xd830, 0x000300c0, 0x00800040, 0x2ae4, 0x00073ffe, 0x000022a2, 0x240c, 0x000007ff, 0x00000000, 0x8a14, 0xf000001f, 0x00000007, 0x8b24, 0xffffffff, 0x00ffffff, 0x8b10, 0x0000ff0f, 0x00000000, 0x28a4c, 0x07ffffff, 0x4e000000, 0x28350, 0x3f3f3fff, 0x00000000, 0x30, 0x000000ff, 0x0040, 0x34, 0x00000040, 0x00004040, 0x9100, 0x03e00000, 0x03600000, 0x9060, 0x0000007f, 0x00000020, 0x9508, 0x00010000, 0x00010000, 0xac14, 0x000003ff, 0x000000f1, 0xac10, 0xffffffff, 0x00000000, 0xac0c, 0xffffffff, 0x00003210, 0x88d4, 0x0000001f, 0x00000010, 0x15c0, 0x000c0fc0, 0x000c0400 }; static const u32 hainan_golden_registers2[] = { 0x98f8, 0xffffffff, 0x02010001 }; static const u32 tahiti_mgcg_cgcg_init[] = { 0xc400, 0xffffffff, 0xfffffffc, Loading Loading @@ -678,6 +712,83 @@ static const u32 oland_mgcg_cgcg_init[] = 0xd8c0, 0xfffffff0, 0x00000100 }; static const u32 hainan_mgcg_cgcg_init[] = { 0xc400, 0xffffffff, 0xfffffffc, 0x802c, 0xffffffff, 0xe0000000, 0x9a60, 0xffffffff, 0x00000100, 0x92a4, 0xffffffff, 0x00000100, 0xc164, 0xffffffff, 0x00000100, 0x9774, 0xffffffff, 0x00000100, 0x8984, 0xffffffff, 0x06000100, 0x8a18, 0xffffffff, 0x00000100, 0x92a0, 0xffffffff, 0x00000100, 0xc380, 0xffffffff, 0x00000100, 0x8b28, 0xffffffff, 0x00000100, 0x9144, 0xffffffff, 0x00000100, 0x8d88, 0xffffffff, 0x00000100, 0x8d8c, 0xffffffff, 0x00000100, 0x9030, 0xffffffff, 0x00000100, 0x9034, 0xffffffff, 0x00000100, 0x9038, 0xffffffff, 0x00000100, 0x903c, 0xffffffff, 0x00000100, 0xad80, 0xffffffff, 0x00000100, 0xac54, 0xffffffff, 0x00000100, 0x897c, 0xffffffff, 0x06000100, 0x9868, 0xffffffff, 0x00000100, 0x9510, 0xffffffff, 0x00000100, 0xaf04, 0xffffffff, 0x00000100, 0xae04, 0xffffffff, 0x00000100, 0x949c, 0xffffffff, 0x00000100, 0x802c, 0xffffffff, 0xe0000000, 0x9160, 0xffffffff, 0x00010000, 0x9164, 0xffffffff, 0x00030002, 0x9168, 0xffffffff, 0x00040007, 0x916c, 0xffffffff, 0x00060005, 0x9170, 0xffffffff, 0x00090008, 0x9174, 0xffffffff, 0x00020001, 0x9178, 0xffffffff, 0x00040003, 0x917c, 0xffffffff, 0x00000007, 0x9180, 0xffffffff, 0x00060005, 0x9184, 0xffffffff, 0x00090008, 0x9188, 0xffffffff, 0x00030002, 0x918c, 0xffffffff, 0x00050004, 0x9190, 0xffffffff, 0x00000008, 0x9194, 0xffffffff, 0x00070006, 0x9198, 0xffffffff, 0x000a0009, 0x919c, 0xffffffff, 0x00040003, 0x91a0, 0xffffffff, 0x00060005, 0x91a4, 0xffffffff, 0x00000009, 0x91a8, 0xffffffff, 0x00080007, 0x91ac, 0xffffffff, 0x000b000a, 0x91b0, 0xffffffff, 0x00050004, 0x91b4, 0xffffffff, 0x00070006, 0x91b8, 0xffffffff, 0x0008000b, 0x91bc, 0xffffffff, 0x000a0009, 0x91c0, 0xffffffff, 0x000d000c, 0x91c4, 0xffffffff, 0x00060005, 0x91c8, 0xffffffff, 0x00080007, 0x91cc, 0xffffffff, 0x0000000b, 0x91d0, 0xffffffff, 0x000a0009, 0x91d4, 0xffffffff, 0x000d000c, 0x9150, 0xffffffff, 0x96940200, 0x8708, 0xffffffff, 0x00900100, 0xc478, 0xffffffff, 0x00000080, 0xc404, 0xffffffff, 0x0020003f, 0x30, 0xffffffff, 0x0000001c, 0x34, 0x000f0000, 0x000f0000, 0x160c, 0xffffffff, 0x00000100, 0x1024, 0xffffffff, 0x00000100, 0x20a8, 0xffffffff, 0x00000104, 0x264c, 0x000c0000, 0x000c0000, 0x2648, 0x000c0000, 0x000c0000, 0x2f50, 0x00000001, 0x00000001, 0x30cc, 0xc0000fff, 0x00000104, 0xc1e4, 0x00000001, 0x00000001, 0xd0c0, 0xfffffff0, 0x00000100, 0xd8c0, 0xfffffff0, 0x00000100 }; static u32 verde_pg_init[] = { 0x353c, 0xffffffff, 0x40000, Loading Loading @@ -858,6 +969,17 @@ static void si_init_golden_registers(struct radeon_device *rdev) oland_mgcg_cgcg_init, (const u32)ARRAY_SIZE(oland_mgcg_cgcg_init)); break; case CHIP_HAINAN: radeon_program_register_sequence(rdev, hainan_golden_registers, (const u32)ARRAY_SIZE(hainan_golden_registers)); radeon_program_register_sequence(rdev, hainan_golden_registers2, (const u32)ARRAY_SIZE(hainan_golden_registers2)); radeon_program_register_sequence(rdev, hainan_mgcg_cgcg_init, (const u32)ARRAY_SIZE(hainan_mgcg_cgcg_init)); break; default: break; } Loading Loading
drivers/gpu/drm/radeon/si.c +122 −0 Original line number Diff line number Diff line Loading @@ -270,6 +270,40 @@ static const u32 oland_golden_registers[] = 0x15c0, 0x000c0fc0, 0x000c0400 }; static const u32 hainan_golden_registers[] = { 0x9a10, 0x00010000, 0x00018208, 0x9830, 0xffffffff, 0x00000000, 0x9834, 0xf00fffff, 0x00000400, 0x9838, 0x0002021c, 0x00020200, 0xd0c0, 0xff000fff, 0x00000100, 0xd030, 0x000300c0, 0x00800040, 0xd8c0, 0xff000fff, 0x00000100, 0xd830, 0x000300c0, 0x00800040, 0x2ae4, 0x00073ffe, 0x000022a2, 0x240c, 0x000007ff, 0x00000000, 0x8a14, 0xf000001f, 0x00000007, 0x8b24, 0xffffffff, 0x00ffffff, 0x8b10, 0x0000ff0f, 0x00000000, 0x28a4c, 0x07ffffff, 0x4e000000, 0x28350, 0x3f3f3fff, 0x00000000, 0x30, 0x000000ff, 0x0040, 0x34, 0x00000040, 0x00004040, 0x9100, 0x03e00000, 0x03600000, 0x9060, 0x0000007f, 0x00000020, 0x9508, 0x00010000, 0x00010000, 0xac14, 0x000003ff, 0x000000f1, 0xac10, 0xffffffff, 0x00000000, 0xac0c, 0xffffffff, 0x00003210, 0x88d4, 0x0000001f, 0x00000010, 0x15c0, 0x000c0fc0, 0x000c0400 }; static const u32 hainan_golden_registers2[] = { 0x98f8, 0xffffffff, 0x02010001 }; static const u32 tahiti_mgcg_cgcg_init[] = { 0xc400, 0xffffffff, 0xfffffffc, Loading Loading @@ -678,6 +712,83 @@ static const u32 oland_mgcg_cgcg_init[] = 0xd8c0, 0xfffffff0, 0x00000100 }; static const u32 hainan_mgcg_cgcg_init[] = { 0xc400, 0xffffffff, 0xfffffffc, 0x802c, 0xffffffff, 0xe0000000, 0x9a60, 0xffffffff, 0x00000100, 0x92a4, 0xffffffff, 0x00000100, 0xc164, 0xffffffff, 0x00000100, 0x9774, 0xffffffff, 0x00000100, 0x8984, 0xffffffff, 0x06000100, 0x8a18, 0xffffffff, 0x00000100, 0x92a0, 0xffffffff, 0x00000100, 0xc380, 0xffffffff, 0x00000100, 0x8b28, 0xffffffff, 0x00000100, 0x9144, 0xffffffff, 0x00000100, 0x8d88, 0xffffffff, 0x00000100, 0x8d8c, 0xffffffff, 0x00000100, 0x9030, 0xffffffff, 0x00000100, 0x9034, 0xffffffff, 0x00000100, 0x9038, 0xffffffff, 0x00000100, 0x903c, 0xffffffff, 0x00000100, 0xad80, 0xffffffff, 0x00000100, 0xac54, 0xffffffff, 0x00000100, 0x897c, 0xffffffff, 0x06000100, 0x9868, 0xffffffff, 0x00000100, 0x9510, 0xffffffff, 0x00000100, 0xaf04, 0xffffffff, 0x00000100, 0xae04, 0xffffffff, 0x00000100, 0x949c, 0xffffffff, 0x00000100, 0x802c, 0xffffffff, 0xe0000000, 0x9160, 0xffffffff, 0x00010000, 0x9164, 0xffffffff, 0x00030002, 0x9168, 0xffffffff, 0x00040007, 0x916c, 0xffffffff, 0x00060005, 0x9170, 0xffffffff, 0x00090008, 0x9174, 0xffffffff, 0x00020001, 0x9178, 0xffffffff, 0x00040003, 0x917c, 0xffffffff, 0x00000007, 0x9180, 0xffffffff, 0x00060005, 0x9184, 0xffffffff, 0x00090008, 0x9188, 0xffffffff, 0x00030002, 0x918c, 0xffffffff, 0x00050004, 0x9190, 0xffffffff, 0x00000008, 0x9194, 0xffffffff, 0x00070006, 0x9198, 0xffffffff, 0x000a0009, 0x919c, 0xffffffff, 0x00040003, 0x91a0, 0xffffffff, 0x00060005, 0x91a4, 0xffffffff, 0x00000009, 0x91a8, 0xffffffff, 0x00080007, 0x91ac, 0xffffffff, 0x000b000a, 0x91b0, 0xffffffff, 0x00050004, 0x91b4, 0xffffffff, 0x00070006, 0x91b8, 0xffffffff, 0x0008000b, 0x91bc, 0xffffffff, 0x000a0009, 0x91c0, 0xffffffff, 0x000d000c, 0x91c4, 0xffffffff, 0x00060005, 0x91c8, 0xffffffff, 0x00080007, 0x91cc, 0xffffffff, 0x0000000b, 0x91d0, 0xffffffff, 0x000a0009, 0x91d4, 0xffffffff, 0x000d000c, 0x9150, 0xffffffff, 0x96940200, 0x8708, 0xffffffff, 0x00900100, 0xc478, 0xffffffff, 0x00000080, 0xc404, 0xffffffff, 0x0020003f, 0x30, 0xffffffff, 0x0000001c, 0x34, 0x000f0000, 0x000f0000, 0x160c, 0xffffffff, 0x00000100, 0x1024, 0xffffffff, 0x00000100, 0x20a8, 0xffffffff, 0x00000104, 0x264c, 0x000c0000, 0x000c0000, 0x2648, 0x000c0000, 0x000c0000, 0x2f50, 0x00000001, 0x00000001, 0x30cc, 0xc0000fff, 0x00000104, 0xc1e4, 0x00000001, 0x00000001, 0xd0c0, 0xfffffff0, 0x00000100, 0xd8c0, 0xfffffff0, 0x00000100 }; static u32 verde_pg_init[] = { 0x353c, 0xffffffff, 0x40000, Loading Loading @@ -858,6 +969,17 @@ static void si_init_golden_registers(struct radeon_device *rdev) oland_mgcg_cgcg_init, (const u32)ARRAY_SIZE(oland_mgcg_cgcg_init)); break; case CHIP_HAINAN: radeon_program_register_sequence(rdev, hainan_golden_registers, (const u32)ARRAY_SIZE(hainan_golden_registers)); radeon_program_register_sequence(rdev, hainan_golden_registers2, (const u32)ARRAY_SIZE(hainan_golden_registers2)); radeon_program_register_sequence(rdev, hainan_mgcg_cgcg_init, (const u32)ARRAY_SIZE(hainan_mgcg_cgcg_init)); break; default: break; } Loading