drm/nva3/pwr/memx: Match blob's fb access behaviour

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
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 989fdc1..744f2e9 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
+++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
@@ -76,6 +76,16 @@
 // $r3  - opcode desciption
 // $r0  - zero
 memx_func_enter:
+#if NVKM_PPWR_CHIPSET == GT215
+	movw $r8 0x1610
+	nv_rd32($r7, $r8)
+	imm32($r6, 0xfffffffc)
+	and $r7 $r6
+	movw $r6 0x2
+	or $r7 $r6
+	nv_wr32($r8, $r7)
+#endif
+
 	mov $r6 NV_PPWR_OUTPUT_SET_FB_PAUSE
 	nv_iowr(NV_PPWR_OUTPUT_SET, $r6)
 	memx_func_enter_wait:
@@ -104,6 +114,15 @@
 		nv_iord($r6, NV_PPWR_OUTPUT)
 		and $r6 NV_PPWR_OUTPUT_FB_PAUSE
 		bra nz #memx_func_leave_wait
+
+#if NVKM_PPWR_CHIPSET == GT215
+	movw $r8 0x1610
+	nv_rd32($r7, $r8)
+	imm32($r6, 0xffffffcc)
+	and $r7 $r6
+	nv_wr32($r8, $r7)
+#endif
+
 	ret
 
 #if NVKM_PPWR_CHIPSET < GF119
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 bbfd502..93d9253 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 @@
 	0x00000000,
 	0x00000000,
 	0x584d454d,
-	0x0000068b,
-	0x0000067d,
+	0x000006d8,
+	0x000006ca,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -68,8 +68,8 @@
 	0x00000000,
 	0x00000000,
 	0x46524550,
-	0x0000068f,
-	0x0000068d,
+	0x000006dc,
+	0x000006da,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -90,8 +90,8 @@
 	0x00000000,
 	0x00000000,
 	0x5f433249,
-	0x00000abf,
-	0x00000962,
+	0x00000b0c,
+	0x000009af,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -112,8 +112,8 @@
 	0x00000000,
 	0x00000000,
 	0x54534554,
-	0x00000ae8,
-	0x00000ac1,
+	0x00000b35,
+	0x00000b0e,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -134,8 +134,8 @@
 	0x00000000,
 	0x00000000,
 	0x454c4449,
-	0x00000af4,
-	0x00000af2,
+	0x00000b41,
+	0x00000b3f,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -233,19 +233,19 @@
 /* 0x037c: memx_func_next */
 	0x00000001,
 	0x00000000,
-	0x0000057e,
+	0x000005a8,
 	0x00000002,
 	0x00000002,
-	0x000005ed,
+	0x0000063a,
 	0x00040003,
 	0x00000000,
-	0x00000609,
+	0x00000656,
 	0x00010004,
 	0x00000000,
-	0x00000626,
+	0x00000673,
 	0x00010005,
 	0x00000000,
-	0x000005ab,
+	0x000005f8,
 /* 0x03b8: memx_func_tail */
 /* 0x03b8: memx_ts_start */
 	0x00000000,
@@ -1236,469 +1236,469 @@
 	0x01d00604,
 	0xf804bd00,
 /* 0x0551: memx_func_enter */
-	0x0467f000,
-	0x07e007f1,
-	0xd00604b6,
-	0x04bd0006,
-/* 0x0560: memx_func_enter_wait */
-	0x07c067f1,
-	0xcf0664b6,
-	0x64f00066,
-	0xf30bf404,
-	0xb62c67f0,
-	0x66cf0664,
-	0xee068000,
-/* 0x057e: memx_func_leave */
-	0x67f000f8,
+	0x1087f100,
+	0x028eb916,
+	0xb90421f4,
+	0x67f102d7,
+	0x63f1fffc,
+	0x76fdffff,
+	0x0267f104,
+	0x0576fd00,
+	0x70f980f9,
+	0xe0fcd0fc,
+	0xf03f21f4,
+	0x07f10467,
+	0x04b607e0,
+	0x0006d006,
+/* 0x058a: memx_func_enter_wait */
+	0x67f104bd,
+	0x64b607c0,
+	0x0066cf06,
+	0xf40464f0,
+	0x67f0f30b,
 	0x0664b62c,
 	0x800066cf,
-	0x67f0ef06,
-	0xe407f104,
-	0x0604b607,
-	0xbd0006d0,
-/* 0x0599: memx_func_leave_wait */
-	0xc067f104,
-	0x0664b607,
-	0xf00066cf,
-	0x1bf40464,
-/* 0x05ab: memx_func_wait_vblank */
-	0x9800f8f3,
-	0x66b00016,
-	0x130bf400,
-	0xf40166b0,
-	0x0ef4060b,
-/* 0x05bd: memx_func_wait_vblank_head1 */
-	0x2077f12e,
-	0x070ef400,
-/* 0x05c4: memx_func_wait_vblank_head0 */
-	0x000877f1,
-/* 0x05c8: memx_func_wait_vblank_0 */
-	0x07c467f1,
-	0xcf0664b6,
-	0x67fd0066,
-	0xf31bf404,
-/* 0x05d8: memx_func_wait_vblank_1 */
-	0x07c467f1,
-	0xcf0664b6,
-	0x67fd0066,
-	0xf30bf404,
-/* 0x05e8: memx_func_wait_vblank_fini */
-	0xf80410b6,
-/* 0x05ed: memx_func_wr32 */
-	0x00169800,
-	0xb6011598,
-	0x60f90810,
-	0xd0fc50f9,
-	0x21f4e0fc,
-	0x0242b63f,
-	0xf8e91bf4,
-/* 0x0609: memx_func_wait */
-	0x2c87f000,
-	0xcf0684b6,
-	0x1e980088,
-	0x011d9800,
-	0x98021c98,
-	0x10b6031b,
-	0xa421f410,
-/* 0x0626: memx_func_delay */
-	0x1e9800f8,
-	0x0410b600,
-	0xf87f21f4,
-/* 0x0631: memx_exec */
-	0xf9e0f900,
-	0x02c1b9d0,
-/* 0x063b: memx_exec_next */
-	0x9802b2b9,
-	0x10b60013,
-	0x10349504,
-	0x980c30f0,
-	0x55f9de35,
-	0xf40612b8,
-	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,
+	0x00f8ee06,
+/* 0x05a8: memx_func_leave */
+	0xb62c67f0,
+	0x66cf0664,
+	0xef068000,
+	0xf10467f0,
 	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,
-/* 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,
-	0x37f00691,
-	0xb321f501,
-	0x0076bb06,
-	0xf90465b6,
-	0x04659450,
-	0xbd0256bb,
-	0x0475fd50,
-	0x21f550fc,
-	0x64b60705,
-	0x1f11f404,
-/* 0x0768: i2c_start_send */
+	0x06d00604,
+/* 0x05c3: memx_func_leave_wait */
+	0xf104bd00,
+	0xb607c067,
+	0x66cf0664,
+	0x0464f000,
+	0xf1f31bf4,
+	0xb9161087,
+	0x21f4028e,
+	0x02d7b904,
+	0xffcc67f1,
+	0xffff63f1,
+	0xf90476fd,
+	0xfc70f980,
+	0xf4e0fcd0,
+	0x00f83f21,
+/* 0x05f8: memx_func_wait_vblank */
+	0xb0001698,
+	0x0bf40066,
+	0x0166b013,
+	0xf4060bf4,
+/* 0x060a: memx_func_wait_vblank_head1 */
+	0x77f12e0e,
+	0x0ef40020,
+/* 0x0611: memx_func_wait_vblank_head0 */
+	0x0877f107,
+/* 0x0615: memx_func_wait_vblank_0 */
+	0xc467f100,
+	0x0664b607,
+	0xfd0066cf,
+	0x1bf40467,
+/* 0x0625: memx_func_wait_vblank_1 */
+	0xc467f1f3,
+	0x0664b607,
+	0xfd0066cf,
+	0x0bf40467,
+/* 0x0635: memx_func_wait_vblank_fini */
+	0x0410b6f3,
+/* 0x063a: memx_func_wr32 */
+	0x169800f8,
+	0x01159800,
+	0xf90810b6,
+	0xfc50f960,
+	0xf4e0fcd0,
+	0x42b63f21,
+	0xe91bf402,
+/* 0x0656: memx_func_wait */
+	0x87f000f8,
+	0x0684b62c,
+	0x980088cf,
+	0x1d98001e,
+	0x021c9801,
+	0xb6031b98,
+	0x21f41010,
+/* 0x0673: memx_func_delay */
+	0x9800f8a4,
+	0x10b6001e,
+	0x7f21f404,
+/* 0x067e: memx_exec */
+	0xe0f900f8,
+	0xc1b9d0f9,
+	0x02b2b902,
+/* 0x0688: memx_exec_next */
+	0xb6001398,
+	0x34950410,
+	0x0c30f010,
+	0xf9de3598,
+	0x0612b855,
+	0x98ec1ef4,
+	0x0c98ee0b,
+	0x02cbbbef,
+	0x07c4b7f1,
+	0xcf06b4b6,
+	0xd0fc00bb,
+	0x21f5e0fc,
+	0x00f80342,
+/* 0x06bc: memx_info */
+	0x03c0c7f1,
+	0x0800b7f1,
+	0x034221f5,
+/* 0x06ca: memx_recv */
+	0xd6b000f8,
+	0xb10bf401,
+	0xf400d6b0,
+	0x00f8e90b,
+/* 0x06d8: memx_init */
+/* 0x06da: perf_recv */
+	0x00f800f8,
+/* 0x06dc: perf_init */
+/* 0x06de: i2c_drive_scl */
+	0x36b000f8,
+	0x110bf400,
+	0x07e007f1,
+	0xd00604b6,
+	0x04bd0001,
+/* 0x06f2: i2c_drive_scl_lo */
+	0x07f100f8,
+	0x04b607e4,
+	0x0001d006,
+	0x00f804bd,
+/* 0x0700: i2c_drive_sda */
+	0xf40036b0,
+	0x07f1110b,
+	0x04b607e0,
+	0x0002d006,
+	0x00f804bd,
+/* 0x0714: i2c_drive_sda_lo */
+	0x07e407f1,
+	0xd00604b6,
+	0x04bd0002,
+/* 0x0722: i2c_sense_scl */
+	0x32f400f8,
+	0xc437f101,
+	0x0634b607,
+	0xfd0033cf,
+	0x0bf40431,
+	0x0131f406,
+/* 0x0738: i2c_sense_scl_done */
+/* 0x073a: i2c_sense_sda */
+	0x32f400f8,
+	0xc437f101,
+	0x0634b607,
+	0xfd0033cf,
+	0x0bf40432,
+	0x0131f406,
+/* 0x0750: i2c_sense_sda_done */
+/* 0x0752: i2c_raise_scl */
+	0x40f900f8,
+	0x089847f1,
+	0xf50137f0,
+/* 0x075f: i2c_raise_scl_wait */
+	0xf106de21,
+	0xf403e8e7,
+	0x21f57f21,
+	0x01f40722,
+	0x0142b609,
+/* 0x0773: i2c_raise_scl_done */
+	0xfcef1bf4,
+/* 0x0777: i2c_start */
+	0xf500f840,
+	0xf4072221,
+	0x21f50d11,
+	0x11f4073a,
+	0x300ef406,
+/* 0x0788: i2c_start_rep */
 	0xf50037f0,
-	0xf106b321,
-	0xf41388e7,
-	0x37f07f21,
-	0x9121f500,
-	0x88e7f106,
-	0x7f21f413,
-/* 0x0784: i2c_start_out */
-/* 0x0786: i2c_stop */
-	0x37f000f8,
-	0x9121f500,
-	0x0037f006,
-	0x06b321f5,
-	0x03e8e7f1,
-	0xf07f21f4,
+	0xf006de21,
 	0x21f50137,
-	0xe7f10691,
-	0x21f41388,
-	0x0137f07f,
-	0x06b321f5,
-	0x1388e7f1,
-	0xf87f21f4,
-/* 0x07b9: i2c_bitw */
-	0xb321f500,
-	0xe8e7f106,
-	0x7f21f403,
-	0xb60076bb,
-	0x50f90465,
-	0xbb046594,
-	0x50bd0256,
-	0xfc0475fd,
-	0x0521f550,
-	0x0464b607,
-	0xf11811f4,
-	0xf41388e7,
-	0x37f07f21,
-	0x9121f500,
-	0x88e7f106,
-	0x7f21f413,
-/* 0x07f8: i2c_bitw_out */
-/* 0x07fa: i2c_bitr */
-	0x37f000f8,
-	0xb321f501,
-	0xe8e7f106,
-	0x7f21f403,
-	0xb60076bb,
-	0x50f90465,
-	0xbb046594,
-	0x50bd0256,
-	0xfc0475fd,
-	0x0521f550,
-	0x0464b607,
-	0xf51b11f4,
-	0xf006ed21,
-	0x21f50037,
-	0xe7f10691,
-	0x21f41388,
-	0x013cf07f,
-/* 0x083f: i2c_bitr_done */
-	0xf80131f4,
-/* 0x0841: i2c_get_byte */
-	0x0057f000,
-/* 0x0847: i2c_get_byte_next */
-	0xb60847f0,
-	0x76bb0154,
+	0x76bb0700,
 	0x0465b600,
 	0x659450f9,
 	0x0256bb04,
 	0x75fd50bd,
 	0xf550fc04,
-	0xb607fa21,
+	0xb6075221,
 	0x11f40464,
-	0x0553fd2b,
-	0xf40142b6,
-	0x37f0d81b,
+/* 0x07b5: i2c_start_send */
+	0x0037f01f,
+	0x070021f5,
+	0x1388e7f1,
+	0xf07f21f4,
+	0x21f50037,
+	0xe7f106de,
+	0x21f41388,
+/* 0x07d1: i2c_start_out */
+/* 0x07d3: i2c_stop */
+	0xf000f87f,
+	0x21f50037,
+	0x37f006de,
+	0x0021f500,
+	0xe8e7f107,
+	0x7f21f403,
+	0xf50137f0,
+	0xf106de21,
+	0xf41388e7,
+	0x37f07f21,
+	0x0021f501,
+	0x88e7f107,
+	0x7f21f413,
+/* 0x0806: i2c_bitw */
+	0x21f500f8,
+	0xe7f10700,
+	0x21f403e8,
+	0x0076bb7f,
+	0xf90465b6,
+	0x04659450,
+	0xbd0256bb,
+	0x0475fd50,
+	0x21f550fc,
+	0x64b60752,
+	0x1811f404,
+	0x1388e7f1,
+	0xf07f21f4,
+	0x21f50037,
+	0xe7f106de,
+	0x21f41388,
+/* 0x0845: i2c_bitw_out */
+/* 0x0847: i2c_bitr */
+	0xf000f87f,
+	0x21f50137,
+	0xe7f10700,
+	0x21f403e8,
+	0x0076bb7f,
+	0xf90465b6,
+	0x04659450,
+	0xbd0256bb,
+	0x0475fd50,
+	0x21f550fc,
+	0x64b60752,
+	0x1b11f404,
+	0x073a21f5,
+	0xf50037f0,
+	0xf106de21,
+	0xf41388e7,
+	0x3cf07f21,
+	0x0131f401,
+/* 0x088c: i2c_bitr_done */
+/* 0x088e: i2c_get_byte */
+	0x57f000f8,
+	0x0847f000,
+/* 0x0894: i2c_get_byte_next */
+	0xbb0154b6,
+	0x65b60076,
+	0x9450f904,
+	0x56bb0465,
+	0xfd50bd02,
+	0x50fc0475,
+	0x084721f5,
+	0xf40464b6,
+	0x53fd2b11,
+	0x0142b605,
+	0xf0d81bf4,
+	0x76bb0137,
+	0x0465b600,
+	0x659450f9,
+	0x0256bb04,
+	0x75fd50bd,
+	0xf550fc04,
+	0xb6080621,
+/* 0x08de: i2c_get_byte_done */
+	0x00f80464,
+/* 0x08e0: i2c_put_byte */
+/* 0x08e3: i2c_put_byte_next */
+	0xb60847f0,
+	0x54ff0142,
+	0x0076bb38,
+	0xf90465b6,
+	0x04659450,
+	0xbd0256bb,
+	0x0475fd50,
+	0x21f550fc,
+	0x64b60806,
+	0x3411f404,
+	0xf40046b0,
+	0x76bbd81b,
+	0x0465b600,
+	0x659450f9,
+	0x0256bb04,
+	0x75fd50bd,
+	0xf550fc04,
+	0xb6084721,
+	0x11f40464,
+	0x0076bb0f,
+	0xf40136b0,
+	0x32f4061b,
+/* 0x0939: i2c_put_byte_done */
+/* 0x093b: i2c_addr */
+	0xbb00f801,
+	0x65b60076,
+	0x9450f904,
+	0x56bb0465,
+	0xfd50bd02,
+	0x50fc0475,
+	0x077721f5,
+	0xf40464b6,
+	0xc3e72911,
+	0x34b6012e,
+	0x0553fd01,
+	0xb60076bb,
+	0x50f90465,
+	0xbb046594,
+	0x50bd0256,
+	0xfc0475fd,
+	0xe021f550,
+	0x0464b608,
+/* 0x0980: i2c_addr_done */
+/* 0x0982: i2c_acquire_addr */
+	0xcec700f8,
+	0x02e4b6f8,
+	0x0c10e0b7,
+	0xf800ee98,
+/* 0x0991: i2c_acquire */
+	0x8221f500,
+	0x0421f409,
+	0xf403d9f0,
+	0x00f83f21,
+/* 0x09a0: i2c_release */
+	0x098221f5,
+	0xf00421f4,
+	0x21f403da,
+/* 0x09af: i2c_recv */
+	0xf400f83f,
+	0xc1c70132,
+	0x0214b6f8,
+	0xf52816b0,
+	0xa0013a1f,
+	0x980be813,
+	0x13a00032,
+	0x31980bc0,
+	0x0231f400,
+	0xe0f9d0f9,
+	0x67f1d0f9,
+	0x63f10000,
+	0x67921000,
 	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,
+	0x64b60991,
+	0xb0d0fc04,
+	0x1bf500d6,
+	0x57f000b3,
+	0x0076bb00,
 	0xf90465b6,
 	0x04659450,
 	0xbd0256bb,
 	0x0475fd50,
 	0x21f550fc,
-	0x64b607fa,
-	0x0f11f404,
-	0xb00076bb,
-	0x1bf40136,
-	0x0132f406,
-/* 0x08ec: i2c_put_byte_done */
-/* 0x08ee: i2c_addr */
-	0x76bb00f8,
-	0x0465b600,
-	0x659450f9,
-	0x0256bb04,
-	0x75fd50bd,
-	0xf550fc04,
-	0xb6072a21,
-	0x11f40464,
-	0x2ec3e729,
-	0x0134b601,
-	0xbb0553fd,
-	0x65b60076,
-	0x9450f904,
-	0x56bb0465,
-	0xfd50bd02,
-	0x50fc0475,
-	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,
+	0x64b6093b,
+	0xd011f504,
+	0xe0c5c700,
 	0xb60076bb,
 	0x50f90465,
 	0xbb046594,
 	0x50bd0256,
 	0xfc0475fd,
