Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1a6f7da authored by Roy Spliet's avatar Roy Spliet Committed by Ben Skeggs
Browse files

drm/nva3/pwr/memx: Implement "wait for VBLANK"



Signed-off-by: default avatarRoy Spliet <rspliet@eclipso.eu>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 3a405258
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -47,5 +47,6 @@ void nouveau_memx_wr32(struct nouveau_memx *, u32 addr, u32 data);
void nouveau_memx_wait(struct nouveau_memx *,
		       u32 addr, u32 mask, u32 data, u32 nsec);
void nouveau_memx_nsec(struct nouveau_memx *, u32 nsec);
void nouveau_memx_wait_vblank(struct nouveau_memx *);

#endif
+16 −9
Original line number Diff line number Diff line
@@ -105,6 +105,12 @@ ramfuc_nsec(struct ramfuc *ram, u32 nsec)
	nouveau_memx_nsec(ram->memx, nsec);
}

static inline void
ramfuc_wait_vblank(struct ramfuc *ram)
{
	nouveau_memx_wait_vblank(ram->memx);
}

#define ram_init(s,p)        ramfuc_init(&(s)->base, (p))
#define ram_exec(s,e)        ramfuc_exec(&(s)->base, (e))
#define ram_have(s,r)        ((s)->r_##r.addr[0] != 0x000000)
@@ -114,5 +120,6 @@ ramfuc_nsec(struct ramfuc *ram, u32 nsec)
#define ram_mask(s,r,m,d)    ramfuc_mask(&(s)->base, &(s)->r_##r, (m), (d))
#define ram_wait(s,r,m,d,n)  ramfuc_wait(&(s)->base, (r), (m), (d), (n))
#define ram_nsec(s,n)        ramfuc_nsec(&(s)->base, (n))
#define ram_wait_vblank(s)   ramfuc_wait_vblank(&(s)->base)

#endif
+55 −5
Original line number Diff line number Diff line
@@ -43,12 +43,13 @@ process(PROC_MEMX, #memx_init, #memx_recv)
*/	.b32 func

memx_func_head:
handler(ENTER , 0x0001, 0x0000, #memx_func_enter)
handler(ENTER , 0x0000, 0x0000, #memx_func_enter)
memx_func_next:
handler(LEAVE , 0x0000, 0x0000, #memx_func_leave)
handler(WR32  , 0x0000, 0x0002, #memx_func_wr32)
handler(WAIT  , 0x0004, 0x0000, #memx_func_wait)
handler(DELAY , 0x0001, 0x0000, #memx_func_delay)
handler(VBLANK, 0x0001, 0x0000, #memx_func_wait_vblank)
memx_func_tail:

.equ #memx_func_size #memx_func_next - #memx_func_head
@@ -67,7 +68,6 @@ memx_data_tail:
//
// $r15 - current (memx)
// $r4  - packet length
//	+00: bitmask of heads to wait for vblank on
// $r3  - opcode desciption
// $r0  - zero
memx_func_enter:
@@ -77,9 +77,7 @@ memx_func_enter:
		nv_iord($r6, NV_PPWR_OUTPUT)
		and $r6 NV_PPWR_OUTPUT_FB_PAUSE
		bra z #memx_func_enter_wait
	//XXX: TODO
	ld b32 $r6 D[$r1 + 0x00]
	add b32 $r1 0x04

	ret

// description
@@ -97,6 +95,58 @@ memx_func_leave:
		bra nz #memx_func_leave_wait
	ret

#if NVKM_PPWR_CHIPSET < GF119
// description
//
// $r15 - current (memx)
// $r4  - packet length
//	+00: head to wait for vblank on
// $r3  - opcode desciption
// $r0  - zero
memx_func_wait_vblank:
	ld b32 $r6 D[$r1 + 0x00]
	cmp b32 $r6 0x0
	bra z #memx_func_wait_vblank_head0
	cmp b32 $r6 0x1
	bra z #memx_func_wait_vblank_head1
	bra #memx_func_wait_vblank_fini

	memx_func_wait_vblank_head1:
	movw $r7 0x20
	bra #memx_func_wait_vblank_0

	memx_func_wait_vblank_head0:
	movw $r7 0x8

	memx_func_wait_vblank_0:
		nv_iord($r6, NV_PPWR_INPUT)
		and $r6 $r7
		bra nz #memx_func_wait_vblank_0

	memx_func_wait_vblank_1:
		nv_iord($r6, NV_PPWR_INPUT)
		and $r6 $r7
		bra z #memx_func_wait_vblank_1

	memx_func_wait_vblank_fini:
	add b32 $r1 0x4
	ret

#else

// XXX: currently no-op
//
// $r15 - current (memx)
// $r4  - packet length
//	+00: head to wait for vblank on
// $r3  - opcode desciption
// $r0  - zero
memx_func_wait_vblank:
	add b32 $r1 0x4
	ret

#endif

// description
//
// $r15 - current (memx)
+415 −350
Original line number Diff line number Diff line
@@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = {
	0x00000000,
	0x00000000,
	0x584d454d,
	0x0000053e,
	0x00000530,
	0x0000053d,
	0x0000052f,
	0x00000000,
	0x00000000,
	0x00000000,
@@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = {
	0x00000000,
	0x00000000,
	0x46524550,
	0x00000542,
	0x00000540,
	0x00000541,
	0x0000053f,
	0x00000000,
	0x00000000,
	0x00000000,
@@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = {
	0x00000000,
	0x00000000,
	0x5f433249,
	0x00000946,
	0x000007ed,
	0x00000945,
	0x000007ec,
	0x00000000,
	0x00000000,
	0x00000000,
@@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = {
	0x00000000,
	0x00000000,
	0x54534554,
	0x00000967,
	0x00000948,
	0x00000966,
	0x00000947,
	0x00000000,
	0x00000000,
	0x00000000,
@@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = {
	0x00000000,
	0x00000000,
	0x454c4449,
	0x00000972,
	0x00000970,
	0x00000971,
	0x0000096f,
	0x00000000,
	0x00000000,
	0x00000000,
@@ -227,24 +227,27 @@ uint32_t nv108_pwr_data[] = {
	0x00000000,
	0x00000000,
/* 0x0370: memx_func_head */
	0x00010000,
	0x00000000,
	0x00000000,
	0x00000483,
/* 0x037c: memx_func_next */
	0x00000001,
	0x00000000,
	0x000004a1,
	0x0000049b,
	0x00000002,
	0x00000002,
	0x000004b9,
	0x000004b8,
	0x00040003,
	0x00000000,
	0x000004d6,
	0x000004d5,
	0x00010004,
	0x00000000,
	0x000004f0,
/* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */
	0x000004ef,
	0x00010005,
	0x00000000,
	0x000004b3,
/* 0x03b8: memx_func_tail */
/* 0x03b8: memx_data_head */
	0x00000000,
	0x00000000,
	0x00000000,
@@ -757,8 +760,8 @@ uint32_t nv108_pwr_data[] = {
	0x00000000,
	0x00000000,
	0x00000000,
/* 0x0bac: memx_data_tail */
/* 0x0bac: i2c_scl_map */
/* 0x0bb8: memx_data_tail */
/* 0x0bb8: i2c_scl_map */
	0x00000400,
	0x00000800,
	0x00001000,
@@ -769,7 +772,7 @@ uint32_t nv108_pwr_data[] = {
	0x00020000,
	0x00040000,
	0x00080000,
/* 0x0bd4: i2c_sda_map */
/* 0x0be0: i2c_sda_map */
	0x00100000,
	0x00200000,
	0x00400000,
@@ -781,6 +784,67 @@ uint32_t nv108_pwr_data[] = {
	0x10000000,
	0x20000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
	0x00000000,
};

uint32_t nv108_pwr_code[] = {
@@ -1124,389 +1188,390 @@ uint32_t nv108_pwr_code[] = {
	0x07c04604,
	0xf00066cf,
	0x0bf40464,
	0x001698f7,
	0xf80410b6,
/* 0x04a1: memx_func_leave */
	0x40040600,
	0x06f607e4,
/* 0x04ab: memx_func_leave_wait */
	0x4604bd00,
	0x66cf07c0,
	0x0464f000,
	0xf8f71bf4,
/* 0x04b9: memx_func_wr32 */
	0x00169800,
	0xb6011598,
	0x60f90810,
	0xd0fc50f9,
	0x2e7ee0fc,
	0x42b60000,
	0xe81bf402,
/* 0x04d6: memx_func_wait */
	0x2c0800f8,
	0x980088cf,
	0x1d98001e,
	0x021c9801,
	0xb6031b98,
	0x797e1010,
	0x00f80000,
/* 0x04f0: memx_func_delay */
	0xb6001e98,
	0x5d7e0410,
	0x00f80000,
/* 0x04fc: memx_exec */
	0xd0f9e0f9,
	0xb2b2c1b2,
/* 0x0504: memx_exec_next */
	0xb6001398,
	0x34950410,
	0x0c30f010,
	0xf9de3598,
	0xf412a655,
	0xd0fced1e,
	0xc27ee0fc,
	0x00f80002,
/* 0x0524: memx_info */
	0x4b03ac4c,
	0xc27e0800,
	0x00f80002,
/* 0x0530: memx_recv */
	0xf401d6b0,
	0xd6b0c90b,
	0xeb0bf400,
/* 0x053e: memx_init */
	0x00f800f8,
/* 0x0540: perf_recv */
/* 0x0542: perf_init */
	0x00f800f8,
/* 0x0544: i2c_drive_scl */
	0xf40036b0,
	0xe0400d0b,
	0x0001f607,
	0x00f804bd,
/* 0x0554: i2c_drive_scl_lo */
	0xf607e440,
	0x04bd0001,
/* 0x055e: i2c_drive_sda */
	0x36b000f8,
	0x0d0bf400,
	0xf607e040,
	0x04bd0002,
/* 0x056e: i2c_drive_sda_lo */
	0xe44000f8,
	0x0002f607,
	0x00f804bd,
/* 0x0578: i2c_sense_scl */
	0x430132f4,
	0x33cf07c4,
	0x0431fd00,
	0xf4060bf4,
/* 0x058a: i2c_sense_scl_done */
	0x00f80131,
/* 0x058c: i2c_sense_sda */
	0x430132f4,
	0x33cf07c4,
	0x0432fd00,
	0xf4060bf4,
/* 0x059e: i2c_sense_sda_done */
	0x00f80131,
/* 0x05a0: i2c_raise_scl */
	0x984440f9,
	0x7e010308,
/* 0x05ab: i2c_raise_scl_wait */
	0x4e000544,
	0x5d7e03e8,
	0x787e0000,
	0x01f40005,
	0x0142b609,
/* 0x05bf: i2c_raise_scl_done */
	0xfcef1bf4,
/* 0x05c3: i2c_start */
	0x7e00f840,
	0xf4000578,
	0x8c7e0d11,
/* 0x049b: memx_func_leave */
	0x0600f8f7,
	0x07e44004,
	0xbd0006f6,
/* 0x04a5: memx_func_leave_wait */
	0x07c04604,
	0xf00066cf,
	0x1bf40464,
/* 0x04b3: memx_func_wait_vblank */
	0xb600f8f7,
	0x00f80410,
/* 0x04b8: memx_func_wr32 */
	0x98001698,
	0x10b60115,
	0xf960f908,
	0xfcd0fc50,
	0x002e7ee0,
	0x0242b600,
	0xf8e81bf4,
/* 0x04d5: memx_func_wait */
	0xcf2c0800,
	0x1e980088,
	0x011d9800,
	0x98021c98,
	0x10b6031b,
	0x00797e10,
/* 0x04ef: memx_func_delay */
	0x9800f800,
	0x10b6001e,
	0x005d7e04,
/* 0x04fb: memx_exec */
	0xf900f800,
	0xb2d0f9e0,
/* 0x0503: 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,
	0x2e0ef406,
/* 0x05d4: i2c_start_rep */
	0x447e0003,
	0x01030005,
	0x00055e7e,
	0x058b7e0d,
	0x0611f400,
/* 0x05d3: i2c_start_rep */
	0x032e0ef4,
	0x05437e00,
	0x7e010300,
	0xbb00055d,
	0x65b60076,
	0x9450f904,
	0x56bb0465,
	0xfd50bd02,
	0x50fc0475,
	0x00059f7e,
	0xf40464b6,
/* 0x05fe: i2c_start_send */
	0x00031d11,
	0x00055d7e,
	0x7e13884e,
	0x0300005d,
	0x05437e00,
	0x13884e00,
	0x00005d7e,
/* 0x0618: i2c_start_out */
/* 0x061a: i2c_stop */
	0x000300f8,
	0x0005437e,
	0x5d7e0003,
	0xe84e0005,
	0x005d7e03,
	0x7e010300,
	0x4e000543,
	0x5d7e1388,
	0x01030000,
	0x00055d7e,
	0x7e13884e,
	0xf800005d,
/* 0x0649: i2c_bitw */
	0x055d7e00,
	0x03e84e00,
	0x00005d7e,
	0xb60076bb,
	0x50f90465,
	0xbb046594,
	0x50bd0256,
	0xfc0475fd,
	0x05a07e50,
	0x059f7e50,
	0x0464b600,
/* 0x05ff: i2c_start_send */
	0x031d11f4,
	0x055e7e00,
	0x13884e00,
	0x00005d7e,
	0x447e0003,
	0x884e0005,
	0x005d7e13,
/* 0x0619: i2c_start_out */
/* 0x061b: i2c_stop */
	0x0300f800,
	0x05447e00,
	0x7e000300,
	0x4e00055e,
	0x5d7e03e8,
	0x01030000,
	0x0005447e,
	0x4e1711f4,
	0x5d7e1388,
	0x00030000,
	0x0005437e,
	0x7e13884e,
	0x0300005d,
	0x055e7e01,
	0x13884e00,
	0x00005d7e,
/* 0x064a: i2c_bitw */
	0x5e7e00f8,
	0xe84e0005,
	0x005d7e03,
	0x0076bb00,
/* 0x0687: i2c_bitw_out */
	0xf800005d,
/* 0x0689: i2c_bitr */
	0x7e010300,
	0x4e00055d,
	0x5d7e03e8,
	0x76bb0000,
	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,
	0xa07e50fc,
	0x64b60005,
	0x1711f404,
	0x7e13884e,
	0x0300005d,
	0x05447e00,
	0x13884e00,
	0x00005d7e,
/* 0x0688: i2c_bitw_out */
/* 0x068a: i2c_bitr */
	0x010300f8,
	0x00055e7e,
	0x7e03e84e,
	0xbb00005d,
	0x897e50fc,
	0x64b60006,
	0x2a11f404,
	0xb60553fd,
	0x1bf40142,
	0xbb0103d8,
	0x65b60076,
	0x9450f904,
	0x56bb0465,
	0xfd50bd02,
	0x50fc0475,
	0x0005a07e,
	0xf40464b6,
	0x8c7e1a11,
	0x00030005,
	0x0005447e,
	0x7e13884e,
	0xf000005d,
	0x31f4013c,
/* 0x06cd: i2c_bitr_done */
/* 0x06cf: i2c_get_byte */
	0x0500f801,
/* 0x06d3: i2c_get_byte_next */
	0x0006497e,
/* 0x071b: i2c_get_byte_done */
	0xf80464b6,
/* 0x071d: i2c_put_byte */
/* 0x071f: i2c_put_byte_next */
	0xb6080400,
	0x76bb0154,
	0x0465b600,
	0x659450f9,
	0x0256bb04,
	0x75fd50bd,
	0x7e50fc04,
	0xb600068a,
	0x11f40464,
	0x0553fd2a,
	0xf40142b6,
	0x0103d81b,
	0xb60076bb,
	0x50f90465,
	0xbb046594,
	0x50bd0256,
	0xfc0475fd,
	0x064a7e50,
	0x0464b600,
/* 0x071c: i2c_get_byte_done */
/* 0x071e: i2c_put_byte */
	0x080400f8,
/* 0x0720: i2c_put_byte_next */
	0xff0142b6,
	0x76bb3854,
	0x54ff0142,
	0x0076bb38,
	0xf90465b6,
	0x04659450,
	0xbd0256bb,
	0x0475fd50,
	0x497e50fc,
	0x64b60006,
	0x3411f404,
	0xf40046b0,
	0x76bbd81b,
	0x0465b600,
	0x659450f9,
	0x0256bb04,
	0x75fd50bd,
	0x7e50fc04,
	0xb600064a,
	0xb6000689,
	0x11f40464,
	0x0046b034,
	0xbbd81bf4,
	0x0076bb0f,
	0xf40136b0,
	0x32f4061b,
/* 0x0775: i2c_put_byte_done */
/* 0x0777: i2c_addr */
	0xbb00f801,
	0x65b60076,
	0x9450f904,
	0x56bb0465,
	0xfd50bd02,
	0x50fc0475,
	0x00068a7e,
	0x0005c27e,
	0xf40464b6,
	0x76bb0f11,
	0x0136b000,
	0xf4061bf4,
/* 0x0776: i2c_put_byte_done */
	0x00f80132,
/* 0x0778: i2c_addr */
	0xc3e72911,
	0x34b6012e,
	0x0553fd01,
	0xb60076bb,
	0x50f90465,
	0xbb046594,
	0x50bd0256,
	0xfc0475fd,
	0x05c37e50,
	0x071d7e50,
	0x0464b600,
	0xe72911f4,
	0xb6012ec3,
	0x53fd0134,
	0x0076bb05,
	0xf90465b6,
	0x04659450,
	0xbd0256bb,
	0x0475fd50,
	0x1e7e50fc,
	0x64b60007,
/* 0x07bd: i2c_addr_done */
/* 0x07bf: i2c_acquire_addr */
	0xc700f804,
	0xe4b6f8ce,
	0x14e0b705,
/* 0x07cb: i2c_acquire */
	0x7e00f8d0,
	0x7e0007bf,
/* 0x07bc: i2c_addr_done */
/* 0x07be: i2c_acquire_addr */
	0xcec700f8,
	0x05e4b6f8,
	0xd014e0b7,
/* 0x07ca: i2c_acquire */
	0xbe7e00f8,
	0x047e0007,
	0xd9f00000,
	0x002e7e03,
/* 0x07db: i2c_release */
	0x7e00f800,
	0x7e0007be,
	0xf0000004,
	0x2e7e03d9,
	0x2e7e03da,
	0x00f80000,
/* 0x07dc: i2c_release */
	0x0007bf7e,
	0x0000047e,
	0x7e03daf0,
	0xf800002e,
/* 0x07ed: i2c_recv */
	0x0132f400,
	0xb6f8c1c7,
	0x16b00214,
	0x371ff528,
	0xd413b801,
	0x3298000b,
	0xac13b800,
	0x3198000b,
	0x0231f400,
	0xe0f9d0f9,
	0x67f1d0f9,
	0x63f10000,
	0x67921000,
	0x0076bb01,
	0xf90465b6,
	0x04659450,
	0xbd0256bb,
	0x0475fd50,
	0xcb7e50fc,
	0x64b60007,
	0xb0d0fc04,
	0x1bf500d6,
	0x000500b0,
/* 0x07ec: i2c_recv */
	0xc70132f4,
	0x14b6f8c1,
	0x2816b002,
	0x01371ff5,
	0x0be013b8,
	0x00329800,
	0x0bb813b8,
	0x00319800,
	0xf90231f4,
	0xf9e0f9d0,
	0x0067f1d0,
	0x0063f100,
	0x01679210,
	0xb60076bb,
	0x50f90465,
	0xbb046594,
	0x50bd0256,
	0xfc0475fd,
	0x07787e50,
	0x07ca7e50,
	0x0464b600,
	0x00cc11f5,
	0xbbe0c5c7,
	0xd6b0d0fc,
	0xb01bf500,
	0xbb000500,
	0x65b60076,
	0x9450f904,
	0x56bb0465,
	0xfd50bd02,
	0x50fc0475,
	0x00071e7e,
	0x0007777e,
	0xf50464b6,
	0x0500a911,
	0x0076bb01,
	0xf90465b6,
	0x04659450,
	0xbd0256bb,
	0x0475fd50,
	0x787e50fc,
	0x64b60007,
	0x8711f504,
	0x0076bb00,
	0xf90465b6,
	0x04659450,
	0xbd0256bb,
	0x0475fd50,
	0xcf7e50fc,
	0x64b60006,
	0x6711f404,
	0xbbe05bcb,
	0x65b60076,
	0x9450f904,
	0x56bb0465,
	0xfd50bd02,
	0x50fc0475,
	0x00061b7e,
	0xb20464b6,
	0xf474bd5b,
/* 0x08f2: i2c_recv_not_rd08 */
	0xd6b0410e,
	0x3b1bf401,
	0x787e0005,
	0xc700cc11,
	0x76bbe0c5,
	0x0465b600,
	0x659450f9,
	0x0256bb04,
	0x75fd50bd,
	0x7e50fc04,
	0xb600071d,
	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,
	0x11f40007,
	0xe0c5c732,
	0x00071e7e,
	0x052811f4,
	0x07787e00,
	0x1f11f400,
	0x7ee0b5c7,
	0xf400071e,
	0x1b7e1511,
	0x74bd0006,
	0xf408c5c7,
	0x32f4091b,
	0x030ef402,
/* 0x0930: i2c_recv_not_wr08 */
/* 0x0930: i2c_recv_done */
	0x7ef8cec7,
	0xfc0007dc,
	0xf4d0fce0,
	0x7cb20912,
	0x0002c27e,
/* 0x0944: i2c_recv_exit */
/* 0x0946: i2c_init */
	0x00f800f8,
/* 0x0948: test_recv */
	0xcf045841,
	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,
	0x0110b600,
	0xf6045840,
	0x04bd0001,
	0xd900e7f1,
	0x134fe3f1,
	0x0002017e,
/* 0x0966: test_init */
	0x004e00f8,
	0x02017e08,
/* 0x096f: idle_recv */
	0xf800f800,
/* 0x0971: idle */
	0x0031f400,
	0xcf045441,
	0x10b60011,
	0x04584001,
	0x04544001,
	0xbd0001f6,
	0x00e7f104,
	0x4fe3f1d9,
	0x02017e13,
/* 0x0967: test_init */
	0x4e00f800,
	0x017e0800,
	0x00f80002,
/* 0x0970: idle_recv */
/* 0x0972: idle */
	0x31f400f8,
	0x04544100,
	0xb60011cf,
	0x54400110,
	0x0001f604,
/* 0x0986: idle_loop */
	0x580104bd,
/* 0x098b: idle_proc */
/* 0x098b: idle_proc_exec */
	0xf90232f4,
	0x7e1eb210,
	0xfc0002cb,
	0x0911f410,
	0xf40231f4,
/* 0x099e: idle_proc_next */
	0x10b6f00e,
	0xf41fa658,
	0x02f4e81b,
	0x0028f4e0,
	0x00c60ef4,
/* 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,
+206 −136

File changed.

Preview size limit exceeded, changes collapsed.

Loading