]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/si.c
drm/amdgpu: update rev id for verde
[linux.git] / drivers / gpu / drm / amd / amdgpu / si.c
index 3ed8ad8725b9cf09c965876a482b0699e5704058..c46b0159007d976406d64557316f45e045d82191 100644 (file)
 
 static const u32 tahiti_golden_registers[] =
 {
+       0x17bc, 0x00000030, 0x00000011,
        0x2684, 0x00010000, 0x00018208,
        0x260c, 0xffffffff, 0x00000000,
        0x260d, 0xf00fffff, 0x00000400,
        0x260e, 0x0002021c, 0x00020200,
        0x031e, 0x00000080, 0x00000000,
-       0x340c, 0x000300c0, 0x00800040,
-       0x360c, 0x000300c0, 0x00800040,
+       0x340c, 0x000000c0, 0x00800040,
+       0x360c, 0x000000c0, 0x00800040,
        0x16ec, 0x000000f0, 0x00000070,
        0x16f0, 0x00200000, 0x50100000,
        0x1c0c, 0x31000311, 0x00000011,
@@ -60,7 +61,7 @@ static const u32 tahiti_golden_registers[] =
        0x22c4, 0x0000ff0f, 0x00000000,
        0xa293, 0x07ffffff, 0x4e000000,
        0xa0d4, 0x3f3f3fff, 0x2a00126a,
-       0x000c, 0x000000ff, 0x0040,
+       0x000c, 0xffffffff, 0x0040,
        0x000d, 0x00000040, 0x00004040,
        0x2440, 0x07ffffff, 0x03000000,
        0x23a2, 0x01ff1f3f, 0x00000000,
@@ -73,7 +74,11 @@ static const u32 tahiti_golden_registers[] =
        0x2234, 0xffffffff, 0x000fff40,
        0x2235, 0x0000001f, 0x00000010,
        0x0504, 0x20000000, 0x20fffed8,
-       0x0570, 0x000c0fc0, 0x000c0400
+       0x0570, 0x000c0fc0, 0x000c0400,
+       0x052c, 0x0fffffff, 0xffffffff,
+       0x052d, 0x0fffffff, 0x0fffffff,
+       0x052e, 0x0fffffff, 0x0fffffff,
+       0x052f, 0x0fffffff, 0x0fffffff
 };
 
 static const u32 tahiti_golden_registers2[] =