-	0x4421f550,
-	0x0464b609,
-	0xd6b0d0fc,
-	0xb31bf500,
-	0x0057f000,
-	0xb60076bb,
-	0x50f90465,
-	0xbb046594,
-	0x50bd0256,
-	0xfc0475fd,
-	0xee21f550,
+	0xe021f550,
 	0x0464b608,
-	0x00d011f5,
-	0xbbe0c5c7,
+	0x00ad11f5,
+	0xbb0157f0,
 	0x65b60076,
 	0x9450f904,
 	0x56bb0465,
 	0xfd50bd02,
 	0x50fc0475,
-	0x089321f5,
+	0x093b21f5,
 	0xf50464b6,
-	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,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
-	0x00000000,
+	0xbb008a11,
+	0x65b60076,
+	0x9450f904,
+	0x56bb0465,
+	0xfd50bd02,
+	0x50fc0475,
+	0x088e21f5,
+	0xf40464b6,
+	0x5bcb6a11,
+	0x0076bbe0,
+	0xf90465b6,
+	0x04659450,
+	0xbd0256bb,
+	0x0475fd50,
+	0x21f550fc,
+	0x64b607d3,
+	0x025bb904,
+	0x0ef474bd,
+/* 0x0ab5: i2c_recv_not_rd08 */
+	0x01d6b043,
+	0xf03d1bf4,
+	0x21f50057,
+	0x11f4093b,
+	0xe0c5c733,
+	0x08e021f5,
+	0xf02911f4,
+	0x21f50057,
+	0x11f4093b,
+	0xe0b5c71f,
+	0x08e021f5,
+	0xf51511f4,
+	0xbd07d321,
+	0x08c5c774,
+	0xf4091bf4,
+	0x0ef40232,
+/* 0x0af5: i2c_recv_not_wr08 */
+/* 0x0af5: i2c_recv_done */
+	0xf8cec703,
+	0x09a021f5,
+	0xd0fce0fc,
+	0xb90a12f4,
+	0x21f5027c,
+/* 0x0b0a: i2c_recv_exit */
+	0x00f80342,
+/* 0x0b0c: i2c_init */
+/* 0x0b0e: test_recv */
+	0x17f100f8,
+	0x14b605d8,
+	0x0011cf06,
+	0xf10110b6,
+	0xb605d807,
+	0x01d00604,
+	0xf104bd00,
+	0xf1d900e7,
+	0xf5134fe3,
+	0xf8026221,
+/* 0x0b35: test_init */
+	0x00e7f100,
+	0x6221f508,
+/* 0x0b3f: idle_recv */
+	0xf800f802,
+/* 0x0b41: idle */
+	0x0031f400,
+	0x05d417f1,
+	0xcf0614b6,
+	0x10b60011,
+	0xd407f101,
+	0x0604b605,
+	0xbd0001d0,
+/* 0x0b5d: idle_loop */
+	0x5817f004,
+/* 0x0b63: idle_proc */
+/* 0x0b63: idle_proc_exec */
+	0xf90232f4,
+	0x021eb910,
+	0x034b21f5,
+	0x11f410fc,
+	0x0231f409,
+/* 0x0b77: idle_proc_next */
+	0xb6ef0ef4,
+	0x1fb85810,
+	0xe61bf406,
+	0xf4dd02f4,
+	0x0ef40028,
+	0x000000bb,
 	0x00000000,
 	0x00000000,
 	0x00000000,