summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/core
diff options
context:
space:
mode:
authorRoy Spliet <rspliet@eclipso.eu>2014-09-04 16:58:52 +0200
committerBen Skeggs <bskeggs@redhat.com>2014-09-15 22:25:04 +1000
commit6778911b2079809f2c0ab589380069307eb5076e (patch)
treed57dab9ed7f3f45dc04d73c4e218b1c92d109f83 /drivers/gpu/drm/nouveau/core
parentd93e996aed6e48c87dc5703a21b0e9368d4cc1f9 (diff)
drm/nouveau/pwr/memx: Return debugging information
Time measured from disabling FB to re-enabling, PPWR_IN reveals status of heads at the end of script. Helps debug various issues (like flicker). Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core')
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc16
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h660
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h716
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h716
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h740
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c2
6 files changed, 1438 insertions, 1412 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
index 9f2f57c6c828..989fdc10c136 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
+++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
@@ -55,6 +55,11 @@ memx_func_tail:
.equ #memx_func_size #memx_func_next - #memx_func_head
.equ #memx_func_num (#memx_func_tail - #memx_func_head) / #memx_func_size
+memx_ts_start:
+.b32 0
+memx_ts_end:
+.b32 0
+
memx_data_head:
.skip 0x0800
memx_data_tail:
@@ -78,6 +83,9 @@ memx_func_enter:
and $r6 NV_PPWR_OUTPUT_FB_PAUSE
bra z #memx_func_enter_wait
+ nv_iord($r6, NV_PPWR_TIMER_LOW)
+ st b32 D[$r0 + #memx_ts_start] $r6
+
ret
// description
@@ -87,6 +95,9 @@ memx_func_enter:
// $r3 - opcode desciption
// $r0 - zero
memx_func_leave:
+ nv_iord($r6, NV_PPWR_TIMER_LOW)
+ st b32 D[$r0 + #memx_ts_end] $r6
+
mov $r6 NV_PPWR_OUTPUT_CLR_FB_PAUSE
nv_iowr(NV_PPWR_OUTPUT_CLR, $r6)
memx_func_leave_wait:
@@ -210,6 +221,7 @@ memx_exec:
push $r13
mov b32 $r1 $r12
mov b32 $r2 $r11
+
memx_exec_next:
// fetch the packet header, and locate opcode info
ld b32 $r3 D[$r1]
@@ -226,6 +238,10 @@ memx_exec:
bra l #memx_exec_next
// send completion reply
+ ld b32 $r11 D[$r0 + #memx_ts_start]
+ ld b32 $r12 D[$r0 + #memx_ts_end]
+ sub b32 $r12 $r11
+ nv_iord($r11, NV_PPWR_INPUT)
pop $r13
pop $r14
call(send)
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h
index 6d8701cce9b5..4ba3b1c4fa79 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h
+++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h
@@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x584d454d,
- 0x0000053d,
- 0x0000052f,
+ 0x0000055c,
+ 0x0000054e,
0x00000000,
0x00000000,
0x00000000,
@@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x46524550,
- 0x00000541,
- 0x0000053f,
+ 0x00000560,
+ 0x0000055e,
0x00000000,
0x00000000,
0x00000000,
@@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x5f433249,
- 0x00000945,
- 0x000007ec,
+ 0x00000964,
+ 0x0000080b,
0x00000000,
0x00000000,
0x00000000,
@@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x54534554,
+ 0x00000985,
0x00000966,
- 0x00000947,
0x00000000,
0x00000000,
0x00000000,
@@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x454c4449,
- 0x00000971,
- 0x0000096f,
+ 0x00000990,
+ 0x0000098e,
0x00000000,
0x00000000,
0x00000000,
@@ -233,23 +233,25 @@ uint32_t nv108_pwr_data[] = {
/* 0x037c: memx_func_next */
0x00000001,
0x00000000,
- 0x0000049b,
+ 0x000004a3,
0x00000002,
0x00000002,
- 0x000004b8,
+ 0x000004c8,
0x00040003,
0x00000000,
- 0x000004d5,
+ 0x000004e5,
0x00010004,
0x00000000,
- 0x000004ef,
+ 0x000004ff,
0x00010005,
0x00000000,
- 0x000004b3,
+ 0x000004c3,
/* 0x03b8: memx_func_tail */
-/* 0x03b8: memx_data_head */
+/* 0x03b8: memx_ts_start */
0x00000000,
+/* 0x03bc: memx_ts_end */
0x00000000,
+/* 0x03c0: memx_data_head */
0x00000000,
0x00000000,
0x00000000,
@@ -760,8 +762,10 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x00000000,
-/* 0x0bb8: memx_data_tail */
-/* 0x0bb8: i2c_scl_map */
+ 0x00000000,
+ 0x00000000,
+/* 0x0bc0: memx_data_tail */
+/* 0x0bc0: i2c_scl_map */
0x00000400,
0x00000800,
0x00001000,
@@ -772,7 +776,7 @@ uint32_t nv108_pwr_data[] = {
0x00020000,
0x00040000,
0x00080000,
-/* 0x0be0: i2c_sda_map */
+/* 0x0be8: i2c_sda_map */
0x00100000,
0x00200000,
0x00400000,
@@ -843,8 +847,6 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x00000000,
- 0x00000000,
- 0x00000000,
};
uint32_t nv108_pwr_code[] = {
@@ -1188,18 +1190,22 @@ uint32_t nv108_pwr_code[] = {
0x07c04604,
0xf00066cf,
0x0bf40464,
-/* 0x049b: memx_func_leave */
- 0x0600f8f7,
+ 0xcf2c06f7,
+ 0x06b50066,
+/* 0x04a3: memx_func_leave */
+ 0x0600f8ee,
+ 0x0066cf2c,
+ 0x06ef06b5,
0x07e44004,
0xbd0006f6,
-/* 0x04a5: memx_func_leave_wait */
+/* 0x04b5: memx_func_leave_wait */
0x07c04604,
0xf00066cf,
0x1bf40464,
-/* 0x04b3: memx_func_wait_vblank */
+/* 0x04c3: memx_func_wait_vblank */
0xb600f8f7,
0x00f80410,
-/* 0x04b8: memx_func_wr32 */
+/* 0x04c8: memx_func_wr32 */
0x98001698,
0x10b60115,
0xf960f908,
@@ -1207,379 +1213,375 @@ uint32_t nv108_pwr_code[] = {
0x002e7ee0,
0x0242b600,
0xf8e81bf4,
-/* 0x04d5: memx_func_wait */
+/* 0x04e5: memx_func_wait */
0xcf2c0800,
0x1e980088,
0x011d9800,
0x98021c98,
0x10b6031b,
0x00797e10,
-/* 0x04ef: memx_func_delay */
+/* 0x04ff: memx_func_delay */
0x9800f800,
0x10b6001e,
0x005d7e04,
-/* 0x04fb: memx_exec */
+/* 0x050b: memx_exec */
0xf900f800,
0xb2d0f9e0,
-/* 0x0503: memx_exec_next */
+/* 0x0513: memx_exec_next */
0x98b2b2c1,
0x10b60013,
0x10349504,
0x980c30f0,
0x55f9de35,
0x1ef412a6,
- 0xfcd0fced,
- 0x02c27ee0,
-/* 0x0523: memx_info */
- 0x4c00f800,
- 0x004b03b8,
- 0x02c27e08,
-/* 0x052f: memx_recv */
- 0xb000f800,
- 0x0bf401d6,
- 0x00d6b0c9,
- 0xf8eb0bf4,
-/* 0x053d: memx_init */
-/* 0x053f: perf_recv */
- 0xf800f800,
-/* 0x0541: perf_init */
-/* 0x0543: i2c_drive_scl */
- 0xb000f800,
- 0x0bf40036,
- 0x07e0400d,
- 0xbd0001f6,
-/* 0x0553: i2c_drive_scl_lo */
- 0x4000f804,
- 0x01f607e4,
- 0xf804bd00,
-/* 0x055d: i2c_drive_sda */
- 0x0036b000,
- 0x400d0bf4,
- 0x02f607e0,
- 0xf804bd00,
-/* 0x056d: i2c_drive_sda_lo */
- 0x07e44000,
- 0xbd0002f6,
-/* 0x0577: i2c_sense_scl */
- 0xf400f804,
- 0xc4430132,
- 0x0033cf07,
- 0xf40431fd,
- 0x31f4060b,
-/* 0x0589: i2c_sense_scl_done */
-/* 0x058b: i2c_sense_sda */
- 0xf400f801,
- 0xc4430132,
- 0x0033cf07,
- 0xf40432fd,
- 0x31f4060b,
-/* 0x059d: i2c_sense_sda_done */
-/* 0x059f: i2c_raise_scl */
- 0xf900f801,
- 0x08984440,
- 0x437e0103,
-/* 0x05aa: i2c_raise_scl_wait */
- 0xe84e0005,
- 0x005d7e03,
- 0x05777e00,
- 0x0901f400,
- 0xf40142b6,
-/* 0x05be: i2c_raise_scl_done */
- 0x40fcef1b,
-/* 0x05c2: i2c_start */
- 0x777e00f8,
- 0x11f40005,
- 0x058b7e0d,
- 0x0611f400,
-/* 0x05d3: i2c_start_rep */
- 0x032e0ef4,
- 0x05437e00,
+ 0xee0b98ed,
+ 0xbbef0c98,
+ 0xc44b02cb,
+ 0x00bbcf07,
+ 0xe0fcd0fc,
+ 0x0002c27e,
+/* 0x0542: memx_info */
+ 0xc04c00f8,
+ 0x08004b03,
+ 0x0002c27e,
+/* 0x054e: memx_recv */
+ 0xd6b000f8,
+ 0xba0bf401,
+ 0xf400d6b0,
+ 0x00f8eb0b,
+/* 0x055c: memx_init */
+/* 0x055e: perf_recv */
+ 0x00f800f8,
+/* 0x0560: perf_init */
+/* 0x0562: i2c_drive_scl */
+ 0x36b000f8,
+ 0x0d0bf400,
+ 0xf607e040,
+ 0x04bd0001,
+/* 0x0572: i2c_drive_scl_lo */
+ 0xe44000f8,
+ 0x0001f607,
+ 0x00f804bd,
+/* 0x057c: i2c_drive_sda */
+ 0xf40036b0,
+ 0xe0400d0b,
+ 0x0002f607,
+ 0x00f804bd,
+/* 0x058c: i2c_drive_sda_lo */
+ 0xf607e440,
+ 0x04bd0002,
+/* 0x0596: i2c_sense_scl */
+ 0x32f400f8,
+ 0x07c44301,
+ 0xfd0033cf,
+ 0x0bf40431,
+ 0x0131f406,
+/* 0x05a8: i2c_sense_scl_done */
+/* 0x05aa: i2c_sense_sda */
+ 0x32f400f8,
+ 0x07c44301,
+ 0xfd0033cf,
+ 0x0bf40432,
+ 0x0131f406,
+/* 0x05bc: i2c_sense_sda_done */
+/* 0x05be: i2c_raise_scl */
+ 0x40f900f8,
+ 0x03089844,
+ 0x05627e01,
+/* 0x05c9: i2c_raise_scl_wait */
+ 0x03e84e00,
+ 0x00005d7e,
+ 0x0005967e,
+ 0xb60901f4,
+ 0x1bf40142,
+/* 0x05dd: i2c_raise_scl_done */
+ 0xf840fcef,
+/* 0x05e1: i2c_start */
+ 0x05967e00,
+ 0x0d11f400,
+ 0x0005aa7e,
+ 0xf40611f4,
+/* 0x05f2: i2c_start_rep */
+ 0x00032e0e,
+ 0x0005627e,
+ 0x7c7e0103,
+ 0x76bb0005,
+ 0x0465b600,
+ 0x659450f9,
+ 0x0256bb04,
+ 0x75fd50bd,
+ 0x7e50fc04,
+ 0xb60005be,
+ 0x11f40464,
+/* 0x061d: i2c_start_send */
+ 0x7e00031d,
+ 0x4e00057c,
+ 0x5d7e1388,
+ 0x00030000,
+ 0x0005627e,
+ 0x7e13884e,
+/* 0x0637: i2c_start_out */
+ 0xf800005d,
+/* 0x0639: i2c_stop */
+ 0x7e000300,
+ 0x03000562,
+ 0x057c7e00,
+ 0x03e84e00,
+ 0x00005d7e,
+ 0x627e0103,
+ 0x884e0005,
+ 0x005d7e13,
0x7e010300,
- 0xbb00055d,
+ 0x4e00057c,
+ 0x5d7e1388,
+ 0x00f80000,
+/* 0x0668: i2c_bitw */
+ 0x00057c7e,
+ 0x7e03e84e,
+ 0xbb00005d,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x00059f7e,
+ 0x0005be7e,
0xf40464b6,
-/* 0x05fe: i2c_start_send */
- 0x00031d11,
- 0x00055d7e,
- 0x7e13884e,
- 0x0300005d,
- 0x05437e00,
- 0x13884e00,
- 0x00005d7e,
-/* 0x0618: i2c_start_out */
-/* 0x061a: i2c_stop */
- 0x000300f8,
- 0x0005437e,
- 0x5d7e0003,
+ 0x884e1711,
+ 0x005d7e13,
+ 0x7e000300,
+ 0x4e000562,
+ 0x5d7e1388,
+/* 0x06a6: i2c_bitw_out */
+ 0x00f80000,
+/* 0x06a8: i2c_bitr */
+ 0x7c7e0103,
0xe84e0005,
0x005d7e03,
- 0x7e010300,
- 0x4e000543,
- 0x5d7e1388,
- 0x01030000,
- 0x00055d7e,
- 0x7e13884e,
- 0xf800005d,
-/* 0x0649: i2c_bitw */
- 0x055d7e00,
- 0x03e84e00,
- 0x00005d7e,
+ 0x0076bb00,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0xbe7e50fc,
+ 0x64b60005,
+ 0x1a11f404,
+ 0x0005aa7e,
+ 0x627e0003,
+ 0x884e0005,
+ 0x005d7e13,
+ 0x013cf000,
+/* 0x06eb: i2c_bitr_done */
+ 0xf80131f4,
+/* 0x06ed: i2c_get_byte */
+ 0x04000500,
+/* 0x06f1: i2c_get_byte_next */
+ 0x0154b608,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x059f7e50,
+ 0x06a87e50,
0x0464b600,
- 0x4e1711f4,
- 0x5d7e1388,
- 0x00030000,
- 0x0005437e,
- 0x7e13884e,
-/* 0x0687: i2c_bitw_out */
- 0xf800005d,
-/* 0x0689: i2c_bitr */
- 0x7e010300,
- 0x4e00055d,
- 0x5d7e03e8,
- 0x76bb0000,
+ 0xfd2a11f4,
+ 0x42b60553,
+ 0xd81bf401,
+ 0x76bb0103,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
- 0xb600059f,
- 0x11f40464,
- 0x058b7e1a,
- 0x7e000300,
- 0x4e000543,
- 0x5d7e1388,
- 0x3cf00000,
- 0x0131f401,
-/* 0x06cc: i2c_bitr_done */
-/* 0x06ce: i2c_get_byte */
- 0x000500f8,
-/* 0x06d2: i2c_get_byte_next */
- 0x54b60804,
- 0x0076bb01,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x897e50fc,
- 0x64b60006,
- 0x2a11f404,
- 0xb60553fd,
- 0x1bf40142,
- 0xbb0103d8,
- 0x65b60076,
- 0x9450f904,
- 0x56bb0465,
- 0xfd50bd02,
- 0x50fc0475,
- 0x0006497e,
-/* 0x071b: i2c_get_byte_done */
- 0xf80464b6,
-/* 0x071d: i2c_put_byte */
-/* 0x071f: i2c_put_byte_next */
- 0xb6080400,
- 0x54ff0142,
- 0x0076bb38,
+ 0xb6000668,
+/* 0x073a: i2c_get_byte_done */
+ 0x00f80464,
+/* 0x073c: i2c_put_byte */
+/* 0x073e: i2c_put_byte_next */
+ 0x42b60804,
+ 0x3854ff01,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x06687e50,
+ 0x0464b600,
+ 0xb03411f4,
+ 0x1bf40046,
+ 0x0076bbd8,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
- 0x497e50fc,
+ 0xa87e50fc,
0x64b60006,
- 0x3411f404,
- 0xf40046b0,
- 0x76bbd81b,
+ 0x0f11f404,
+ 0xb00076bb,
+ 0x1bf40136,
+ 0x0132f406,
+/* 0x0794: i2c_put_byte_done */
+/* 0x0796: i2c_addr */
+ 0x76bb00f8,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
- 0xb6000689,
+ 0xb60005e1,
0x11f40464,
- 0x0076bb0f,
- 0xf40136b0,
- 0x32f4061b,
-/* 0x0775: i2c_put_byte_done */
-/* 0x0777: i2c_addr */
- 0xbb00f801,
+ 0x2ec3e729,
+ 0x0134b601,
+ 0xbb0553fd,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x0005c27e,
- 0xf40464b6,
- 0xc3e72911,
- 0x34b6012e,
- 0x0553fd01,
- 0xb60076bb,
- 0x50f90465,
- 0xbb046594,
- 0x50bd0256,
- 0xfc0475fd,
- 0x071d7e50,
- 0x0464b600,
-/* 0x07bc: i2c_addr_done */
-/* 0x07be: i2c_acquire_addr */
- 0xcec700f8,
- 0x05e4b6f8,
- 0xd014e0b7,
-/* 0x07ca: i2c_acquire */
- 0xbe7e00f8,
+ 0x00073c7e,
+/* 0x07db: i2c_addr_done */
+ 0xf80464b6,
+/* 0x07dd: i2c_acquire_addr */
+ 0xf8cec700,
+ 0xb705e4b6,
+ 0xf8d014e0,
+/* 0x07e9: i2c_acquire */
+ 0x07dd7e00,
+ 0x00047e00,
+ 0x03d9f000,
+ 0x00002e7e,
+/* 0x07fa: i2c_release */
+ 0xdd7e00f8,
0x047e0007,
- 0xd9f00000,
+ 0xdaf00000,
0x002e7e03,
-/* 0x07db: i2c_release */
- 0x7e00f800,
- 0x7e0007be,
- 0xf0000004,
- 0x2e7e03da,
- 0x00f80000,
-/* 0x07ec: i2c_recv */
- 0xc70132f4,
- 0x14b6f8c1,
- 0x2816b002,
- 0x01371ff5,
- 0x0be013b8,
- 0x00329800,
- 0x0bb813b8,
- 0x00319800,
- 0xf90231f4,
- 0xf9e0f9d0,
- 0x0067f1d0,
- 0x0063f100,
- 0x01679210,
- 0xb60076bb,
- 0x50f90465,
- 0xbb046594,
- 0x50bd0256,
- 0xfc0475fd,
- 0x07ca7e50,
- 0x0464b600,
- 0xd6b0d0fc,
- 0xb01bf500,
- 0xbb000500,
+/* 0x080b: i2c_recv */
+ 0xf400f800,
+ 0xc1c70132,
+ 0x0214b6f8,
+ 0xf52816b0,
+ 0xb801371f,
+ 0x000be813,
+ 0xb8003298,
+ 0x000bc013,
+ 0xf4003198,
+ 0xd0f90231,
+ 0xd0f9e0f9,
+ 0x000067f1,
+ 0x100063f1,
+ 0xbb016792,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x0007777e,
- 0xf50464b6,
- 0xc700cc11,
- 0x76bbe0c5,
+ 0x0007e97e,
+ 0xfc0464b6,
+ 0x00d6b0d0,
+ 0x00b01bf5,
+ 0x76bb0005,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
- 0xb600071d,
+ 0xb6000796,
0x11f50464,
- 0x010500a9,
- 0xb60076bb,
- 0x50f90465,
- 0xbb046594,
- 0x50bd0256,
- 0xfc0475fd,
- 0x07777e50,
- 0x0464b600,
- 0x008711f5,
- 0xb60076bb,
- 0x50f90465,
- 0xbb046594,
- 0x50bd0256,
- 0xfc0475fd,
- 0x06ce7e50,
- 0x0464b600,
- 0xcb6711f4,
- 0x76bbe05b,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0x7e50fc04,
- 0xb600061a,
- 0x5bb20464,
- 0x0ef474bd,
-/* 0x08f1: i2c_recv_not_rd08 */
- 0x01d6b041,
- 0x053b1bf4,
- 0x07777e00,
- 0x3211f400,
- 0x7ee0c5c7,
- 0xf400071d,
- 0x00052811,
- 0x0007777e,
- 0xc71f11f4,
- 0x1d7ee0b5,
+ 0xc5c700cc,
+ 0x0076bbe0,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x3c7e50fc,
+ 0x64b60007,
+ 0xa911f504,
+ 0xbb010500,
+ 0x65b60076,
+ 0x9450f904,
+ 0x56bb0465,
+ 0xfd50bd02,
+ 0x50fc0475,
+ 0x0007967e,
+ 0xf50464b6,
+ 0xbb008711,
+ 0x65b60076,
+ 0x9450f904,
+ 0x56bb0465,
+ 0xfd50bd02,
+ 0x50fc0475,
+ 0x0006ed7e,
+ 0xf40464b6,
+ 0x5bcb6711,
+ 0x0076bbe0,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x397e50fc,
+ 0x64b60006,
+ 0xbd5bb204,
+ 0x410ef474,
+/* 0x0910: i2c_recv_not_rd08 */
+ 0xf401d6b0,
+ 0x00053b1b,
+ 0x0007967e,
+ 0xc73211f4,
+ 0x3c7ee0c5,
0x11f40007,
- 0x061a7e15,
- 0xc774bd00,
- 0x1bf408c5,
- 0x0232f409,
-/* 0x092f: i2c_recv_not_wr08 */
-/* 0x092f: i2c_recv_done */
- 0xc7030ef4,
- 0xdb7ef8ce,
- 0xe0fc0007,
- 0x12f4d0fc,
- 0x7e7cb209,
-/* 0x0943: i2c_recv_exit */
- 0xf80002c2,
-/* 0x0945: i2c_init */
-/* 0x0947: test_recv */
- 0x4100f800,
- 0x11cf0458,
+ 0x7e000528,
+ 0xf4000796,
+ 0xb5c71f11,
+ 0x073c7ee0,
+ 0x1511f400,
+ 0x0006397e,
+ 0xc5c774bd,
+ 0x091bf408,
+ 0xf40232f4,
+/* 0x094e: i2c_recv_not_wr08 */
+/* 0x094e: i2c_recv_done */
+ 0xcec7030e,
+ 0x07fa7ef8,
+ 0xfce0fc00,
+ 0x0912f4d0,
+ 0xc27e7cb2,
+/* 0x0962: i2c_recv_exit */
+ 0x00f80002,
+/* 0x0964: i2c_init */
+/* 0x0966: test_recv */
+ 0x584100f8,
+ 0x0011cf04,
+ 0x400110b6,
+ 0x01f60458,
+ 0xf104bd00,
+ 0xf1d900e7,
+ 0x7e134fe3,
+ 0xf8000201,
+/* 0x0985: test_init */
+ 0x08004e00,
+ 0x0002017e,
+/* 0x098e: idle_recv */
+ 0x00f800f8,
+/* 0x0990: idle */
+ 0x410031f4,
+ 0x11cf0454,
0x0110b600,
- 0xf6045840,
+ 0xf6045440,
0x04bd0001,
- 0xd900e7f1,
- 0x134fe3f1,
- 0x0002017e,
-/* 0x0966: test_init */
- 0x004e00f8,
- 0x02017e08,
-/* 0x096f: idle_recv */
- 0xf800f800,
-/* 0x0971: idle */
- 0x0031f400,
- 0xcf045441,
- 0x10b60011,
- 0x04544001,
- 0xbd0001f6,
-/* 0x0985: idle_loop */
- 0xf4580104,
-/* 0x098a: idle_proc */
-/* 0x098a: idle_proc_exec */
- 0x10f90232,
- 0xcb7e1eb2,
- 0x10fc0002,
- 0xf40911f4,
- 0x0ef40231,
-/* 0x099d: idle_proc_next */
- 0x5810b6f0,
- 0x1bf41fa6,
- 0xe002f4e8,
- 0xf40028f4,
- 0x0000c60e,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
+/* 0x09a4: idle_loop */
+ 0x32f45801,
+/* 0x09a9: idle_proc */
+/* 0x09a9: idle_proc_exec */
+ 0xb210f902,
+ 0x02cb7e1e,
+ 0xf410fc00,
+ 0x31f40911,
+ 0xf00ef402,
+/* 0x09bc: idle_proc_next */
+ 0xa65810b6,
+ 0xe81bf41f,
+ 0xf4e002f4,
+ 0x0ef40028,
+ 0x000000c6,
0x00000000,
0x00000000,
0x00000000,
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h
index d0e5a7b5dfb5..bbfd50299e0e 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h
+++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h
@@ -46,8 +46,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x584d454d,
- 0x00000660,
- 0x00000652,
+ 0x0000068b,
+ 0x0000067d,
0x00000000,
0x00000000,
0x00000000,
@@ -68,8 +68,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x46524550,
- 0x00000664,
- 0x00000662,
+ 0x0000068f,
+ 0x0000068d,
0x00000000,
0x00000000,
0x00000000,
@@ -90,8 +90,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x5f433249,
- 0x00000a94,
- 0x00000937,
+ 0x00000abf,
+ 0x00000962,
0x00000000,
0x00000000,
0x00000000,
@@ -112,8 +112,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x54534554,
- 0x00000abd,
- 0x00000a96,
+ 0x00000ae8,
+ 0x00000ac1,
0x00000000,
0x00000000,
0x00000000,
@@ -134,8 +134,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x454c4449,
- 0x00000ac9,
- 0x00000ac7,
+ 0x00000af4,
+ 0x00000af2,
0x00000000,
0x00000000,
0x00000000,
@@ -233,23 +233,25 @@ uint32_t nva3_pwr_data[] = {
/* 0x037c: memx_func_next */
0x00000001,
0x00000000,
- 0x00000572,
+ 0x0000057e,
0x00000002,
0x00000002,
- 0x000005d5,
+ 0x000005ed,
0x00040003,
0x00000000,
- 0x000005f1,
+ 0x00000609,
0x00010004,
0x00000000,
- 0x0000060e,
+ 0x00000626,
0x00010005,
0x00000000,
- 0x00000593,
+ 0x000005ab,
/* 0x03b8: memx_func_tail */
-/* 0x03b8: memx_data_head */
+/* 0x03b8: memx_ts_start */
0x00000000,
+/* 0x03bc: memx_ts_end */
0x00000000,
+/* 0x03c0: memx_data_head */
0x00000000,
0x00000000,
0x00000000,
@@ -760,8 +762,10 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x00000000,
-/* 0x0bb8: memx_data_tail */
-/* 0x0bb8: i2c_scl_map */
+ 0x00000000,
+ 0x00000000,
+/* 0x0bc0: memx_data_tail */
+/* 0x0bc0: i2c_scl_map */
0x00001000,
0x00004000,
0x00010000,
@@ -772,7 +776,7 @@ uint32_t nva3_pwr_data[] = {
0x01000000,
0x04000000,
0x10000000,
-/* 0x0be0: i2c_sda_map */
+/* 0x0be8: i2c_sda_map */
0x00002000,
0x00008000,
0x00020000,
@@ -783,7 +787,7 @@ uint32_t nva3_pwr_data[] = {
0x02000000,
0x08000000,
0x20000000,
-/* 0x0c08: i2c_ctrl */
+/* 0x0c10: i2c_ctrl */
0x0000e138,
0x0000e150,
0x0000e168,
@@ -844,8 +848,6 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x00000000,
- 0x00000000,
- 0x00000000,
};
uint32_t nva3_pwr_code[] = {
@@ -1243,40 +1245,46 @@ uint32_t nva3_pwr_code[] = {
0xcf0664b6,
0x64f00066,
0xf30bf404,
-/* 0x0572: memx_func_leave */
+ 0xb62c67f0,
+ 0x66cf0664,
+ 0xee068000,
+/* 0x057e: memx_func_leave */
0x67f000f8,
+ 0x0664b62c,
+ 0x800066cf,
+ 0x67f0ef06,
0xe407f104,
0x0604b607,
0xbd0006d0,
-/* 0x0581: memx_func_leave_wait */
+/* 0x0599: memx_func_leave_wait */
0xc067f104,
0x0664b607,
0xf00066cf,
0x1bf40464,
-/* 0x0593: memx_func_wait_vblank */
+/* 0x05ab: memx_func_wait_vblank */
0x9800f8f3,
0x66b00016,
0x130bf400,
0xf40166b0,
0x0ef4060b,
-/* 0x05a5: memx_func_wait_vblank_head1 */
+/* 0x05bd: memx_func_wait_vblank_head1 */
0x2077f12e,
0x070ef400,
-/* 0x05ac: memx_func_wait_vblank_head0 */
+/* 0x05c4: memx_func_wait_vblank_head0 */
0x000877f1,
-/* 0x05b0: memx_func_wait_vblank_0 */
+/* 0x05c8: memx_func_wait_vblank_0 */
0x07c467f1,
0xcf0664b6,
0x67fd0066,
0xf31bf404,
-/* 0x05c0: memx_func_wait_vblank_1 */
+/* 0x05d8: memx_func_wait_vblank_1 */
0x07c467f1,
0xcf0664b6,
0x67fd0066,
0xf30bf404,
-/* 0x05d0: memx_func_wait_vblank_fini */
+/* 0x05e8: memx_func_wait_vblank_fini */
0xf80410b6,
-/* 0x05d5: memx_func_wr32 */
+/* 0x05ed: memx_func_wr32 */
0x00169800,
0xb6011598,
0x60f90810,
@@ -1284,7 +1292,7 @@ uint32_t nva3_pwr_code[] = {
0x21f4e0fc,
0x0242b63f,
0xf8e91bf4,
-/* 0x05f1: memx_func_wait */
+/* 0x0609: memx_func_wait */
0x2c87f000,
0xcf0684b6,
0x1e980088,
@@ -1292,391 +1300,385 @@ uint32_t nva3_pwr_code[] = {
0x98021c98,
0x10b6031b,
0xa421f410,
-/* 0x060e: memx_func_delay */
+/* 0x0626: memx_func_delay */
0x1e9800f8,
0x0410b600,
0xf87f21f4,
-/* 0x0619: memx_exec */
+/* 0x0631: memx_exec */
0xf9e0f900,
0x02c1b9d0,
-/* 0x0623: memx_exec_next */
+/* 0x063b: memx_exec_next */
0x9802b2b9,
0x10b60013,
0x10349504,
0x980c30f0,
0x55f9de35,
0xf40612b8,
- 0xd0fcec1e,
- 0x21f5e0fc,
- 0x00f80342,
-/* 0x0644: memx_info */
- 0x03b8c7f1,
- 0x0800b7f1,
- 0x034221f5,
-/* 0x0652: memx_recv */
- 0xd6b000f8,
- 0xc40bf401,
- 0xf400d6b0,
- 0x00f8e90b,
-/* 0x0660: memx_init */
-/* 0x0662: perf_recv */
- 0x00f800f8,
-/* 0x0664: perf_init */
-/* 0x0666: i2c_drive_scl */
- 0x36b000f8,
- 0x110bf400,
- 0x07e007f1,
- 0xd00604b6,
- 0x04bd0001,
-/* 0x067a: i2c_drive_scl_lo */
- 0x07f100f8,
- 0x04b607e4,
- 0x0001d006,
- 0x00f804bd,
-/* 0x0688: i2c_drive_sda */
- 0xf40036b0,
- 0x07f1110b,
- 0x04b607e0,
- 0x0002d006,
- 0x00f804bd,
-/* 0x069c: i2c_drive_sda_lo */
- 0x07e407f1,
- 0xd00604b6,
- 0x04bd0002,
-/* 0x06aa: i2c_sense_scl */
- 0x32f400f8,
- 0xc437f101,
- 0x0634b607,
- 0xfd0033cf,
- 0x0bf40431,
- 0x0131f406,
-/* 0x06c0: i2c_sense_scl_done */
-/* 0x06c2: i2c_sense_sda */
- 0x32f400f8,
- 0xc437f101,
- 0x0634b607,
- 0xfd0033cf,
- 0x0bf40432,
- 0x0131f406,
-/* 0x06d8: i2c_sense_sda_done */
-/* 0x06da: i2c_raise_scl */
- 0x40f900f8,
- 0x089847f1,
- 0xf50137f0,
-/* 0x06e7: i2c_raise_scl_wait */
- 0xf1066621,
- 0xf403e8e7,
- 0x21f57f21,
- 0x01f406aa,
- 0x0142b609,
-/* 0x06fb: i2c_raise_scl_done */
- 0xfcef1bf4,
-/* 0x06ff: i2c_start */
- 0xf500f840,
- 0xf406aa21,
- 0x21f50d11,
- 0x11f406c2,
- 0x300ef406,
-/* 0x0710: i2c_start_rep */
- 0xf50037f0,
- 0xf0066621,
+ 0x0b98ec1e,
+ 0xef0c98ee,
+ 0xf102cbbb,
+ 0xb607c4b7,
+ 0xbbcf06b4,
+ 0xfcd0fc00,
+ 0x4221f5e0,
+/* 0x066f: memx_info */
+ 0xf100f803,
+ 0xf103c0c7,
+ 0xf50800b7,
+ 0xf8034221,
+/* 0x067d: memx_recv */
+ 0x01d6b000,
+ 0xb0b10bf4,
+ 0x0bf400d6,
+/* 0x068b: memx_init */
+ 0xf800f8e9,
+/* 0x068d: perf_recv */
+/* 0x068f: perf_init */
+ 0xf800f800,
+/* 0x0691: i2c_drive_scl */
+ 0x0036b000,
+ 0xf1110bf4,
+ 0xb607e007,
+ 0x01d00604,
+ 0xf804bd00,
+/* 0x06a5: i2c_drive_scl_lo */
+ 0xe407f100,
+ 0x0604b607,
+ 0xbd0001d0,
+/* 0x06b3: i2c_drive_sda */
+ 0xb000f804,
+ 0x0bf40036,
+ 0xe007f111,
+ 0x0604b607,
+ 0xbd0002d0,
+/* 0x06c7: i2c_drive_sda_lo */
+ 0xf100f804,
+ 0xb607e407,
+ 0x02d00604,
+ 0xf804bd00,
+/* 0x06d5: i2c_sense_scl */
+ 0x0132f400,
+ 0x07c437f1,
+ 0xcf0634b6,
+ 0x31fd0033,
+ 0x060bf404,
+/* 0x06eb: i2c_sense_scl_done */
+ 0xf80131f4,
+/* 0x06ed: i2c_sense_sda */
+ 0x0132f400,
+ 0x07c437f1,
+ 0xcf0634b6,
+ 0x32fd0033,
+ 0x060bf404,
+/* 0x0703: i2c_sense_sda_done */
+ 0xf80131f4,
+/* 0x0705: i2c_raise_scl */
+ 0xf140f900,
+ 0xf0089847,
0x21f50137,
- 0x76bb0688,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb606da21,
- 0x11f40464,
-/* 0x073d: i2c_start_send */
- 0x0037f01f,
- 0x068821f5,
- 0x1388e7f1,
- 0xf07f21f4,
+/* 0x0712: i2c_raise_scl_wait */
+ 0xe7f10691,
+ 0x21f403e8,
+ 0xd521f57f,
+ 0x0901f406,
+ 0xf40142b6,
+/* 0x0726: i2c_raise_scl_done */
+ 0x40fcef1b,
+/* 0x072a: i2c_start */
+ 0x21f500f8,
+ 0x11f406d5,
+ 0xed21f50d,
+ 0x0611f406,
+/* 0x073b: i2c_start_rep */
+ 0xf0300ef4,
0x21f50037,
- 0xe7f10666,
+ 0x37f00691,
+ 0xb321f501,
+ 0x0076bb06,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x21f550fc,
+ 0x64b60705,
+ 0x1f11f404,
+/* 0x0768: i2c_start_send */
+ 0xf50037f0,
+ 0xf106b321,
+ 0xf41388e7,
+ 0x37f07f21,
+ 0x9121f500,
+ 0x88e7f106,
+ 0x7f21f413,
+/* 0x0784: i2c_start_out */
+/* 0x0786: i2c_stop */
+ 0x37f000f8,
+ 0x9121f500,
+ 0x0037f006,
+ 0x06b321f5,
+ 0x03e8e7f1,
+ 0xf07f21f4,
+ 0x21f50137,
+ 0xe7f10691,
0x21f41388,
-/* 0x0759: i2c_start_out */
-/* 0x075b: i2c_stop */
- 0xf000f87f,
- 0x21f50037,
- 0x37f00666,
- 0x8821f500,
+ 0x0137f07f,
+ 0x06b321f5,
+ 0x1388e7f1,
+ 0xf87f21f4,
+/* 0x07b9: i2c_bitw */
+ 0xb321f500,
0xe8e7f106,
0x7f21f403,
- 0xf50137f0,
- 0xf1066621,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x0521f550,
+ 0x0464b607,
+ 0xf11811f4,
0xf41388e7,
0x37f07f21,
- 0x8821f501,
+ 0x9121f500,
0x88e7f106,
0x7f21f413,
-/* 0x078e: i2c_bitw */
- 0x21f500f8,
- 0xe7f10688,
- 0x21f403e8,
- 0x0076bb7f,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b606da,
- 0x1811f404,
- 0x1388e7f1,
- 0xf07f21f4,
+/* 0x07f8: i2c_bitw_out */
+/* 0x07fa: i2c_bitr */
+ 0x37f000f8,
+ 0xb321f501,
+ 0xe8e7f106,
+ 0x7f21f403,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x0521f550,
+ 0x0464b607,
+ 0xf51b11f4,
+ 0xf006ed21,
0x21f50037,
- 0xe7f10666,
+ 0xe7f10691,
0x21f41388,
-/* 0x07cd: i2c_bitw_out */
-/* 0x07cf: i2c_bitr */
- 0xf000f87f,
- 0x21f50137,
- 0xe7f10688,
- 0x21f403e8,
- 0x0076bb7f,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b606da,
- 0x1b11f404,
- 0x06c221f5,
- 0xf50037f0,
- 0xf1066621,
- 0xf41388e7,
- 0x3cf07f21,
- 0x0131f401,
-/* 0x0814: i2c_bitr_done */
-/* 0x0816: i2c_get_byte */
- 0x57f000f8,
- 0x0847f000,
-/* 0x081c: i2c_get_byte_next */
- 0xbb0154b6,
- 0x65b60076,
- 0x9450f904,
- 0x56bb0465,
- 0xfd50bd02,
- 0x50fc0475,
- 0x07cf21f5,
- 0xf40464b6,
- 0x53fd2b11,
- 0x0142b605,
- 0xf0d81bf4,
- 0x76bb0137,
+ 0x013cf07f,
+/* 0x083f: i2c_bitr_done */
+ 0xf80131f4,
+/* 0x0841: i2c_get_byte */
+ 0x0057f000,
+/* 0x0847: i2c_get_byte_next */
+ 0xb60847f0,
+ 0x76bb0154,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb6078e21,
-/* 0x0866: i2c_get_byte_done */
- 0x00f80464,
-/* 0x0868: i2c_put_byte */
-/* 0x086b: i2c_put_byte_next */
- 0xb60847f0,
- 0x54ff0142,
- 0x0076bb38,
+ 0xb607fa21,
+ 0x11f40464,
+ 0x0553fd2b,
+ 0xf40142b6,
+ 0x37f0d81b,
+ 0x0076bb01,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x21f550fc,
+ 0x64b607b9,
+/* 0x0891: i2c_get_byte_done */
+/* 0x0893: i2c_put_byte */
+ 0xf000f804,
+/* 0x0896: i2c_put_byte_next */
+ 0x42b60847,
+ 0x3854ff01,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0xb921f550,
+ 0x0464b607,
+ 0xb03411f4,
+ 0x1bf40046,
+ 0x0076bbd8,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b6078e,
- 0x3411f404,
- 0xf40046b0,
- 0x76bbd81b,
+ 0x64b607fa,
+ 0x0f11f404,
+ 0xb00076bb,
+ 0x1bf40136,
+ 0x0132f406,
+/* 0x08ec: i2c_put_byte_done */
+/* 0x08ee: i2c_addr */
+ 0x76bb00f8,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb607cf21,
+ 0xb6072a21,
0x11f40464,
- 0x0076bb0f,
- 0xf40136b0,
- 0x32f4061b,
-/* 0x08c1: i2c_put_byte_done */
-/* 0x08c3: i2c_addr */
- 0xbb00f801,
+ 0x2ec3e729,
+ 0x0134b601,
+ 0xbb0553fd,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x06ff21f5,
- 0xf40464b6,
- 0xc3e72911,
- 0x34b6012e,
- 0x0553fd01,
+ 0x089321f5,
+/* 0x0933: i2c_addr_done */
+ 0xf80464b6,
+/* 0x0935: i2c_acquire_addr */
+ 0xf8cec700,
+ 0xb702e4b6,
+ 0x980c10e0,
+ 0x00f800ee,
+/* 0x0944: i2c_acquire */
+ 0x093521f5,
+ 0xf00421f4,
+ 0x21f403d9,
+/* 0x0953: i2c_release */
+ 0xf500f83f,
+ 0xf4093521,
+ 0xdaf00421,
+ 0x3f21f403,
+/* 0x0962: i2c_recv */
+ 0x32f400f8,
+ 0xf8c1c701,
+ 0xb00214b6,
+ 0x1ff52816,
+ 0x13a0013a,
+ 0x32980be8,
+ 0xc013a000,
+ 0x0031980b,
+ 0xf90231f4,
+ 0xf9e0f9d0,
+ 0x0067f1d0,
+ 0x0063f100,
+ 0x01679210,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x6821f550,
- 0x0464b608,
-/* 0x0908: i2c_addr_done */
-/* 0x090a: i2c_acquire_addr */
- 0xcec700f8,
- 0x02e4b6f8,
- 0x0c08e0b7,
- 0xf800ee98,
-/* 0x0919: i2c_acquire */
- 0x0a21f500,
- 0x0421f409,
- 0xf403d9f0,
- 0x00f83f21,
-/* 0x0928: i2c_release */
- 0x090a21f5,
- 0xf00421f4,
- 0x21f403da,
-/* 0x0937: i2c_recv */
- 0xf400f83f,
- 0xc1c70132,
- 0x0214b6f8,
- 0xf52816b0,
- 0xa0013a1f,
- 0x980be013,
- 0x13a00032,
- 0x31980bb8,
- 0x0231f400,
- 0xe0f9d0f9,
- 0x67f1d0f9,
- 0x63f10000,
- 0x67921000,
- 0x0076bb01,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b60919,
- 0xb0d0fc04,
- 0x1bf500d6,
- 0x57f000b3,
- 0x0076bb00,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b608c3,
- 0xd011f504,
- 0xe0c5c700,
+ 0x4421f550,
+ 0x0464b609,
+ 0xd6b0d0fc,
+ 0xb31bf500,
+ 0x0057f000,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x6821f550,
+ 0xee21f550,
0x0464b608,
- 0x00ad11f5,
- 0xbb0157f0,
+ 0x00d011f5,
+ 0xbbe0c5c7,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x08c321f5,
+ 0x089321f5,
0xf50464b6,
- 0xbb008a11,
- 0x65b60076,
- 0x9450f904,
- 0x56bb0465,
- 0xfd50bd02,
- 0x50fc0475,
- 0x081621f5,
- 0xf40464b6,
- 0x5bcb6a11,
- 0x0076bbe0,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b6075b,
- 0x025bb904,
- 0x0ef474bd,
-/* 0x0a3d: i2c_recv_not_rd08 */
- 0x01d6b043,
- 0xf03d1bf4,
- 0x21f50057,
- 0x11f408c3,
- 0xe0c5c733,
- 0x086821f5,
- 0xf02911f4,
- 0x21f50057,
- 0x11f408c3,
- 0xe0b5c71f,
- 0x086821f5,
- 0xf51511f4,
- 0xbd075b21,
- 0x08c5c774,
- 0xf4091bf4,
- 0x0ef40232,
-/* 0x0a7d: i2c_recv_not_wr08 */
-/* 0x0a7d: i2c_recv_done */
- 0xf8cec703,
- 0x092821f5,
- 0xd0fce0fc,
- 0xb90a12f4,
- 0x21f5027c,
-/* 0x0a92: i2c_recv_exit */
- 0x00f80342,
-/* 0x0a94: i2c_init */
-/* 0x0a96: test_recv */
- 0x17f100f8,
- 0x14b605d8,
- 0x0011cf06,
- 0xf10110b6,
- 0xb605d807,
- 0x01d00604,
- 0xf104bd00,
- 0xf1d900e7,
- 0xf5134fe3,
- 0xf8026221,
-/* 0x0abd: test_init */
- 0x00e7f100,
- 0x6221f508,
-/* 0x0ac7: idle_recv */
- 0xf800f802,
-/* 0x0ac9: idle */
- 0x0031f400,
- 0x05d417f1,
- 0xcf0614b6,
- 0x10b60011,
- 0xd407f101,
- 0x0604b605,
- 0xbd0001d0,
-/* 0x0ae5: idle_loop */
- 0x5817f004,
-/* 0x0aeb: idle_proc */
-/* 0x0aeb: idle_proc_exec */
- 0xf90232f4,
- 0x021eb910,
- 0x034b21f5,
- 0x11f410fc,
- 0x0231f409,
-/* 0x0aff: idle_proc_next */
- 0xb6ef0ef4,
- 0x1fb85810,
- 0xe61bf406,
- 0xf4dd02f4,
- 0x0ef40028,
- 0x000000bb,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
+ 0xf000ad11,
+ 0x76bb0157,
+ 0x0465b600,
+ 0x659450f9,
+ 0x0256bb04,
+ 0x75fd50bd,
+ 0xf550fc04,
+ 0xb608ee21,
+ 0x11f50464,
+ 0x76bb008a,
+ 0x0465b600,
+ 0x659450f9,
+ 0x0256bb04,
+ 0x75fd50bd,
+ 0xf550fc04,
+ 0xb6084121,
+ 0x11f40464,
+ 0xe05bcb6a,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x8621f550,
+ 0x0464b607,
+ 0xbd025bb9,
+ 0x430ef474,
+/* 0x0a68: i2c_recv_not_rd08 */
+ 0xf401d6b0,
+ 0x57f03d1b,
+ 0xee21f500,
+ 0x3311f408,
+ 0xf5e0c5c7,
+ 0xf4089321,
+ 0x57f02911,
+ 0xee21f500,
+ 0x1f11f408,
+ 0xf5e0b5c7,
+ 0xf4089321,
+ 0x21f51511,
+ 0x74bd0786,
+ 0xf408c5c7,
+ 0x32f4091b,
+ 0x030ef402,
+/* 0x0aa8: i2c_recv_not_wr08 */
+/* 0x0aa8: i2c_recv_done */
+ 0xf5f8cec7,
+ 0xfc095321,
+ 0xf4d0fce0,
+ 0x7cb90a12,
+ 0x4221f502,
+/* 0x0abd: i2c_recv_exit */
+/* 0x0abf: i2c_init */
+ 0xf800f803,
+/* 0x0ac1: test_recv */
+ 0xd817f100,
+ 0x0614b605,
+ 0xb60011cf,
+ 0x07f10110,
+ 0x04b605d8,
+ 0x0001d006,
+ 0xe7f104bd,
+ 0xe3f1d900,
+ 0x21f5134f,
+ 0x00f80262,
+/* 0x0ae8: test_init */
+ 0x0800e7f1,
+ 0x026221f5,
+/* 0x0af2: idle_recv */
+ 0x00f800f8,
+/* 0x0af4: idle */
+ 0xf10031f4,
+ 0xb605d417,
+ 0x11cf0614,
+ 0x0110b600,
+ 0x05d407f1,
+ 0xd00604b6,
+ 0x04bd0001,
+/* 0x0b10: idle_loop */
+ 0xf45817f0,
+/* 0x0b16: idle_proc */
+/* 0x0b16: idle_proc_exec */
+ 0x10f90232,
+ 0xf5021eb9,
+ 0xfc034b21,
+ 0x0911f410,
+ 0xf40231f4,
+/* 0x0b2a: idle_proc_next */
+ 0x10b6ef0e,
+ 0x061fb858,
+ 0xf4e61bf4,
+ 0x28f4dd02,
+ 0xbb0ef400,
0x00000000,
0x00000000,
0x00000000,
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h
index cbc9bde2b702..6a9c719551dc 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h
+++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h
@@ -46,8 +46,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x584d454d,
- 0x00000660,
- 0x00000652,
+ 0x0000068b,
+ 0x0000067d,
0x00000000,
0x00000000,
0x00000000,
@@ -68,8 +68,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x46524550,
- 0x00000664,
- 0x00000662,
+ 0x0000068f,
+ 0x0000068d,
0x00000000,
0x00000000,
0x00000000,
@@ -90,8 +90,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x5f433249,
- 0x00000a94,
- 0x00000937,
+ 0x00000abf,
+ 0x00000962,
0x00000000,
0x00000000,
0x00000000,
@@ -112,8 +112,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x54534554,
- 0x00000abd,
- 0x00000a96,
+ 0x00000ae8,
+ 0x00000ac1,
0x00000000,
0x00000000,
0x00000000,
@@ -134,8 +134,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x454c4449,
- 0x00000ac9,
- 0x00000ac7,
+ 0x00000af4,
+ 0x00000af2,
0x00000000,
0x00000000,
0x00000000,
@@ -233,23 +233,25 @@ uint32_t nvc0_pwr_data[] = {
/* 0x037c: memx_func_next */
0x00000001,
0x00000000,
- 0x00000572,
+ 0x0000057e,
0x00000002,
0x00000002,
- 0x000005d5,
+ 0x000005ed,
0x00040003,
0x00000000,
- 0x000005f1,
+ 0x00000609,
0x00010004,
0x00000000,
- 0x0000060e,
+ 0x00000626,
0x00010005,
0x00000000,
- 0x00000593,
+ 0x000005ab,
/* 0x03b8: memx_func_tail */
-/* 0x03b8: memx_data_head */
+/* 0x03b8: memx_ts_start */
0x00000000,
+/* 0x03bc: memx_ts_end */
0x00000000,
+/* 0x03c0: memx_data_head */
0x00000000,
0x00000000,
0x00000000,
@@ -760,8 +762,10 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x00000000,
-/* 0x0bb8: memx_data_tail */
-/* 0x0bb8: i2c_scl_map */
+ 0x00000000,
+ 0x00000000,
+/* 0x0bc0: memx_data_tail */
+/* 0x0bc0: i2c_scl_map */
0x00001000,
0x00004000,
0x00010000,
@@ -772,7 +776,7 @@ uint32_t nvc0_pwr_data[] = {
0x01000000,
0x04000000,
0x10000000,
-/* 0x0be0: i2c_sda_map */
+/* 0x0be8: i2c_sda_map */
0x00002000,
0x00008000,
0x00020000,
@@ -783,7 +787,7 @@ uint32_t nvc0_pwr_data[] = {
0x02000000,
0x08000000,
0x20000000,
-/* 0x0c08: i2c_ctrl */
+/* 0x0c10: i2c_ctrl */
0x0000e138,
0x0000e150,
0x0000e168,
@@ -844,8 +848,6 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x00000000,
- 0x00000000,
- 0x00000000,
};
uint32_t nvc0_pwr_code[] = {
@@ -1243,40 +1245,46 @@ uint32_t nvc0_pwr_code[] = {
0xcf0664b6,
0x64f00066,
0xf30bf404,
-/* 0x0572: memx_func_leave */
+ 0xb62c67f0,
+ 0x66cf0664,
+ 0xee068000,
+/* 0x057e: memx_func_leave */
0x67f000f8,
+ 0x0664b62c,
+ 0x800066cf,
+ 0x67f0ef06,
0xe407f104,
0x0604b607,
0xbd0006d0,
-/* 0x0581: memx_func_leave_wait */
+/* 0x0599: memx_func_leave_wait */
0xc067f104,
0x0664b607,
0xf00066cf,
0x1bf40464,
-/* 0x0593: memx_func_wait_vblank */
+/* 0x05ab: memx_func_wait_vblank */
0x9800f8f3,
0x66b00016,
0x130bf400,
0xf40166b0,
0x0ef4060b,
-/* 0x05a5: memx_func_wait_vblank_head1 */
+/* 0x05bd: memx_func_wait_vblank_head1 */
0x2077f12e,
0x070ef400,
-/* 0x05ac: memx_func_wait_vblank_head0 */
+/* 0x05c4: memx_func_wait_vblank_head0 */
0x000877f1,
-/* 0x05b0: memx_func_wait_vblank_0 */
+/* 0x05c8: memx_func_wait_vblank_0 */
0x07c467f1,
0xcf0664b6,
0x67fd0066,
0xf31bf404,
-/* 0x05c0: memx_func_wait_vblank_1 */
+/* 0x05d8: memx_func_wait_vblank_1 */
0x07c467f1,
0xcf0664b6,
0x67fd0066,
0xf30bf404,
-/* 0x05d0: memx_func_wait_vblank_fini */
+/* 0x05e8: memx_func_wait_vblank_fini */
0xf80410b6,
-/* 0x05d5: memx_func_wr32 */
+/* 0x05ed: memx_func_wr32 */
0x00169800,
0xb6011598,
0x60f90810,
@@ -1284,7 +1292,7 @@ uint32_t nvc0_pwr_code[] = {
0x21f4e0fc,
0x0242b63f,
0xf8e91bf4,
-/* 0x05f1: memx_func_wait */
+/* 0x0609: memx_func_wait */
0x2c87f000,
0xcf0684b6,
0x1e980088,
@@ -1292,391 +1300,385 @@ uint32_t nvc0_pwr_code[] = {
0x98021c98,
0x10b6031b,
0xa421f410,
-/* 0x060e: memx_func_delay */
+/* 0x0626: memx_func_delay */
0x1e9800f8,
0x0410b600,
0xf87f21f4,
-/* 0x0619: memx_exec */
+/* 0x0631: memx_exec */
0xf9e0f900,
0x02c1b9d0,
-/* 0x0623: memx_exec_next */
+/* 0x063b: memx_exec_next */
0x9802b2b9,
0x10b60013,
0x10349504,
0x980c30f0,
0x55f9de35,
0xf40612b8,
- 0xd0fcec1e,
- 0x21f5e0fc,
- 0x00f80342,
-/* 0x0644: memx_info */
- 0x03b8c7f1,
- 0x0800b7f1,
- 0x034221f5,
-/* 0x0652: memx_recv */
- 0xd6b000f8,
- 0xc40bf401,
- 0xf400d6b0,
- 0x00f8e90b,
-/* 0x0660: memx_init */
-/* 0x0662: perf_recv */
- 0x00f800f8,
-/* 0x0664: perf_init */
-/* 0x0666: i2c_drive_scl */
- 0x36b000f8,
- 0x110bf400,
- 0x07e007f1,
- 0xd00604b6,
- 0x04bd0001,
-/* 0x067a: i2c_drive_scl_lo */
- 0x07f100f8,
- 0x04b607e4,
- 0x0001d006,
- 0x00f804bd,
-/* 0x0688: i2c_drive_sda */
- 0xf40036b0,
- 0x07f1110b,
- 0x04b607e0,
- 0x0002d006,
- 0x00f804bd,
-/* 0x069c: i2c_drive_sda_lo */
- 0x07e407f1,
- 0xd00604b6,
- 0x04bd0002,
-/* 0x06aa: i2c_sense_scl */
- 0x32f400f8,
- 0xc437f101,
- 0x0634b607,
- 0xfd0033cf,
- 0x0bf40431,
- 0x0131f406,
-/* 0x06c0: i2c_sense_scl_done */
-/* 0x06c2: i2c_sense_sda */
- 0x32f400f8,
- 0xc437f101,
- 0x0634b607,
- 0xfd0033cf,
- 0x0bf40432,
- 0x0131f406,
-/* 0x06d8: i2c_sense_sda_done */
-/* 0x06da: i2c_raise_scl */
- 0x40f900f8,
- 0x089847f1,
- 0xf50137f0,
-/* 0x06e7: i2c_raise_scl_wait */
- 0xf1066621,
- 0xf403e8e7,
- 0x21f57f21,
- 0x01f406aa,
- 0x0142b609,
-/* 0x06fb: i2c_raise_scl_done */
- 0xfcef1bf4,
-/* 0x06ff: i2c_start */
- 0xf500f840,
- 0xf406aa21,
- 0x21f50d11,
- 0x11f406c2,
- 0x300ef406,
-/* 0x0710: i2c_start_rep */
- 0xf50037f0,
- 0xf0066621,
+ 0x0b98ec1e,
+ 0xef0c98ee,
+ 0xf102cbbb,
+ 0xb607c4b7,
+ 0xbbcf06b4,
+ 0xfcd0fc00,
+ 0x4221f5e0,
+/* 0x066f: memx_info */
+ 0xf100f803,
+ 0xf103c0c7,
+ 0xf50800b7,
+ 0xf8034221,
+/* 0x067d: memx_recv */
+ 0x01d6b000,
+ 0xb0b10bf4,
+ 0x0bf400d6,
+/* 0x068b: memx_init */
+ 0xf800f8e9,
+/* 0x068d: perf_recv */
+/* 0x068f: perf_init */
+ 0xf800f800,
+/* 0x0691: i2c_drive_scl */
+ 0x0036b000,
+ 0xf1110bf4,
+ 0xb607e007,
+ 0x01d00604,
+ 0xf804bd00,
+/* 0x06a5: i2c_drive_scl_lo */
+ 0xe407f100,
+ 0x0604b607,
+ 0xbd0001d0,
+/* 0x06b3: i2c_drive_sda */
+ 0xb000f804,
+ 0x0bf40036,
+ 0xe007f111,
+ 0x0604b607,
+ 0xbd0002d0,
+/* 0x06c7: i2c_drive_sda_lo */
+ 0xf100f804,
+ 0xb607e407,
+ 0x02d00604,
+ 0xf804bd00,
+/* 0x06d5: i2c_sense_scl */
+ 0x0132f400,
+ 0x07c437f1,
+ 0xcf0634b6,
+ 0x31fd0033,
+ 0x060bf404,
+/* 0x06eb: i2c_sense_scl_done */
+ 0xf80131f4,
+/* 0x06ed: i2c_sense_sda */
+ 0x0132f400,
+ 0x07c437f1,
+ 0xcf0634b6,
+ 0x32fd0033,
+ 0x060bf404,
+/* 0x0703: i2c_sense_sda_done */
+ 0xf80131f4,
+/* 0x0705: i2c_raise_scl */
+ 0xf140f900,
+ 0xf0089847,
0x21f50137,
- 0x76bb0688,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb606da21,
- 0x11f40464,
-/* 0x073d: i2c_start_send */
- 0x0037f01f,
- 0x068821f5,
- 0x1388e7f1,
- 0xf07f21f4,
+/* 0x0712: i2c_raise_scl_wait */
+ 0xe7f10691,
+ 0x21f403e8,
+ 0xd521f57f,
+ 0x0901f406,
+ 0xf40142b6,
+/* 0x0726: i2c_raise_scl_done */
+ 0x40fcef1b,
+/* 0x072a: i2c_start */
+ 0x21f500f8,
+ 0x11f406d5,
+ 0xed21f50d,
+ 0x0611f406,
+/* 0x073b: i2c_start_rep */
+ 0xf0300ef4,
0x21f50037,
- 0xe7f10666,
+ 0x37f00691,
+ 0xb321f501,
+ 0x0076bb06,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x21f550fc,
+ 0x64b60705,
+ 0x1f11f404,
+/* 0x0768: i2c_start_send */
+ 0xf50037f0,
+ 0xf106b321,
+ 0xf41388e7,
+ 0x37f07f21,
+ 0x9121f500,
+ 0x88e7f106,
+ 0x7f21f413,
+/* 0x0784: i2c_start_out */
+/* 0x0786: i2c_stop */
+ 0x37f000f8,
+ 0x9121f500,
+ 0x0037f006,
+ 0x06b321f5,
+ 0x03e8e7f1,
+ 0xf07f21f4,
+ 0x21f50137,
+ 0xe7f10691,
0x21f41388,
-/* 0x0759: i2c_start_out */
-/* 0x075b: i2c_stop */
- 0xf000f87f,
- 0x21f50037,
- 0x37f00666,
- 0x8821f500,
+ 0x0137f07f,
+ 0x06b321f5,
+ 0x1388e7f1,
+ 0xf87f21f4,
+/* 0x07b9: i2c_bitw */
+ 0xb321f500,
0xe8e7f106,
0x7f21f403,
- 0xf50137f0,
- 0xf1066621,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x0521f550,
+ 0x0464b607,
+ 0xf11811f4,
0xf41388e7,
0x37f07f21,
- 0x8821f501,
+ 0x9121f500,
0x88e7f106,
0x7f21f413,
-/* 0x078e: i2c_bitw */
- 0x21f500f8,
- 0xe7f10688,
- 0x21f403e8,
- 0x0076bb7f,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b606da,
- 0x1811f404,
- 0x1388e7f1,
- 0xf07f21f4,
+/* 0x07f8: i2c_bitw_out */
+/* 0x07fa: i2c_bitr */
+ 0x37f000f8,
+ 0xb321f501,
+ 0xe8e7f106,
+ 0x7f21f403,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x0521f550,
+ 0x0464b607,
+ 0xf51b11f4,
+ 0xf006ed21,
0x21f50037,
- 0xe7f10666,
+ 0xe7f10691,
0x21f41388,
-/* 0x07cd: i2c_bitw_out */
-/* 0x07cf: i2c_bitr */
- 0xf000f87f,
- 0x21f50137,
- 0xe7f10688,
- 0x21f403e8,
- 0x0076bb7f,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b606da,
- 0x1b11f404,
- 0x06c221f5,
- 0xf50037f0,
- 0xf1066621,
- 0xf41388e7,
- 0x3cf07f21,
- 0x0131f401,
-/* 0x0814: i2c_bitr_done */
-/* 0x0816: i2c_get_byte */
- 0x57f000f8,
- 0x0847f000,
-/* 0x081c: i2c_get_byte_next */
- 0xbb0154b6,
- 0x65b60076,
- 0x9450f904,
- 0x56bb0465,
- 0xfd50bd02,
- 0x50fc0475,
- 0x07cf21f5,
- 0xf40464b6,
- 0x53fd2b11,
- 0x0142b605,
- 0xf0d81bf4,
- 0x76bb0137,
+ 0x013cf07f,
+/* 0x083f: i2c_bitr_done */
+ 0xf80131f4,
+/* 0x0841: i2c_get_byte */
+ 0x0057f000,
+/* 0x0847: i2c_get_byte_next */
+ 0xb60847f0,
+ 0x76bb0154,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb6078e21,
-/* 0x0866: i2c_get_byte_done */
- 0x00f80464,
-/* 0x0868: i2c_put_byte */
-/* 0x086b: i2c_put_byte_next */
- 0xb60847f0,
- 0x54ff0142,
- 0x0076bb38,
+ 0xb607fa21,
+ 0x11f40464,
+ 0x0553fd2b,
+ 0xf40142b6,
+ 0x37f0d81b,
+ 0x0076bb01,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x21f550fc,
+ 0x64b607b9,
+/* 0x0891: i2c_get_byte_done */
+/* 0x0893: i2c_put_byte */
+ 0xf000f804,
+/* 0x0896: i2c_put_byte_next */
+ 0x42b60847,
+ 0x3854ff01,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0xb921f550,
+ 0x0464b607,
+ 0xb03411f4,
+ 0x1bf40046,
+ 0x0076bbd8,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b6078e,
- 0x3411f404,
- 0xf40046b0,
- 0x76bbd81b,
+ 0x64b607fa,
+ 0x0f11f404,
+ 0xb00076bb,
+ 0x1bf40136,
+ 0x0132f406,
+/* 0x08ec: i2c_put_byte_done */
+/* 0x08ee: i2c_addr */
+ 0x76bb00f8,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb607cf21,
+ 0xb6072a21,
0x11f40464,
- 0x0076bb0f,
- 0xf40136b0,
- 0x32f4061b,
-/* 0x08c1: i2c_put_byte_done */
-/* 0x08c3: i2c_addr */
- 0xbb00f801,
+ 0x2ec3e729,
+ 0x0134b601,
+ 0xbb0553fd,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x06ff21f5,
- 0xf40464b6,
- 0xc3e72911,
- 0x34b6012e,
- 0x0553fd01,
+ 0x089321f5,
+/* 0x0933: i2c_addr_done */
+ 0xf80464b6,
+/* 0x0935: i2c_acquire_addr */
+ 0xf8cec700,
+ 0xb702e4b6,
+ 0x980c10e0,
+ 0x00f800ee,
+/* 0x0944: i2c_acquire */
+ 0x093521f5,
+ 0xf00421f4,
+ 0x21f403d9,
+/* 0x0953: i2c_release */
+ 0xf500f83f,
+ 0xf4093521,
+ 0xdaf00421,
+ 0x3f21f403,
+/* 0x0962: i2c_recv */
+ 0x32f400f8,
+ 0xf8c1c701,
+ 0xb00214b6,
+ 0x1ff52816,
+ 0x13a0013a,
+ 0x32980be8,
+ 0xc013a000,
+ 0x0031980b,
+ 0xf90231f4,
+ 0xf9e0f9d0,
+ 0x0067f1d0,
+ 0x0063f100,
+ 0x01679210,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x6821f550,
- 0x0464b608,
-/* 0x0908: i2c_addr_done */
-/* 0x090a: i2c_acquire_addr */
- 0xcec700f8,
- 0x02e4b6f8,
- 0x0c08e0b7,
- 0xf800ee98,
-/* 0x0919: i2c_acquire */
- 0x0a21f500,
- 0x0421f409,
- 0xf403d9f0,
- 0x00f83f21,
-/* 0x0928: i2c_release */
- 0x090a21f5,
- 0xf00421f4,
- 0x21f403da,
-/* 0x0937: i2c_recv */
- 0xf400f83f,
- 0xc1c70132,
- 0x0214b6f8,
- 0xf52816b0,
- 0xa0013a1f,
- 0x980be013,
- 0x13a00032,
- 0x31980bb8,
- 0x0231f400,
- 0xe0f9d0f9,
- 0x67f1d0f9,
- 0x63f10000,
- 0x67921000,
- 0x0076bb01,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b60919,
- 0xb0d0fc04,
- 0x1bf500d6,
- 0x57f000b3,
- 0x0076bb00,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b608c3,
- 0xd011f504,
- 0xe0c5c700,
+ 0x4421f550,
+ 0x0464b609,
+ 0xd6b0d0fc,
+ 0xb31bf500,
+ 0x0057f000,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x6821f550,
+ 0xee21f550,
0x0464b608,
- 0x00ad11f5,
- 0xbb0157f0,
+ 0x00d011f5,
+ 0xbbe0c5c7,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x08c321f5,
+ 0x089321f5,
0xf50464b6,
- 0xbb008a11,
- 0x65b60076,
- 0x9450f904,
- 0x56bb0465,
- 0xfd50bd02,
- 0x50fc0475,
- 0x081621f5,
- 0xf40464b6,
- 0x5bcb6a11,
- 0x0076bbe0,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b6075b,
- 0x025bb904,
- 0x0ef474bd,
-/* 0x0a3d: i2c_recv_not_rd08 */
- 0x01d6b043,
- 0xf03d1bf4,
- 0x21f50057,
- 0x11f408c3,
- 0xe0c5c733,
- 0x086821f5,
- 0xf02911f4,
- 0x21f50057,
- 0x11f408c3,
- 0xe0b5c71f,
- 0x086821f5,
- 0xf51511f4,
- 0xbd075b21,
- 0x08c5c774,
- 0xf4091bf4,
- 0x0ef40232,
-/* 0x0a7d: i2c_recv_not_wr08 */
-/* 0x0a7d: i2c_recv_done */
- 0xf8cec703,
- 0x092821f5,
- 0xd0fce0fc,
- 0xb90a12f4,
- 0x21f5027c,
-/* 0x0a92: i2c_recv_exit */
- 0x00f80342,
-/* 0x0a94: i2c_init */
-/* 0x0a96: test_recv */
- 0x17f100f8,
- 0x14b605d8,
- 0x0011cf06,
- 0xf10110b6,
- 0xb605d807,
- 0x01d00604,
- 0xf104bd00,
- 0xf1d900e7,
- 0xf5134fe3,
- 0xf8026221,
-/* 0x0abd: test_init */
- 0x00e7f100,
- 0x6221f508,
-/* 0x0ac7: idle_recv */
- 0xf800f802,
-/* 0x0ac9: idle */
- 0x0031f400,
- 0x05d417f1,
- 0xcf0614b6,
- 0x10b60011,
- 0xd407f101,
- 0x0604b605,
- 0xbd0001d0,
-/* 0x0ae5: idle_loop */
- 0x5817f004,
-/* 0x0aeb: idle_proc */
-/* 0x0aeb: idle_proc_exec */
- 0xf90232f4,
- 0x021eb910,
- 0x034b21f5,
- 0x11f410fc,
- 0x0231f409,
-/* 0x0aff: idle_proc_next */
- 0xb6ef0ef4,
- 0x1fb85810,
- 0xe61bf406,
- 0xf4dd02f4,
- 0x0ef40028,
- 0x000000bb,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
+ 0xf000ad11,
+ 0x76bb0157,
+ 0x0465b600,
+ 0x659450f9,
+ 0x0256bb04,
+ 0x75fd50bd,
+ 0xf550fc04,
+ 0xb608ee21,
+ 0x11f50464,
+ 0x76bb008a,
+ 0x0465b600,
+ 0x659450f9,
+ 0x0256bb04,
+ 0x75fd50bd,
+ 0xf550fc04,
+ 0xb6084121,
+ 0x11f40464,
+ 0xe05bcb6a,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x8621f550,
+ 0x0464b607,
+ 0xbd025bb9,
+ 0x430ef474,
+/* 0x0a68: i2c_recv_not_rd08 */
+ 0xf401d6b0,
+ 0x57f03d1b,
+ 0xee21f500,
+ 0x3311f408,
+ 0xf5e0c5c7,
+ 0xf4089321,
+ 0x57f02911,
+ 0xee21f500,
+ 0x1f11f408,
+ 0xf5e0b5c7,
+ 0xf4089321,
+ 0x21f51511,
+ 0x74bd0786,
+ 0xf408c5c7,
+ 0x32f4091b,
+ 0x030ef402,
+/* 0x0aa8: i2c_recv_not_wr08 */
+/* 0x0aa8: i2c_recv_done */
+ 0xf5f8cec7,
+ 0xfc095321,
+ 0xf4d0fce0,
+ 0x7cb90a12,
+ 0x4221f502,
+/* 0x0abd: i2c_recv_exit */
+/* 0x0abf: i2c_init */
+ 0xf800f803,
+/* 0x0ac1: test_recv */
+ 0xd817f100,
+ 0x0614b605,
+ 0xb60011cf,
+ 0x07f10110,
+ 0x04b605d8,
+ 0x0001d006,
+ 0xe7f104bd,
+ 0xe3f1d900,
+ 0x21f5134f,
+ 0x00f80262,
+/* 0x0ae8: test_init */
+ 0x0800e7f1,
+ 0x026221f5,
+/* 0x0af2: idle_recv */
+ 0x00f800f8,
+/* 0x0af4: idle */
+ 0xf10031f4,
+ 0xb605d417,
+ 0x11cf0614,
+ 0x0110b600,
+ 0x05d407f1,
+ 0xd00604b6,
+ 0x04bd0001,
+/* 0x0b10: idle_loop */
+ 0xf45817f0,
+/* 0x0b16: idle_proc */
+/* 0x0b16: idle_proc_exec */
+ 0x10f90232,
+ 0xf5021eb9,
+ 0xfc034b21,
+ 0x0911f410,
+ 0xf40231f4,
+/* 0x0b2a: idle_proc_next */
+ 0x10b6ef0e,
+ 0x061fb858,
+ 0xf4e61bf4,
+ 0x28f4dd02,
+ 0xbb0ef400,
0x00000000,
0x00000000,
0x00000000,
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h
index 513159063797..0a77eda57b17 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h
+++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h
@@ -46,8 +46,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x584d454d,
- 0x00000596,
- 0x00000588,
+ 0x000005b8,
+ 0x000005aa,
0x00000000,
0x00000000,
0x00000000,
@@ -68,8 +68,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x46524550,
- 0x0000059a,
- 0x00000598,
+ 0x000005bc,
+ 0x000005ba,
0x00000000,
0x00000000,
0x00000000,
@@ -90,8 +90,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x5f433249,
- 0x000009b5,
- 0x00000858,
+ 0x000009d7,
+ 0x0000087a,
0x00000000,
0x00000000,
0x00000000,
@@ -112,8 +112,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x54534554,
- 0x000009d8,
- 0x000009b7,
+ 0x000009fa,
+ 0x000009d9,
0x00000000,
0x00000000,
0x00000000,
@@ -134,8 +134,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x454c4449,
- 0x000009e4,
- 0x000009e2,
+ 0x00000a06,
+ 0x00000a04,
0x00000000,
0x00000000,
0x00000000,
@@ -233,23 +233,25 @@ uint32_t nvd0_pwr_data[] = {
/* 0x037c: memx_func_next */
0x00000001,
0x00000000,
- 0x000004ee,
+ 0x000004f7,
0x00000002,
0x00000002,
- 0x0000050e,
+ 0x00000520,
0x00040003,
0x00000000,
- 0x0000052a,
+ 0x0000053c,
0x00010004,
0x00000000,
- 0x00000544,
+ 0x00000556,
0x00010005,
0x00000000,
- 0x00000509,
+ 0x0000051b,
/* 0x03b8: memx_func_tail */
-/* 0x03b8: memx_data_head */
+/* 0x03b8: memx_ts_start */
0x00000000,
+/* 0x03bc: memx_ts_end */
0x00000000,
+/* 0x03c0: memx_data_head */
0x00000000,
0x00000000,
0x00000000,
@@ -760,8 +762,10 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x00000000,
-/* 0x0bb8: memx_data_tail */
-/* 0x0bb8: i2c_scl_map */
+ 0x00000000,
+ 0x00000000,
+/* 0x0bc0: memx_data_tail */
+/* 0x0bc0: i2c_scl_map */
0x00000400,
0x00000800,
0x00001000,
@@ -772,7 +776,7 @@ uint32_t nvd0_pwr_data[] = {
0x00020000,
0x00040000,
0x00080000,
-/* 0x0be0: i2c_sda_map */
+/* 0x0be8: i2c_sda_map */
0x00100000,
0x00200000,
0x00400000,
@@ -843,8 +847,6 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x00000000,
- 0x00000000,
- 0x00000000,
};
uint32_t nvd0_pwr_code[] = {
@@ -1209,407 +1211,407 @@ uint32_t nvd0_pwr_code[] = {
0xcf07c067,
0x64f00066,
0xf60bf404,
-/* 0x04ee: memx_func_leave */
- 0x67f000f8,
- 0xe407f104,
- 0x0006d007,
-/* 0x04fa: memx_func_leave_wait */
- 0x67f104bd,
- 0x66cf07c0,
- 0x0464f000,
- 0xf8f61bf4,
-/* 0x0509: memx_func_wait_vblank */
+ 0xcf2c67f0,
+ 0x06800066,
+/* 0x04f7: memx_func_leave */
+ 0xf000f8ee,
+ 0x66cf2c67,
+ 0xef068000,
+ 0xf10467f0,
+ 0xd007e407,
+ 0x04bd0006,
+/* 0x050c: memx_func_leave_wait */
+ 0x07c067f1,
+ 0xf00066cf,
+ 0x1bf40464,
+/* 0x051b: memx_func_wait_vblank */
+ 0xb600f8f6,
+ 0x00f80410,
+/* 0x0520: memx_func_wr32 */
+ 0x98001698,
+ 0x10b60115,
+ 0xf960f908,
+ 0xfcd0fc50,
+ 0x3321f4e0,
+ 0xf40242b6,
+ 0x00f8e91b,
+/* 0x053c: memx_func_wait */
+ 0xcf2c87f0,
+ 0x1e980088,
+ 0x011d9800,
+ 0x98021c98,
+ 0x10b6031b,
+ 0x8621f410,
+/* 0x0556: memx_func_delay */
+ 0x1e9800f8,
0x0410b600,
-/* 0x050e: memx_func_wr32 */
- 0x169800f8,
- 0x01159800,
- 0xf90810b6,
- 0xfc50f960,
- 0xf4e0fcd0,
- 0x42b63321,
- 0xe91bf402,
-/* 0x052a: memx_func_wait */
- 0x87f000f8,
- 0x0088cf2c,
- 0x98001e98,
- 0x1c98011d,
- 0x031b9802,
- 0xf41010b6,
- 0x00f88621,
-/* 0x0544: memx_func_delay */
- 0xb6001e98,
- 0x21f40410,
-/* 0x054f: memx_exec */
- 0xf900f867,
- 0xb9d0f9e0,
- 0xb2b902c1,
-/* 0x0559: memx_exec_next */
- 0x00139802,
- 0x950410b6,
- 0x30f01034,
- 0xde35980c,
- 0x12b855f9,
- 0xec1ef406,
- 0xe0fcd0fc,
- 0x02f121f5,
-/* 0x057a: memx_info */
- 0xc7f100f8,
- 0xb7f103b8,
- 0x21f50800,
+ 0xf86721f4,
+/* 0x0561: memx_exec */
+ 0xf9e0f900,
+ 0x02c1b9d0,
+/* 0x056b: memx_exec_next */
+ 0x9802b2b9,
+ 0x10b60013,
+ 0x10349504,
+ 0x980c30f0,
+ 0x55f9de35,
+ 0xf40612b8,
+ 0x0b98ec1e,
+ 0xef0c98ee,
+ 0xf102cbbb,
+ 0xcf07c4b7,
+ 0xd0fc00bb,
+ 0x21f5e0fc,
0x00f802f1,
-/* 0x0588: memx_recv */
- 0xf401d6b0,
- 0xd6b0c40b,
- 0xe90bf400,
-/* 0x0596: memx_init */
- 0x00f800f8,
-/* 0x0598: perf_recv */
-/* 0x059a: perf_init */
+/* 0x059c: memx_info */
+ 0x03c0c7f1,
+ 0x0800b7f1,
+ 0x02f121f5,
+/* 0x05aa: memx_recv */
+ 0xd6b000f8,
+ 0xb40bf401,
+ 0xf400d6b0,
+ 0x00f8e90b,
+/* 0x05b8: memx_init */
+/* 0x05ba: perf_recv */
0x00f800f8,
-/* 0x059c: i2c_drive_scl */
- 0xf40036b0,
- 0x07f10e0b,
- 0x01d007e0,
- 0xf804bd00,
-/* 0x05ad: i2c_drive_scl_lo */
- 0xe407f100,
- 0x0001d007,
- 0x00f804bd,
-/* 0x05b8: i2c_drive_sda */
- 0xf40036b0,
- 0x07f10e0b,
- 0x02d007e0,
- 0xf804bd00,
-/* 0x05c9: i2c_drive_sda_lo */
- 0xe407f100,
- 0x0002d007,
- 0x00f804bd,
-/* 0x05d4: i2c_sense_scl */
- 0xf10132f4,
- 0xcf07c437,
- 0x31fd0033,
- 0x060bf404,
-/* 0x05e7: i2c_sense_scl_done */
- 0xf80131f4,
-/* 0x05e9: i2c_sense_sda */
- 0x0132f400,
- 0x07c437f1,
- 0xfd0033cf,
- 0x0bf40432,
- 0x0131f406,
-/* 0x05fc: i2c_sense_sda_done */
-/* 0x05fe: i2c_raise_scl */
- 0x40f900f8,
- 0x089847f1,
- 0xf50137f0,
-/* 0x060b: i2c_raise_scl_wait */
- 0xf1059c21,
- 0xf403e8e7,
- 0x21f56721,
- 0x01f405d4,
- 0x0142b609,
-/* 0x061f: i2c_raise_scl_done */
- 0xfcef1bf4,
-/* 0x0623: i2c_start */
- 0xf500f840,
- 0xf405d421,
- 0x21f50d11,
- 0x11f405e9,
- 0x300ef406,
-/* 0x0634: i2c_start_rep */
- 0xf50037f0,
- 0xf0059c21,
- 0x21f50137,
- 0x76bb05b8,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb605fe21,
- 0x11f40464,
-/* 0x0661: i2c_start_send */
- 0x0037f01f,
- 0x05b821f5,
- 0x1388e7f1,
- 0xf06721f4,
- 0x21f50037,
- 0xe7f1059c,
- 0x21f41388,
-/* 0x067d: i2c_start_out */
-/* 0x067f: i2c_stop */
- 0xf000f867,
- 0x21f50037,
- 0x37f0059c,
- 0xb821f500,
+/* 0x05bc: perf_init */
+/* 0x05be: i2c_drive_scl */
+ 0x36b000f8,
+ 0x0e0bf400,
+ 0x07e007f1,
+ 0xbd0001d0,
+/* 0x05cf: i2c_drive_scl_lo */
+ 0xf100f804,
+ 0xd007e407,
+ 0x04bd0001,
+/* 0x05da: i2c_drive_sda */
+ 0x36b000f8,
+ 0x0e0bf400,
+ 0x07e007f1,
+ 0xbd0002d0,
+/* 0x05eb: i2c_drive_sda_lo */
+ 0xf100f804,
+ 0xd007e407,
+ 0x04bd0002,
+/* 0x05f6: i2c_sense_scl */
+ 0x32f400f8,
+ 0xc437f101,
+ 0x0033cf07,
+ 0xf40431fd,
+ 0x31f4060b,
+/* 0x0609: i2c_sense_scl_done */
+/* 0x060b: i2c_sense_sda */
+ 0xf400f801,
+ 0x37f10132,
+ 0x33cf07c4,
+ 0x0432fd00,
+ 0xf4060bf4,
+/* 0x061e: i2c_sense_sda_done */
+ 0x00f80131,
+/* 0x0620: i2c_raise_scl */
+ 0x47f140f9,
+ 0x37f00898,
+ 0xbe21f501,
+/* 0x062d: i2c_raise_scl_wait */
0xe8e7f105,
0x6721f403,
- 0xf50137f0,
- 0xf1059c21,
- 0xf41388e7,
- 0x37f06721,
- 0xb821f501,
- 0x88e7f105,
- 0x6721f413,
-/* 0x06b2: i2c_bitw */
- 0x21f500f8,
- 0xe7f105b8,
- 0x21f403e8,
- 0x0076bb67,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b605fe,
- 0x1811f404,
- 0x1388e7f1,
- 0xf06721f4,
+ 0x05f621f5,
+ 0xb60901f4,
+ 0x1bf40142,
+/* 0x0641: i2c_raise_scl_done */
+ 0xf840fcef,
+/* 0x0645: i2c_start */
+ 0xf621f500,
+ 0x0d11f405,
+ 0x060b21f5,
+ 0xf40611f4,
+/* 0x0656: i2c_start_rep */
+ 0x37f0300e,
+ 0xbe21f500,
+ 0x0137f005,
+ 0x05da21f5,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x2021f550,
+ 0x0464b606,
+/* 0x0683: i2c_start_send */
+ 0xf01f11f4,
0x21f50037,
- 0xe7f1059c,
+ 0xe7f105da,
0x21f41388,
-/* 0x06f1: i2c_bitw_out */
-/* 0x06f3: i2c_bitr */
- 0xf000f867,
- 0x21f50137,
- 0xe7f105b8,
- 0x21f403e8,
- 0x0076bb67,
- 0xf90465b6,
- 0x04659450,
- 0xbd0256bb,
- 0x0475fd50,
- 0x21f550fc,
- 0x64b605fe,
- 0x1b11f404,
- 0x05e921f5,
+ 0x0037f067,
+ 0x05be21f5,
+ 0x1388e7f1,
+/* 0x069f: i2c_start_out */
+ 0xf86721f4,
+/* 0x06a1: i2c_stop */
+ 0x0037f000,
+ 0x05be21f5,
0xf50037f0,
- 0xf1059c21,
+ 0xf105da21,
+ 0xf403e8e7,
+ 0x37f06721,
+ 0xbe21f501,
+ 0x88e7f105,
+ 0x6721f413,
+ 0xf50137f0,
+ 0xf105da21,
0xf41388e7,
- 0x3cf06721,
- 0x0131f401,
-/* 0x0738: i2c_bitr_done */
-/* 0x073a: i2c_get_byte */
- 0x57f000f8,
- 0x0847f000,
-/* 0x0740: i2c_get_byte_next */
- 0xbb0154b6,
+ 0x00f86721,
+/* 0x06d4: i2c_bitw */
+ 0x05da21f5,
+ 0x03e8e7f1,
+ 0xbb6721f4,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x06f321f5,
+ 0x062021f5,
0xf40464b6,
- 0x53fd2b11,
- 0x0142b605,
- 0xf0d81bf4,
- 0x76bb0137,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb606b221,
-/* 0x078a: i2c_get_byte_done */
- 0x00f80464,
-/* 0x078c: i2c_put_byte */
-/* 0x078f: i2c_put_byte_next */
- 0xb60847f0,
- 0x54ff0142,
- 0x0076bb38,
+ 0xe7f11811,
+ 0x21f41388,
+ 0x0037f067,
+ 0x05be21f5,
+ 0x1388e7f1,
+/* 0x0713: i2c_bitw_out */
+ 0xf86721f4,
+/* 0x0715: i2c_bitr */
+ 0x0137f000,
+ 0x05da21f5,
+ 0x03e8e7f1,
+ 0xbb6721f4,
+ 0x65b60076,
+ 0x9450f904,
+ 0x56bb0465,
+ 0xfd50bd02,
+ 0x50fc0475,
+ 0x062021f5,
+ 0xf40464b6,
+ 0x21f51b11,
+ 0x37f0060b,
+ 0xbe21f500,
+ 0x88e7f105,
+ 0x6721f413,
+ 0xf4013cf0,
+/* 0x075a: i2c_bitr_done */
+ 0x00f80131,
+/* 0x075c: i2c_get_byte */
+ 0xf00057f0,
+/* 0x0762: i2c_get_byte_next */
+ 0x54b60847,
+ 0x0076bb01,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b606b2,
- 0x3411f404,
- 0xf40046b0,
- 0x76bbd81b,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb606f321,
- 0x11f40464,
- 0x0076bb0f,
- 0xf40136b0,
- 0x32f4061b,
-/* 0x07e5: i2c_put_byte_done */
-/* 0x07e7: i2c_addr */
- 0xbb00f801,
+ 0x64b60715,
+ 0x2b11f404,
+ 0xb60553fd,
+ 0x1bf40142,
+ 0x0137f0d8,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0xd421f550,
+ 0x0464b606,
+/* 0x07ac: i2c_get_byte_done */
+/* 0x07ae: i2c_put_byte */
+ 0x47f000f8,
+/* 0x07b1: i2c_put_byte_next */
+ 0x0142b608,
+ 0xbb3854ff,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x062321f5,
+ 0x06d421f5,
0xf40464b6,
- 0xc3e72911,
- 0x34b6012e,
- 0x0553fd01,
+ 0x46b03411,
+ 0xd81bf400,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x8c21f550,
+ 0x1521f550,
0x0464b607,
-/* 0x082c: i2c_addr_done */
-/* 0x082e: i2c_acquire_addr */
- 0xcec700f8,
- 0x05e4b6f8,
- 0xd014e0b7,
-/* 0x083a: i2c_acquire */
- 0x21f500f8,
- 0x21f4082e,
- 0x03d9f004,
- 0xf83321f4,
-/* 0x0849: i2c_release */
- 0x2e21f500,
- 0x0421f408,
- 0xf403daf0,
- 0x00f83321,
-/* 0x0858: i2c_recv */
- 0xc70132f4,
- 0x14b6f8c1,
- 0x2816b002,
- 0x013a1ff5,
- 0x0be013a0,
- 0xa0003298,
- 0x980bb813,
- 0x31f40031,
- 0xf9d0f902,
- 0xf1d0f9e0,
- 0xf1000067,
- 0x92100063,
- 0x76bb0167,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb6083a21,
- 0xd0fc0464,
- 0xf500d6b0,
- 0xf000b31b,
- 0x76bb0057,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb607e721,
- 0x11f50464,
- 0xc5c700d0,
- 0x0076bbe0,
+ 0xbb0f11f4,
+ 0x36b00076,
+ 0x061bf401,
+/* 0x0807: i2c_put_byte_done */
+ 0xf80132f4,
+/* 0x0809: i2c_addr */
+ 0x0076bb00,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b6078c,
- 0xad11f504,
- 0x0157f000,
+ 0x64b60645,
+ 0x2911f404,
+ 0x012ec3e7,
+ 0xfd0134b6,
+ 0x76bb0553,
+ 0x0465b600,
+ 0x659450f9,
+ 0x0256bb04,
+ 0x75fd50bd,
+ 0xf550fc04,
+ 0xb607ae21,
+/* 0x084e: i2c_addr_done */
+ 0x00f80464,
+/* 0x0850: i2c_acquire_addr */
+ 0xb6f8cec7,
+ 0xe0b705e4,
+ 0x00f8d014,
+/* 0x085c: i2c_acquire */
+ 0x085021f5,
+ 0xf00421f4,
+ 0x21f403d9,
+/* 0x086b: i2c_release */
+ 0xf500f833,
+ 0xf4085021,
+ 0xdaf00421,
+ 0x3321f403,
+/* 0x087a: i2c_recv */
+ 0x32f400f8,
+ 0xf8c1c701,
+ 0xb00214b6,
+ 0x1ff52816,
+ 0x13a0013a,
+ 0x32980be8,
+ 0xc013a000,
+ 0x0031980b,
+ 0xf90231f4,
+ 0xf9e0f9d0,
+ 0x0067f1d0,
+ 0x0063f100,
+ 0x01679210,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0xe721f550,
- 0x0464b607,
- 0x008a11f5,
+ 0x5c21f550,
+ 0x0464b608,
+ 0xd6b0d0fc,
+ 0xb31bf500,
+ 0x0057f000,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x3a21f550,
- 0x0464b607,
- 0xcb6a11f4,
- 0x76bbe05b,
+ 0x0921f550,
+ 0x0464b608,
+ 0x00d011f5,
+ 0xbbe0c5c7,
+ 0x65b60076,
+ 0x9450f904,
+ 0x56bb0465,
+ 0xfd50bd02,
+ 0x50fc0475,
+ 0x07ae21f5,
+ 0xf50464b6,
+ 0xf000ad11,
+ 0x76bb0157,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb6067f21,
- 0x5bb90464,
- 0xf474bd02,
-/* 0x095e: i2c_recv_not_rd08 */
- 0xd6b0430e,
- 0x3d1bf401,
- 0xf50057f0,
- 0xf407e721,
- 0xc5c73311,
- 0x8c21f5e0,
- 0x2911f407,
- 0xf50057f0,
- 0xf407e721,
- 0xb5c71f11,
- 0x8c21f5e0,
- 0x1511f407,
- 0x067f21f5,
- 0xc5c774bd,
- 0x091bf408,
- 0xf40232f4,
-/* 0x099e: i2c_recv_not_wr08 */
-/* 0x099e: i2c_recv_done */
- 0xcec7030e,
- 0x4921f5f8,
- 0xfce0fc08,
- 0x0a12f4d0,
- 0xf5027cb9,
-/* 0x09b3: i2c_recv_exit */
- 0xf802f121,
-/* 0x09b5: i2c_init */
-/* 0x09b7: test_recv */
- 0xf100f800,
- 0xcf05d817,
- 0x10b60011,
- 0xd807f101,
- 0x0001d005,
- 0xe7f104bd,
- 0xe3f1d900,
- 0x21f5134f,
- 0x00f80223,
-/* 0x09d8: test_init */
- 0x0800e7f1,
+ 0xb6080921,
+ 0x11f50464,
+ 0x76bb008a,
+ 0x0465b600,
+ 0x659450f9,
+ 0x0256bb04,
+ 0x75fd50bd,
+ 0xf550fc04,
+ 0xb6075c21,
+ 0x11f40464,
+ 0xe05bcb6a,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0xa121f550,
+ 0x0464b606,
+ 0xbd025bb9,
+ 0x430ef474,
+/* 0x0980: i2c_recv_not_rd08 */
+ 0xf401d6b0,
+ 0x57f03d1b,
+ 0x0921f500,
+ 0x3311f408,
+ 0xf5e0c5c7,
+ 0xf407ae21,
+ 0x57f02911,
+ 0x0921f500,
+ 0x1f11f408,
+ 0xf5e0b5c7,
+ 0xf407ae21,
+ 0x21f51511,
+ 0x74bd06a1,
+ 0xf408c5c7,
+ 0x32f4091b,
+ 0x030ef402,
+/* 0x09c0: i2c_recv_not_wr08 */
+/* 0x09c0: i2c_recv_done */
+ 0xf5f8cec7,
+ 0xfc086b21,
+ 0xf4d0fce0,
+ 0x7cb90a12,
+ 0xf121f502,
+/* 0x09d5: i2c_recv_exit */
+/* 0x09d7: i2c_init */
+ 0xf800f802,
+/* 0x09d9: test_recv */
+ 0xd817f100,
+ 0x0011cf05,
+ 0xf10110b6,
+ 0xd005d807,
+ 0x04bd0001,
+ 0xd900e7f1,
+ 0x134fe3f1,
0x022321f5,
-/* 0x09e2: idle_recv */
- 0x00f800f8,
-/* 0x09e4: idle */
- 0xf10031f4,
- 0xcf05d417,
- 0x10b60011,
- 0xd407f101,
- 0x0001d005,
-/* 0x09fa: idle_loop */
- 0x17f004bd,
- 0x0232f458,
-/* 0x0a00: idle_proc */
-/* 0x0a00: idle_proc_exec */
- 0x1eb910f9,
- 0xfa21f502,
- 0xf410fc02,
- 0x31f40911,
- 0xef0ef402,
-/* 0x0a14: idle_proc_next */
- 0xb85810b6,
- 0x1bf4061f,
- 0xdd02f4e6,
- 0xf40028f4,
- 0x0000c10e,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
+/* 0x09fa: test_init */
+ 0xe7f100f8,
+ 0x21f50800,
+ 0x00f80223,
+/* 0x0a04: idle_recv */
+/* 0x0a06: idle */
+ 0x31f400f8,
+ 0xd417f100,
+ 0x0011cf05,
+ 0xf10110b6,
+ 0xd005d407,
+ 0x04bd0001,
+/* 0x0a1c: idle_loop */
+ 0xf45817f0,
+/* 0x0a22: idle_proc */
+/* 0x0a22: idle_proc_exec */
+ 0x10f90232,
+ 0xf5021eb9,
+ 0xfc02fa21,
+ 0x0911f410,
+ 0xf40231f4,
+/* 0x0a36: idle_proc_next */
+ 0x10b6ef0e,
+ 0x061fb858,
+ 0xf4e61bf4,
+ 0x28f4dd02,
+ 0xc10ef400,
0x00000000,
0x00000000,
0x00000000,
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c b/drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c
index fa6aae3c29e9..8edd411426dd 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c
@@ -86,6 +86,8 @@ nouveau_memx_fini(struct nouveau_memx **pmemx, bool exec)
memx->base, finish);
}
+ nv_debug(memx->ppwr, "Exec took %uns, PPWR_IN %08x\n",
+ reply[0], reply[1]);
kfree(memx);
return 0;
}