@@ -83,16 +88,18 @@ static const u32 tahiti_golden_registers2[] =
 
 static const u32 tahiti_golden_rlc_registers[] =
 {
+       0x263e, 0xffffffff, 0x12011003,
        0x3109, 0xffffffff, 0x00601005,
        0x311f, 0xffffffff, 0x10104040,
        0x3122, 0xffffffff, 0x0100000a,
        0x30c5, 0xffffffff, 0x00000800,
        0x30c3, 0xffffffff, 0x800000f4,
-       0x3d2a, 0xffffffff, 0x00000000
+       0x3d2a, 0x00000008, 0x00000000
 };
 
 static const u32 pitcairn_golden_registers[] =
 {
+       0x17bc, 0x00000030, 0x00000011,
        0x2684, 0x00010000, 0x00018208,
        0x260c, 0xffffffff, 0x00000000,
        0x260d, 0xf00fffff, 0x00000400,
@@ -110,7 +117,7 @@ static const u32 pitcairn_golden_registers[] =
        0x22c4, 0x0000ff0f, 0x00000000,
        0xa293, 0x07ffffff, 0x4e000000,
        0xa0d4, 0x3f3f3fff, 0x2a00126a,
-       0x000c, 0x000000ff, 0x0040,
+       0x000c, 0xffffffff, 0x0040,
        0x000d, 0x00000040, 0x00004040,
        0x2440, 0x07ffffff, 0x03000000,
        0x2418, 0x0000007f, 0x00000020,
@@ -119,11 +126,16 @@ static const u32 pitcairn_golden_registers[] =
        0x2b04, 0xffffffff, 0x00000000,
        0x2b03, 0xffffffff, 0x32761054,
        0x2235, 0x0000001f, 0x00000010,
-       0x0570, 0x000c0fc0, 0x000c0400
+       0x0570, 0x000c0fc0, 0x000c0400,
+       0x052c, 0x0fffffff, 0xffffffff,
+       0x052d, 0x0fffffff, 0x0fffffff,
+       0x052e, 0x0fffffff, 0x0fffffff,
+       0x052f, 0x0fffffff, 0x0fffffff
 };
 
 static const u32 pitcairn_golden_rlc_registers[] =
 {
+       0x263e, 0xffffffff, 0x12011003,
        0x3109, 0xffffffff, 0x00601004,
        0x311f, 0xffffffff, 0x10102020,
        0x3122, 0xffffffff, 0x01000020,
@@ -133,133 +145,134 @@ static const u32 pitcairn_golden_rlc_registers[] =
 
 static const u32 verde_pg_init[] =
 {
-       0xd4f, 0xffffffff, 0x40000,
-       0xd4e, 0xffffffff, 0x200010ff,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x7007,
-       0xd4e, 0xffffffff, 0x300010ff,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x400000,
-       0xd4e, 0xffffffff, 0x100010ff,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x120200,
-       0xd4e, 0xffffffff, 0x500010ff,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x1e1e16,
-       0xd4e, 0xffffffff, 0x600010ff,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x171f1e,
-       0xd4e, 0xffffffff, 0x700010ff,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4f, 0xffffffff, 0x0,
-       0xd4e, 0xffffffff, 0x9ff,
-       0xd40, 0xffffffff, 0x0,
-       0xd41, 0xffffffff, 0x10000800,
-       0xd41, 0xffffffff, 0xf,
-       0xd41, 0xffffffff, 0xf,
-       0xd40, 0xffffffff, 0x4,
-       0xd41, 0xffffffff, 0x1000051e,
-       0xd41, 0xffffffff, 0xffff,
-       0xd41, 0xffffffff, 0xffff,
-       0xd40, 0xffffffff, 0x8,
-       0xd41, 0xffffffff, 0x80500,
-       0xd40, 0xffffffff, 0x12,
-       0xd41, 0xffffffff, 0x9050c,
-       0xd40, 0xffffffff, 0x1d,
-       0xd41, 0xffffffff, 0xb052c,
-       0xd40, 0xffffffff, 0x2a,
-       0xd41, 0xffffffff, 0x1053e,
-       0xd40, 0xffffffff, 0x2d,
-       0xd41, 0xffffffff, 0x10546,
-       0xd40, 0xffffffff, 0x30,
-       0xd41, 0xffffffff, 0xa054e,
-       0xd40, 0xffffffff, 0x3c,
-       0xd41, 0xffffffff, 0x1055f,
-       0xd40, 0xffffffff, 0x3f,
-       0xd41, 0xffffffff, 0x10567,
-       0xd40, 0xffffffff, 0x42,
-       0xd41, 0xffffffff, 0x1056f,
-       0xd40, 0xffffffff, 0x45,
-       0xd41, 0xffffffff, 0x10572,
-       0xd40, 0xffffffff, 0x48,
-       0xd41, 0xffffffff, 0x20575,
-       0xd40, 0xffffffff, 0x4c,
-       0xd41, 0xffffffff, 0x190801,
-       0xd40, 0xffffffff, 0x67,
-       0xd41, 0xffffffff, 0x1082a,
-       0xd40, 0xffffffff, 0x6a,
-       0xd41, 0xffffffff, 0x1b082d,
-       0xd40, 0xffffffff, 0x87,
-       0xd41, 0xffffffff, 0x310851,
-       0xd40, 0xffffffff, 0xba,
-       0xd41, 0xffffffff, 0x891,
-       0xd40, 0xffffffff, 0xbc,
-       0xd41, 0xffffffff, 0x893,
-       0xd40, 0xffffffff, 0xbe,
-       0xd41, 0xffffffff, 0x20895,
-       0xd40, 0xffffffff, 0xc2,
-       0xd41, 0xffffffff, 0x20899,
-       0xd40, 0xffffffff, 0xc6,
-       0xd41, 0xffffffff, 0x2089d,
-       0xd40, 0xffffffff, 0xca,
-       0xd41, 0xffffffff, 0x8a1,
-       0xd40, 0xffffffff, 0xcc,
-       0xd41, 0xffffffff, 0x8a3,
-       0xd40, 0xffffffff, 0xce,
-       0xd41, 0xffffffff, 0x308a5,
-       0xd40, 0xffffffff, 0xd3,
-       0xd41, 0xffffffff, 0x6d08cd,
-       0xd40, 0xffffffff, 0x142,
-       0xd41, 0xffffffff, 0x2000095a,
-       0xd41, 0xffffffff, 0x1,
-       0xd40, 0xffffffff, 0x144,
-       0xd41, 0xffffffff, 0x301f095b,
-       0xd40, 0xffffffff, 0x165,
-       0xd41, 0xffffffff, 0xc094d,
-       0xd40, 0xffffffff, 0x173,
-       0xd41, 0xffffffff, 0xf096d,
-       0xd40, 0xffffffff, 0x184,
-       0xd41, 0xffffffff, 0x15097f,
-       0xd40, 0xffffffff, 0x19b,
-       0xd41, 0xffffffff, 0xc0998,
-       0xd40, 0xffffffff, 0x1a9,
-       0xd41, 0xffffffff, 0x409a7,
-       0xd40, 0xffffffff, 0x1af,
-       0xd41, 0xffffffff, 0xcdc,
-       0xd40, 0xffffffff, 0x1b1,
-       0xd41, 0xffffffff, 0x800,
-       0xd42, 0xffffffff, 0x6c9b2000,
-       0xd44, 0xfc00, 0x2000,
-       0xd51, 0xffffffff, 0xfc0,
-       0xa35, 0x00000100, 0x100
+       0x0d4f, 0xffffffff, 0x40000,
+       0x0d4e, 0xffffffff, 0x200010ff,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x7007,
+       0x0d4e, 0xffffffff, 0x300010ff,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x400000,
+       0x0d4e, 0xffffffff, 0x100010ff,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x120200,
+       0x0d4e, 0xffffffff, 0x500010ff,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x1e1e16,
+       0x0d4e, 0xffffffff, 0x600010ff,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x171f1e,
+       0x0d4e, 0xffffffff, 0x700010ff,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4f, 0xffffffff, 0x0,
+       0x0d4e, 0xffffffff, 0x9ff,
+       0x0d40, 0xffffffff, 0x0,
+       0x0d41, 0xffffffff, 0x10000800,
+       0x0d41, 0xffffffff, 0xf,
+       0x0d41, 0xffffffff, 0xf,
+       0x0d40, 0xffffffff, 0x4,
+       0x0d41, 0xffffffff, 0x1000051e,
+       0x0d41, 0xffffffff, 0xffff,
+       0x0d41, 0xffffffff, 0xffff,
+       0x0d40, 0xffffffff, 0x8,
+       0x0d41, 0xffffffff, 0x80500,
+       0x0d40, 0xffffffff, 0x12,
+       0x0d41, 0xffffffff, 0x9050c,
+       0x0d40, 0xffffffff, 0x1d,
+       0x0d41, 0xffffffff, 0xb052c,
+       0x0d40, 0xffffffff, 0x2a,
+       0x0d41, 0xffffffff, 0x1053e,
+       0x0d40, 0xffffffff, 0x2d,
+       0x0d41, 0xffffffff, 0x10546,
+       0x0d40, 0xffffffff, 0x30,
+       0x0d41, 0xffffffff, 0xa054e,
+       0x0d40, 0xffffffff, 0x3c,
+       0x0d41, 0xffffffff, 0x1055f,
+       0x0d40, 0xffffffff, 0x3f,
+       0x0d41, 0xffffffff, 0x10567,
+       0x0d40, 0xffffffff, 0x42,
+       0x0d41, 0xffffffff, 0x1056f,
+       0x0d40, 0xffffffff, 0x45,
+       0x0d41, 0xffffffff, 0x10572,
+       0x0d40, 0xffffffff, 0x48,
+       0x0d41, 0xffffffff, 0x20575,
+       0x0d40, 0xffffffff, 0x4c,
+       0x0d41, 0xffffffff, 0x190801,
+       0x0d40, 0xffffffff, 0x67,
+       0x0d41, 0xffffffff, 0x1082a,
+       0x0d40, 0xffffffff, 0x6a,
+       0x0d41, 0xffffffff, 0x1b082d,
+       0x0d40, 0xffffffff, 0x87,
+       0x0d41, 0xffffffff, 0x310851,
+       0x0d40, 0xffffffff, 0xba,
+       0x0d41, 0xffffffff, 0x891,
+       0x0d40, 0xffffffff, 0xbc,
+       0x0d41, 0xffffffff, 0x893,
+       0x0d40, 0xffffffff, 0xbe,
+       0x0d41, 0xffffffff, 0x20895,
+       0x0d40, 0xffffffff, 0xc2,
+       0x0d41, 0xffffffff, 0x20899,
+       0x0d40, 0xffffffff, 0xc6,
+       0x0d41, 0xffffffff, 0x2089d,
+       0x0d40, 0xffffffff, 0xca,
+       0x0d41, 0xffffffff, 0x8a1,
+       0x0d40, 0xffffffff, 0xcc,
+       0x0d41, 0xffffffff, 0x8a3,
+       0x0d40, 0xffffffff, 0xce,
+       0x0d41, 0xffffffff, 0x308a5,
+       0x0d40, 0xffffffff, 0xd3,
+       0x0d41, 0xffffffff, 0x6d08cd,
+       0x0d40, 0xffffffff, 0x142,
+       0x0d41, 0xffffffff, 0x2000095a,
+       0x0d41, 0xffffffff, 0x1,
+       0x0d40, 0xffffffff, 0x144,
+       0x0d41, 0xffffffff, 0x301f095b,
+       0x0d40, 0xffffffff, 0x165,
+       0x0d41, 0xffffffff, 0xc094d,
+       0x0d40, 0xffffffff, 0x173,
+       0x0d41, 0xffffffff, 0xf096d,
+       0x0d40, 0xffffffff, 0x184,
+       0x0d41, 0xffffffff, 0x15097f,
+       0x0d40, 0xffffffff, 0x19b,
+       0x0d41, 0xffffffff, 0xc0998,
+       0x0d40, 0xffffffff, 0x1a9,
+       0x0d41, 0xffffffff, 0x409a7,
+       0x0d40, 0xffffffff, 0x1af,
+       0x0d41, 0xffffffff, 0xcdc,
+       0x0d40, 0xffffffff, 0x1b1,
+       0x0d41, 0xffffffff, 0x800,
+       0x0d42, 0xffffffff, 0x6c9b2000,
+       0x0d44, 0xfc00, 0x2000,
+       0x0d51, 0xffffffff, 0xfc0,
+       0x0a35, 0x00000100, 0x100
 };
 
 static const u32 verde_golden_rlc_registers[] =
 {
+       0x263e, 0xffffffff, 0x02010002,
        0x3109, 0xffffffff, 0x033f1005,
        0x311f, 0xffffffff, 0x10808020,
        0x3122, 0xffffffff, 0x00800008,
@@ -269,65 +282,45 @@ static const u32 verde_golden_rlc_registers[] =
 
 static const u32 verde_golden_registers[] =
 {
+       0x17bc, 0x00000030, 0x00000011,
        0x2684, 0x00010000, 0x00018208,
        0x260c, 0xffffffff, 0x00000000,
        0x260d, 0xf00fffff, 0x00000400,
        0x260e, 0x0002021c, 0x00020200,
        0x031e, 0x00000080, 0x00000000,
        0x340c, 0x000300c0, 0x00800040,
-       0x340c, 0x000300c0, 0x00800040,
-       0x360c, 0x000300c0, 0x00800040,
        0x360c, 0x000300c0, 0x00800040,
        0x16ec, 0x000000f0, 0x00000070,
        0x16f0, 0x00200000, 0x50100000,
-
        0x1c0c, 0x31000311, 0x00000011,
        0x0ab9, 0x00073ffe, 0x000022a2,
-       0x0ab9, 0x00073ffe, 0x000022a2,
-       0x0ab9, 0x00073ffe, 0x000022a2,
-       0x0903, 0x000007ff, 0x00000000,
-       0x0903, 0x000007ff, 0x00000000,
        0x0903, 0x000007ff, 0x00000000,
        0x2285, 0xf000001f, 0x00000007,
-       0x2285, 0xf000001f, 0x00000007,
-       0x2285, 0xf000001f, 0x00000007,
-       0x2285, 0xffffffff, 0x00ffffff,
+       0x22c9, 0xffffffff, 0x00ffffff,
        0x22c4, 0x0000ff0f, 0x00000000,
-
        0xa293, 0x07ffffff, 0x4e000000,
        0xa0d4, 0x3f3f3fff, 0x0000124a,
-       0xa0d4, 0x3f3f3fff, 0x0000124a,
-       0xa0d4, 0x3f3f3fff, 0x0000124a,
-       0x000c, 0x000000ff, 0x0040,
+       0x000c, 0xffffffff, 0x0040,
        0x000d, 0x00000040, 0x00004040,
        0x2440, 0x07ffffff, 0x03000000,
-       0x2440, 0x07ffffff, 0x03000000,
-       0x23a2, 0x01ff1f3f, 0x00000000,
-       0x23a3, 0x01ff1f3f, 0x00000000,
        0x23a2, 0x01ff1f3f, 0x00000000,
-       0x23a1, 0x01ff1f3f, 0x00000000,
-       0x23a1, 0x01ff1f3f, 0x00000000,
-
        0x23a1, 0x01ff1f3f, 0x00000000,
        0x2418, 0x0000007f, 0x00000020,
        0x2542, 0x00010000, 0x00010000,
-       0x2b01, 0x000003ff, 0x00000003,
-       0x2b05, 0x000003ff, 0x00000003,
        0x2b05, 0x000003ff, 0x00000003,
        0x2b04, 0xffffffff, 0x00000000,
-       0x2b04, 0xffffffff, 0x00000000,
-       0x2b04, 0xffffffff, 0x00000000,
-       0x2b03, 0xffffffff, 0x00001032,
-       0x2b03, 0xffffffff, 0x00001032,
        0x2b03, 0xffffffff, 0x00001032,
        0x2235, 0x0000001f, 0x00000010,
-       0x2235, 0x0000001f, 0x00000010,
-       0x2235, 0x0000001f, 0x00000010,
-       0x0570, 0x000c0fc0, 0x000c0400
+       0x0570, 0x000c0fc0, 0x000c0400,
+       0x052c, 0x0fffffff, 0xffffffff,
+       0x052d, 0x0fffffff, 0x0fffffff,
+       0x052e, 0x0fffffff, 0x0fffffff,
+       0x052f, 0x0fffffff, 0x0fffffff
 };
 
 static const u32 oland_golden_registers[] =
 {
+       0x17bc, 0x00000030, 0x00000011,
        0x2684, 0x00010000, 0x00018208,
        0x260c, 0xffffffff, 0x00000000,
        0x260d, 0xf00fffff, 0x00000400,
@@ -336,7 +329,7 @@ static const u32 oland_golden_registers[] =
        0x340c, 0x000300c0, 0x00800040,
        0x360c, 0x000300c0, 0x00800040,
        0x16ec, 0x000000f0, 0x00000070,
-       0x16f9, 0x00200000, 0x50100000,
+       0x16f0, 0x00200000, 0x50100000,
        0x1c0c, 0x31000311, 0x00000011,
        0x0ab9, 0x00073ffe, 0x000022a2,
        0x0903, 0x000007ff, 0x00000000,
@@ -345,7 +338,7 @@ static const u32 oland_golden_registers[] =
        0x22c4, 0x0000ff0f, 0x00000000,
        0xa293, 0x07ffffff, 0x4e000000,
        0xa0d4, 0x3f3f3fff, 0x00000082,
-       0x000c, 0x000000ff, 0x0040,
+       0x000c, 0xffffffff, 0x0040,
        0x000d, 0x00000040, 0x00004040,
        0x2440, 0x07ffffff, 0x03000000,
        0x2418, 0x0000007f, 0x00000020,
@@ -354,11 +347,16 @@ static const u32 oland_golden_registers[] =
        0x2b04, 0xffffffff, 0x00000000,
        0x2b03, 0xffffffff, 0x00003210,
        0x2235, 0x0000001f, 0x00000010,
-       0x0570, 0x000c0fc0, 0x000c0400
+       0x0570, 0x000c0fc0, 0x000c0400,
+       0x052c, 0x0fffffff, 0xffffffff,
+       0x052d, 0x0fffffff, 0x0fffffff,
+       0x052e, 0x0fffffff, 0x0fffffff,
+       0x052f, 0x0fffffff, 0x0fffffff
 };
 
 static const u32 oland_golden_rlc_registers[] =
 {
+       0x263e, 0xffffffff, 0x02010002,
        0x3109, 0xffffffff, 0x00601005,
        0x311f, 0xffffffff, 0x10104040,
        0x3122, 0xffffffff, 0x0100000a,
@@ -368,22 +366,27 @@ static const u32 oland_golden_rlc_registers[] =
 
 static const u32 hainan_golden_registers[] =
 {
+       0x17bc, 0x00000030, 0x00000011,
        0x2684, 0x00010000, 0x00018208,
        0x260c, 0xffffffff, 0x00000000,
        0x260d, 0xf00fffff, 0x00000400,
        0x260e, 0x0002021c, 0x00020200,
-       0x4595, 0xff000fff, 0x00000100,
+       0x031e, 0x00000080, 0x00000000,
+       0x3430, 0xff000fff, 0x00000100,
        0x340c, 0x000300c0, 0x00800040,
        0x3630, 0xff000fff, 0x00000100,
        0x360c, 0x000300c0, 0x00800040,
+       0x16ec, 0x000000f0, 0x00000070,
+       0x16f0, 0x00200000, 0x50100000,
+       0x1c0c, 0x31000311, 0x00000011,
        0x0ab9, 0x00073ffe, 0x000022a2,
        0x0903, 0x000007ff, 0x00000000,
        0x2285, 0xf000001f, 0x00000007,
        0x22c9, 0xffffffff, 0x00ffffff,
        0x22c4, 0x0000ff0f, 0x00000000,
-       0xa393, 0x07ffffff, 0x4e000000,
+       0xa293, 0x07ffffff, 0x4e000000,
        0xa0d4, 0x3f3f3fff, 0x00000000,
-       0x000c, 0x000000ff, 0x0040,
+       0x000c, 0xffffffff, 0x0040,
        0x000d, 0x00000040, 0x00004040,
        0x2440, 0x03e00000, 0x03600000,
        0x2418, 0x0000007f, 0x00000020,
@@ -392,12 +395,16 @@ static const u32 hainan_golden_registers[] =
        0x2b04, 0xffffffff, 0x00000000,
        0x2b03, 0xffffffff, 0x00003210,
        0x2235, 0x0000001f, 0x00000010,
-       0x0570, 0x000c0fc0, 0x000c0400
+       0x0570, 0x000c0fc0, 0x000c0400,
+       0x052c, 0x0fffffff, 0xffffffff,
+       0x052d, 0x0fffffff, 0x0fffffff,
+       0x052e, 0x0fffffff, 0x0fffffff,
+       0x052f, 0x0fffffff, 0x0fffffff
 };
 
 static const u32 hainan_golden_registers2[] =
 {
-       0x263e, 0xffffffff, 0x02010001
+       0x263e, 0xffffffff, 0x2011003
 };
 
 static const u32 tahiti_mgcg_cgcg_init[] =
@@ -513,18 +520,18 @@ static const u32 tahiti_mgcg_cgcg_init[] =
        0x21c2, 0xffffffff, 0x00900100,
        0x311e, 0xffffffff, 0x00000080,
        0x3101, 0xffffffff, 0x0020003f,
-       0xc, 0xffffffff, 0x0000001c,
-       0xd, 0x000f0000, 0x000f0000,
-       0x583, 0xffffffff, 0x00000100,
-       0x409, 0xffffffff, 0x00000100,
-       0x40b, 0x00000101, 0x00000000,
-       0x82a, 0xffffffff, 0x00000104,
-       0x993, 0x000c0000, 0x000c0000,
-       0x992, 0x000c0000, 0x000c0000,
+       0x000c, 0xffffffff, 0x0000001c,
+       0x000d, 0x000f0000, 0x000f0000,
+       0x0583, 0xffffffff, 0x00000100,
+       0x0409, 0xffffffff, 0x00000100,
+       0x040b, 0x00000101, 0x00000000,
+       0x082a, 0xffffffff, 0x00000104,
+       0x0993, 0x000c0000, 0x000c0000,
+       0x0992, 0x000c0000, 0x000c0000,
        0x1579, 0xff000fff, 0x00000100,
        0x157a, 0x00000001, 0x00000001,
-       0xbd4, 0x00000001, 0x00000001,
-       0xc33, 0xc0000fff, 0x00000104,
+       0x0bd4, 0x00000001, 0x00000001,
+       0x0c33, 0xc0000fff, 0x00000104,
        0x3079, 0x00000001, 0x00000001,
        0x3430, 0xfffffff0, 0x00000100,
        0x3630, 0xfffffff0, 0x00000100
@@ -612,16 +619,16 @@ static const u32 pitcairn_mgcg_cgcg_init[] =
        0x21c2, 0xffffffff, 0x00900100,
        0x311e, 0xffffffff, 0x00000080,
        0x3101, 0xffffffff, 0x0020003f,
-       0xc, 0xffffffff, 0x0000001c,
-       0xd, 0x000f0000, 0x000f0000,
-       0x583, 0xffffffff, 0x00000100,
-       0x409, 0xffffffff, 0x00000100,
-       0x40b, 0x00000101, 0x00000000,
-       0x82a, 0xffffffff, 0x00000104,
+       0x000c, 0xffffffff, 0x0000001c,
+       0x000d, 0x000f0000, 0x000f0000,
+       0x0583, 0xffffffff, 0x00000100,
+       0x0409, 0xffffffff, 0x00000100,
+       0x040b, 0x00000101, 0x00000000,
+       0x082a, 0xffffffff, 0x00000104,
        0x1579, 0xff000fff, 0x00000100,
        0x157a, 0x00000001, 0x00000001,
-       0xbd4, 0x00000001, 0x00000001,
-       0xc33, 0xc0000fff, 0x00000104,
+       0x0bd4, 0x00000001, 0x00000001,
+       0x0c33, 0xc0000fff, 0x00000104,
        0x3079, 0x00000001, 0x00000001,
        0x3430, 0xfffffff0, 0x00000100,
        0x3630, 0xfffffff0, 0x00000100
@@ -709,18 +716,18 @@ static const u32 verde_mgcg_cgcg_init[] =
        0x21c2, 0xffffffff, 0x00900100,
        0x311e, 0xffffffff, 0x00000080,
        0x3101, 0xffffffff, 0x0020003f,
-       0xc, 0xffffffff, 0x0000001c,
-       0xd, 0x000f0000, 0x000f0000,
-       0x583, 0xffffffff, 0x00000100,
-       0x409, 0xffffffff, 0x00000100,
-       0x40b, 0x00000101, 0x00000000,
-       0x82a, 0xffffffff, 0x00000104,
-       0x993, 0x000c0000, 0x000c0000,
-       0x992, 0x000c0000, 0x000c0000,
+       0x000c, 0xffffffff, 0x0000001c,
+       0x000d, 0x000f0000, 0x000f0000,
+       0x0583, 0xffffffff, 0x00000100,
+       0x0409, 0xffffffff, 0x00000100,
+       0x040b, 0x00000101, 0x00000000,
+       0x082a, 0xffffffff, 0x00000104,
+       0x0993, 0x000c0000, 0x000c0000,
+       0x0992, 0x000c0000, 0x000c0000,
        0x1579, 0xff000fff, 0x00000100,
        0x157a, 0x00000001, 0x00000001,
-       0xbd4, 0x00000001, 0x00000001,
-       0xc33, 0xc0000fff, 0x00000104,
+       0x0bd4, 0x00000001, 0x00000001,
+       0x0c33, 0xc0000fff, 0x00000104,
        0x3079, 0x00000001, 0x00000001,
        0x3430, 0xfffffff0, 0x00000100,
        0x3630, 0xfffffff0, 0x00000100
@@ -788,18 +795,18 @@ static const u32 oland_mgcg_cgcg_init[] =
        0x21c2, 0xffffffff, 0x00900100,
        0x311e, 0xffffffff, 0x00000080,
        0x3101, 0xffffffff, 0x0020003f,
-       0xc, 0xffffffff, 0x0000001c,
-       0xd, 0x000f0000, 0x000f0000,
-       0x583, 0xffffffff, 0x00000100,
-       0x409, 0xffffffff, 0x00000100,
-       0x40b, 0x00000101, 0x00000000,
-       0x82a, 0xffffffff, 0x00000104,
-       0x993, 0x000c0000, 0x000c0000,
-       0x992, 0x000c0000, 0x000c0000,
+       0x000c, 0xffffffff, 0x0000001c,
+       0x000d, 0x000f0000, 0x000f0000,
+       0x0583, 0xffffffff, 0x00000100,
+       0x0409, 0xffffffff, 0x00000100,
+       0x040b, 0x00000101, 0x00000000,
+       0x082a, 0xffffffff, 0x00000104,
+       0x0993, 0x000c0000, 0x000c0000,
+       0x0992, 0x000c0000, 0x000c0000,
        0x1579, 0xff000fff, 0x00000100,
        0x157a, 0x00000001, 0x00000001,
-       0xbd4, 0x00000001, 0x00000001,
-       0xc33, 0xc0000fff, 0x00000104,
+       0x0bd4, 0x00000001, 0x00000001,
+       0x0c33, 0xc0000fff, 0x00000104,
        0x3079, 0x00000001, 0x00000001,
        0x3430, 0xfffffff0, 0x00000100,
        0x3630, 0xfffffff0, 0x00000100
@@ -867,15 +874,15 @@ static const u32 hainan_mgcg_cgcg_init[] =
        0x21c2, 0xffffffff, 0x00900100,
        0x311e, 0xffffffff, 0x00000080,
        0x3101, 0xffffffff, 0x0020003f,
-       0xc, 0xffffffff, 0x0000001c,
-       0xd, 0x000f0000, 0x000f0000,
-       0x583, 0xffffffff, 0x00000100,
-       0x409, 0xffffffff, 0x00000100,
-       0x82a, 0xffffffff, 0x00000104,
-       0x993, 0x000c0000, 0x000c0000,
-       0x992, 0x000c0000, 0x000c0000,
-       0xbd4, 0x00000001, 0x00000001,
-       0xc33, 0xc0000fff, 0x00000104,
+       0x000c, 0xffffffff, 0x0000001c,
+       0x000d, 0x000f0000, 0x000f0000,
+       0x0583, 0xffffffff, 0x00000100,
+       0x0409, 0xffffffff, 0x00000100,
+       0x082a, 0xffffffff, 0x00000104,
+       0x0993, 0x000c0000, 0x000c0000,
+       0x0992, 0x000c0000, 0x000c0000,
+       0x0bd4, 0x00000001, 0x00000001,
+       0x0c33, 0xc0000fff, 0x00000104,
        0x3079, 0x00000001, 0x00000001,
        0x3430, 0xfffffff0, 0x00000100,
        0x3630, 0xfffffff0, 0x00000100
@@ -1179,6 +1186,8 @@ static int si_common_early_init(void *handle)
                        AMD_CG_SUPPORT_HDP_LS |
                        AMD_CG_SUPPORT_HDP_MGCG;
                        adev->pg_flags = 0;
+               adev->external_rev_id = (adev->rev_id == 0) ? 1 :
+                                       (adev->rev_id == 1) ? 5 : 6;
                break;
        case CHIP_PITCAIRN:
                adev->cg_flags =
@@ -1198,6 +1207,7 @@ static int si_common_early_init(void *handle)
                        AMD_CG_SUPPORT_HDP_LS |
                        AMD_CG_SUPPORT_HDP_MGCG;
                adev->pg_flags = 0;
+               adev->external_rev_id = adev->rev_id + 20;
                break;
 
        case CHIP_VERDE:
@@ -1219,7 +1229,7 @@ static int si_common_early_init(void *handle)
                        AMD_CG_SUPPORT_HDP_MGCG;
                adev->pg_flags = 0;
                //???
-               adev->external_rev_id = adev->rev_id + 0x14;
+               adev->external_rev_id = adev->rev_id + 40;
                break;
        case CHIP_OLAND:
                adev->cg_flags =
@@ -1238,6 +1248,7 @@ static int si_common_early_init(void *handle)
                        AMD_CG_SUPPORT_HDP_LS |
                        AMD_CG_SUPPORT_HDP_MGCG;
                adev->pg_flags = 0;
+               adev->external_rev_id = 60;
                break;
        case CHIP_HAINAN:
                adev->cg_flags =
@@ -1255,6 +1266,7 @@ static int si_common_early_init(void *handle)
                        AMD_CG_SUPPORT_HDP_LS |
                        AMD_CG_SUPPORT_HDP_MGCG;
                adev->pg_flags = 0;
+               adev->external_rev_id = 70;
                break;
 
        default: