Loading drivers/gpu/drm/nouveau/core/include/subdev/pwr.h +1 −0 Original line number Diff line number Diff line Loading @@ -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 drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h +16 −9 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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 drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc +55 −5 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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: Loading @@ -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 Loading @@ -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) Loading drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h +415 −350 Original line number Diff line number Diff line Loading @@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, 0x0000053e, 0x00000530, 0x0000053d, 0x0000052f, 0x00000000, 0x00000000, 0x00000000, Loading @@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, 0x00000542, 0x00000540, 0x00000541, 0x0000053f, 0x00000000, 0x00000000, 0x00000000, Loading @@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, 0x00000946, 0x000007ed, 0x00000945, 0x000007ec, 0x00000000, 0x00000000, 0x00000000, Loading @@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, 0x00000967, 0x00000948, 0x00000966, 0x00000947, 0x00000000, 0x00000000, 0x00000000, Loading @@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, 0x00000972, 0x00000970, 0x00000971, 0x0000096f, 0x00000000, 0x00000000, 0x00000000, Loading Loading @@ -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, Loading Loading @@ -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, Loading @@ -769,7 +772,7 @@ uint32_t nv108_pwr_data[] = { 0x00020000, 0x00040000, 0x00080000, /* 0x0bd4: i2c_sda_map */ /* 0x0be0: i2c_sda_map */ 0x00100000, 0x00200000, 0x00400000, Loading @@ -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[] = { Loading Loading @@ -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, Loading drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h +206 −136 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
drivers/gpu/drm/nouveau/core/include/subdev/pwr.h +1 −0 Original line number Diff line number Diff line Loading @@ -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
drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h +16 −9 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc +55 −5 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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: Loading @@ -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 Loading @@ -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) Loading
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h +415 −350 Original line number Diff line number Diff line Loading @@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, 0x0000053e, 0x00000530, 0x0000053d, 0x0000052f, 0x00000000, 0x00000000, 0x00000000, Loading @@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, 0x00000542, 0x00000540, 0x00000541, 0x0000053f, 0x00000000, 0x00000000, 0x00000000, Loading @@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, 0x00000946, 0x000007ed, 0x00000945, 0x000007ec, 0x00000000, 0x00000000, 0x00000000, Loading @@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, 0x00000967, 0x00000948, 0x00000966, 0x00000947, 0x00000000, 0x00000000, 0x00000000, Loading @@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, 0x00000972, 0x00000970, 0x00000971, 0x0000096f, 0x00000000, 0x00000000, 0x00000000, Loading Loading @@ -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, Loading Loading @@ -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, Loading @@ -769,7 +772,7 @@ uint32_t nv108_pwr_data[] = { 0x00020000, 0x00040000, 0x00080000, /* 0x0bd4: i2c_sda_map */ /* 0x0be0: i2c_sda_map */ 0x00100000, 0x00200000, 0x00400000, Loading @@ -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[] = { Loading Loading @@ -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, Loading
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h +206 −136 File changed.Preview size limit exceeded, changes collapsed. Show changes