Loading drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc +74 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,80 @@ intr: bclr $flags $p0 iret // calculate the number of ticks in the specified nanoseconds delay // // $r15 - current // $r14 - ns // $r14 - ticks (return) // $r0 - zero ticks_from_ns: push $r12 push $r11 /* try not losing precision (multiply then divide) */ imm32($r13, HW_TICKS_PER_US) call #mulu32_32_64 /* use an immeditate, it's ok because HW_TICKS_PER_US < 16 bits */ div $r12 $r12 1000 /* check if there wasn't any overflow */ cmpu b32 $r11 0 bra e #ticks_from_ns_quit /* let's divide then multiply, too bad for the precision! */ div $r14 $r14 1000 imm32($r13, HW_TICKS_PER_US) call #mulu32_32_64 /* this cannot overflow as long as HW_TICKS_PER_US < 1000 */ ticks_from_ns_quit: mov b32 $r14 $r12 pop $r11 pop $r12 ret // calculate the number of ticks in the specified microsecond delay // // $r15 - current // $r14 - us // $r14 - ticks (return) // $r0 - zero ticks_from_us: push $r12 push $r11 /* simply multiply $us by HW_TICKS_PER_US */ imm32($r13, HW_TICKS_PER_US) call #mulu32_32_64 mov b32 $r14 $r12 /* check if there wasn't any overflow */ cmpu b32 $r11 0 bra e #ticks_from_us_quit /* Overflow! */ clear b32 $r14 ticks_from_us_quit: pop $r11 pop $r12 ret // calculate the number of ticks in the specified microsecond delay // // $r15 - current // $r14 - ticks // $r14 - us (return) // $r0 - zero ticks_to_us: /* simply divide $ticks by HW_TICKS_PER_US */ imm32($r13, HW_TICKS_PER_US) div $r14 $r14 $r13 ret // request the current process be sent a message after a timeout expires // // $r15 - current Loading drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ */ #define NVKM_PPWR_CHIPSET GK208 #define HW_TICKS_PER_US 324 #define NVKM_FALCON_PC24 #define NVKM_FALCON_UNSHIFTED_IO Loading drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h +555 −550 Original line number Diff line number Diff line Loading @@ -24,8 +24,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, /* 0x0058: proc_list_head */ 0x54534f48, 0x000003e0, 0x00000391, 0x0000043b, 0x000003ec, 0x00000000, 0x00000000, 0x00000000, Loading @@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, 0x000004cb, 0x000004bd, 0x00000526, 0x00000518, 0x00000000, 0x00000000, 0x00000000, Loading @@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, 0x000004cf, 0x000004cd, 0x0000052a, 0x00000528, 0x00000000, 0x00000000, 0x00000000, Loading @@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, 0x000008d3, 0x0000077a, 0x0000092e, 0x000007d5, 0x00000000, 0x00000000, 0x00000000, Loading @@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, 0x000008f4, 0x000008d5, 0x0000094f, 0x00000930, 0x00000000, 0x00000000, 0x00000000, Loading @@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, 0x000008ff, 0x000008fd, 0x0000095a, 0x00000958, 0x00000000, 0x00000000, 0x00000000, Loading Loading @@ -229,20 +229,20 @@ uint32_t nv108_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, 0x00000410, 0x0000046b, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, 0x0000042e, 0x00000489, 0x00000002, 0x00000002, 0x00000446, 0x000004a1, 0x00040003, 0x00000000, 0x00000463, 0x000004be, 0x00010004, 0x00000000, 0x0000047d, 0x000004d8, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, Loading Loading @@ -784,7 +784,7 @@ uint32_t nv108_pwr_data[] = { }; uint32_t nv108_pwr_code[] = { 0x02a90ef5, 0x03040ef5, /* 0x0004: rd32 */ 0xf607a040, 0x04bd000e, Loading Loading @@ -836,7 +836,7 @@ uint32_t nv108_pwr_code[] = { 0x0a98280b, 0x029abb9a, 0x0d0e1cf4, 0x01f67e01, 0x02517e01, 0xf494bd00, /* 0x00b2: intr_watchdog_next_time */ 0x0a98140e, Loading Loading @@ -881,7 +881,7 @@ uint32_t nv108_pwr_code[] = { 0xc0f900cc, 0xf14f484e, 0x0d5453e3, 0x02577e00, 0x02b27e00, 0x40c0fc00, 0x0cf604c0, /* 0x0157: intr_subintr_skip_fifo */ Loading @@ -904,598 +904,603 @@ uint32_t nv108_pwr_code[] = { 0xfca0fcb0, 0xfc80fc90, 0x0032f400, /* 0x0196: timer */ 0x90f901f8, 0x32f480f9, 0x03f89810, 0xf40086b0, 0x84bd4a1c, 0x08f63800, 0x0804bd00, 0x0088cf34, 0xbb9a0998, 0xe9bb0298, 0x03feb500, 0x88cf0808, 0x0284f000, 0x081c1bf4, 0x0088cf34, 0x0bf4e0a6, 0xf4e8a608, /* 0x01da: timer_reset */ 0x34000d1c, 0xbd000ef6, 0x9a0eb504, /* 0x01e4: timer_enable */ 0x38000108, 0xbd0008f6, /* 0x01ed: timer_done */ 0x1031f404, 0x90fc80fc, /* 0x01f6: send_proc */ 0x80f900f8, 0xe89890f9, 0x04e99805, 0xa60486f0, 0x2a0bf489, 0x940398c4, 0x80b60488, 0x008ebb18, 0xb500fa98, 0x8db5008a, 0x028cb501, 0xb6038bb5, 0x94f00190, 0x04e9b507, /* 0x022f: send_done */ 0xfc0231f4, 0xf880fc90, /* 0x0235: find */ 0x0880f900, 0x0131f458, /* 0x023c: find_loop */ 0xa6008a98, 0x100bf4ae, 0xb15880b6, 0xf4026886, 0x32f4f11b, /* 0x0251: find_done */ 0xfc8eb201, /* 0x0257: send */ 0x7e00f880, 0xf4000235, 0x00f89b01, /* 0x0260: recv */ 0x9805e898, 0x32f404e9, 0xf489a601, 0x89c43c0b, 0x0180b603, 0xb50784f0, 0xea9805e8, 0xfef0f902, 0xf0f9018f, 0x9994efb2, 0x00e9bb04, 0x9818e0b6, 0xec9803eb, 0x01ed9802, 0xf900ee98, 0xfef0fca5, 0x31f400f8, /* 0x02a7: recv_done */ 0xf8f0fc01, /* 0x02a9: init */ 0x01084100, 0xe70011cf, 0xb6010911, 0x14fe0814, 0x00e04100, 0x000013f0, 0x0001f61c, 0xff0104bd, 0x01f61400, 0x0104bd00, 0x0015f102, 0xf6100008, 0x04bd0001, 0xf000d241, 0x10fe0013, 0x1031f400, 0x38000101, /* 0x0196: ticks_from_ns */ 0xc0f901f8, 0xd7f1b0f9, 0xd3f00144, 0x5f21f500, 0xe8ccec03, 0x00b4b003, 0xec120bf4, 0xf103e8ee, 0xf00144d7, 0x21f500d3, /* 0x01be: ticks_from_ns_quit */ 0xceb2035f, 0xc0fcb0fc, /* 0x01c6: ticks_from_us */ 0xc0f900f8, 0xd7f1b0f9, 0xd3f00144, 0x5f21f500, 0xb0ceb203, 0x0bf400b4, /* 0x01df: ticks_from_us_quit */ 0xfce4bd05, 0xf8c0fcb0, /* 0x01e5: ticks_to_us */ 0x44d7f100, 0x00d3f001, 0xf8ecedff, /* 0x01f1: timer */ 0xf990f900, 0x1032f480, 0xb003f898, 0x1cf40086, 0x0084bd4a, 0x0008f638, 0x340804bd, 0x980088cf, 0x98bb9a09, 0x00e9bb02, 0x0803feb5, 0x0088cf08, 0xf40284f0, 0x34081c1b, 0xa60088cf, 0x080bf4e0, 0x1cf4e8a6, /* 0x0235: timer_reset */ 0xf634000d, 0x04bd000e, /* 0x023f: timer_enable */ 0x089a0eb5, 0xf6380001, 0x04bd0008, /* 0x0248: timer_done */ 0xfc1031f4, 0xf890fc80, /* 0x0251: send_proc */ 0xf980f900, 0x05e89890, 0xf004e998, 0x89a60486, 0xc42a0bf4, 0x88940398, 0x1880b604, 0x98008ebb, 0x8ab500fa, 0x018db500, 0xb5028cb5, 0x90b6038b, 0x0794f001, 0xf404e9b5, /* 0x028a: send_done */ 0x90fc0231, 0x00f880fc, /* 0x0290: find */ 0x580880f9, /* 0x0297: find_loop */ 0x980131f4, 0xaea6008a, 0xb6100bf4, 0x86b15880, 0x1bf40268, 0x0132f4f1, /* 0x02ac: find_done */ 0x80fc8eb2, /* 0x02b2: send */ 0x907e00f8, 0x01f40002, /* 0x02bb: recv */ 0x9800f89b, 0xe99805e8, 0x0132f404, 0x0bf489a6, 0x0389c43c, 0xf00180b6, 0xe8b50784, 0x02ea9805, 0x8ffef0f9, 0xb2f0f901, 0x049994ef, 0xb600e9bb, 0xeb9818e0, 0x02ec9803, 0x9801ed98, 0xa5f900ee, 0xf8fef0fc, 0x0131f400, /* 0x0302: recv_done */ 0x00f8f0fc, /* 0x0304: init */ 0xcf010841, 0x11e70011, 0x14b60109, 0x0014fe08, 0xf000e041, 0x1c000013, 0xbd0001f6, /* 0x02f3: init_proc */ 0x98580f04, 0x16b001f1, 0xfa0bf400, 0xf0b615f9, 0xf20ef458, /* 0x0304: mulu32_32_64 */ 0x20f910f9, 0x40f930f9, 0x9510e195, 0xc4bd10d2, 0xedffb4bd, 0x301dffc0, 0x00ff0104, 0x0001f614, 0x020104bd, 0x080015f1, 0x01f61000, 0x4104bd00, 0x13f000d2, 0x0010fe00, 0x011031f4, 0xf6380001, 0x04bd0001, /* 0x034e: init_proc */ 0xf198580f, 0x0016b001, 0xf9fa0bf4, 0x58f0b615, /* 0x035f: mulu32_32_64 */ 0xf9f20ef4, 0xf920f910, 0x9540f930, 0xd29510e1, 0xbdc4bd10, 0xc0edffb4, 0xb2301dff, 0xff34f134, 0x1034b6ff, 0xbb1045b6, 0xb4bb00c3, 0x30e2ff01, 0x34f134b2, 0x34b6ffff, 0x1045b610, 0xbb00c3bb, 0xe2ff01b4, 0xf134b230, 0xb6ffff34, 0x45b61034, 0x00c3bb10, 0xff01b4bb, 0xb3bb3012, 0xfc40fc00, 0xfc20fc30, /* 0x0353: host_send */ 0x4100f810, 0x11cf04b0, 0x04a04200, 0xa60022cf, 0x2e0bf412, 0x94071ec4, 0xe0b704ee, 0xeb980270, 0x02ec9803, 0x9801ed98, 0x577e00ee, 0x10b60002, 0x0f1ec401, 0xf604b040, 0x04bd000e, /* 0x038f: host_send_done */ 0xf8c70ef4, /* 0x0391: host_recv */ 0x4e494100, 0x525413f1, 0x0bf4e1a6, /* 0x039d: host_recv_wait */ 0x04cc41b9, 0x420011cf, 0x22cf04c8, 0x0816f000, 0x0bf412a6, 0x0723c4ef, 0xb70434b6, 0xb502f030, 0x3cb5033b, 0x013db502, 0xb6003eb5, 0x24f00120, 0x04c8400f, 0x12ff01b4, 0x00b3bb30, 0x30fc40fc, 0x10fc20fc, /* 0x03ae: host_send */ 0xb04100f8, 0x0011cf04, 0xcf04a042, 0x12a60022, 0xc42e0bf4, 0xee94071e, 0x70e0b704, 0x03eb9802, 0x9802ec98, 0xee9801ed, 0x02b27e00, 0x0110b600, 0x400f1ec4, 0x0ef604b0, 0xf404bd00, /* 0x03ea: host_send_done */ 0x00f8c70e, /* 0x03ec: host_recv */ 0xf14e4941, 0xa6525413, 0xb90bf4e1, /* 0x03f8: host_recv_wait */ 0xcf04cc41, 0xc8420011, 0x0022cf04, 0xa60816f0, 0xef0bf412, 0xb60723c4, 0x30b70434, 0x3bb502f0, 0x023cb503, 0xb5013db5, 0x20b6003e, 0x0f24f001, 0xf604c840, 0x04bd0002, 0x00004002, 0xbd0002f6, 0x00400204, 0x0002f600, /* 0x043b: host_init */ 0x4100f804, 0x14b60080, 0x7015f110, 0x04d04002, 0xbd0001f6, 0x00804104, 0xf11014b6, 0x4002f015, 0x01f604dc, 0x0104bd00, 0x04c44001, 0xbd0001f6, /* 0x046b: memx_func_enter */ 0x0600f804, 0x07e04004, 0xbd0006f6, /* 0x0475: memx_func_enter_wait */ 0x07c04604, 0xf00066cf, 0x0bf40464, 0x001698f7, 0xf80410b6, /* 0x0489: memx_func_leave */ 0x40040600, 0x06f607e4, /* 0x0493: memx_func_leave_wait */ 0x4604bd00, 0x66cf07c0, 0x0464f000, 0xf8f71bf4, /* 0x04a1: memx_func_wr32 */ 0x00169800, 0xb6011598, 0x60f90810, 0xd0fc50f9, 0x2e7ee0fc, 0x42b60000, 0xe81bf402, /* 0x04be: memx_func_wait */ 0x2c0800f8, 0x980088cf, 0x1d98001e, 0x021c9801, 0xb6031b98, 0x717e1010, 0x00f80000, /* 0x04d8: memx_func_delay */ 0xb6001e98, 0x5d7e0410, 0x00f80000, /* 0x04e4: memx_exec */ 0xd0f9e0f9, 0xb2b2c1b2, /* 0x04ec: memx_exec_next */ 0xb6001398, 0x34950410, 0x0c30f010, 0xf9de3598, 0xf412a655, 0xd0fced1e, 0xb27ee0fc, 0x00f80002, /* 0x050c: memx_info */ 0x4b03ac4c, 0xb27e0800, 0x00f80002, /* 0x0518: memx_recv */ 0xf401d6b0, 0xd6b0c90b, 0xeb0bf400, /* 0x0526: memx_init */ 0x00f800f8, /* 0x0528: perf_recv */ /* 0x052a: perf_init */ 0x00f800f8, /* 0x052c: i2c_drive_scl */ 0xf40036b0, 0xe0400d0b, 0x0001f607, 0x00f804bd, /* 0x03e0: host_init */ 0xb6008041, 0x15f11014, 0xd0400270, 0x0001f604, 0x804104bd, 0x1014b600, 0x02f015f1, 0xf604dc40, /* 0x053c: i2c_drive_scl_lo */ 0xf607e440, 0x04bd0001, 0xc4400101, 0x0001f604, /* 0x0546: i2c_drive_sda */ 0x36b000f8, 0x0d0bf400, 0xf607e040, 0x04bd0002, /* 0x0556: i2c_drive_sda_lo */ 0xe44000f8, 0x0002f607, 0x00f804bd, /* 0x0410: memx_func_enter */ 0xe0400406, 0x0006f607, /* 0x041a: memx_func_enter_wait */ 0xc04604bd, 0x0066cf07, 0xf40464f0, 0x1698f70b, 0x0410b600, /* 0x042e: memx_func_leave */ 0x040600f8, 0xf607e440, 0x04bd0006, /* 0x0438: memx_func_leave_wait */ 0xcf07c046, 0x64f00066, 0xf71bf404, /* 0x0446: memx_func_wr32 */ 0x169800f8, 0x01159800, 0xf90810b6, 0xfc50f960, 0x7ee0fcd0, 0xb600002e, 0x1bf40242, /* 0x0463: memx_func_wait */ 0x0800f8e8, 0x0088cf2c, 0x98001e98, 0x1c98011d, 0x031b9802, 0x7e1010b6, 0xf8000071, /* 0x047d: memx_func_delay */ 0x001e9800, 0x7e0410b6, 0xf800005d, /* 0x0489: memx_exec */ 0xf9e0f900, 0xb2c1b2d0, /* 0x0491: memx_exec_next */ 0x001398b2, 0x950410b6, 0x30f01034, 0xde35980c, 0x12a655f9, 0xfced1ef4, 0x7ee0fcd0, 0xf8000257, /* 0x04b1: memx_info */ 0x03ac4c00, 0x7e08004b, 0xf8000257, /* 0x04bd: memx_recv */ 0x01d6b000, 0xb0c90bf4, 0x0bf400d6, /* 0x04cb: memx_init */ 0xf800f8eb, /* 0x04cd: perf_recv */ /* 0x04cf: perf_init */ 0xf800f800, /* 0x04d1: i2c_drive_scl */ 0x0036b000, 0x400d0bf4, 0x01f607e0, 0xf804bd00, /* 0x04e1: i2c_drive_scl_lo */ 0x07e44000, 0xbd0001f6, /* 0x04eb: i2c_drive_sda */ 0xb000f804, 0x0bf40036, 0x07e0400d, 0xbd0002f6, /* 0x04fb: i2c_drive_sda_lo */ 0x4000f804, 0x02f607e4, 0xf804bd00, /* 0x0505: i2c_sense_scl */ 0x0132f400, 0xcf07c443, 0x31fd0033, 0x060bf404, /* 0x0517: i2c_sense_scl_done */ 0xf80131f4, /* 0x0519: i2c_sense_sda */ 0x0132f400, 0xcf07c443, 0x32fd0033, 0x060bf404, /* 0x052b: i2c_sense_sda_done */ 0xf80131f4, /* 0x052d: i2c_raise_scl */ 0x4440f900, 0x01030898, 0x0004d17e, /* 0x0538: i2c_raise_scl_wait */ 0x7e03e84e, 0x7e00005d, 0xf4000505, 0x42b60901, 0xef1bf401, /* 0x054c: i2c_raise_scl_done */ 0x00f840fc, /* 0x0550: i2c_start */ 0x0005057e, 0x7e0d11f4, 0xf4000519, 0x0ef40611, /* 0x0561: i2c_start_rep */ 0x7e00032e, 0x030004d1, 0x04eb7e01, /* 0x0560: i2c_sense_scl */ 0x430132f4, 0x33cf07c4, 0x0431fd00, 0xf4060bf4, /* 0x0572: i2c_sense_scl_done */ 0x00f80131, /* 0x0574: i2c_sense_sda */ 0x430132f4, 0x33cf07c4, 0x0432fd00, 0xf4060bf4, /* 0x0586: i2c_sense_sda_done */ 0x00f80131, /* 0x0588: i2c_raise_scl */ 0x984440f9, 0x7e010308, /* 0x0593: i2c_raise_scl_wait */ 0x4e00052c, 0x5d7e03e8, 0x607e0000, 0x01f40005, 0x0142b609, /* 0x05a7: i2c_raise_scl_done */ 0xfcef1bf4, /* 0x05ab: i2c_start */ 0x7e00f840, 0xf4000560, 0x747e0d11, 0x11f40005, 0x2e0ef406, /* 0x05bc: i2c_start_rep */ 0x2c7e0003, 0x01030005, 0x0005467e, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x05887e50, 0x0464b600, /* 0x05e7: i2c_start_send */ 0x031d11f4, 0x05467e00, 0x13884e00, 0x00005d7e, 0x2c7e0003, 0x884e0005, 0x005d7e13, /* 0x0601: i2c_start_out */ /* 0x0603: i2c_stop */ 0x0300f800, 0x052c7e00, 0x7e000300, 0x4e000546, 0x5d7e03e8, 0x01030000, 0x00052c7e, 0x7e13884e, 0x0300005d, 0x05467e01, 0x13884e00, 0x00005d7e, /* 0x0632: i2c_bitw */ 0x467e00f8, 0xe84e0005, 0x005d7e03, 0x0076bb00, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x2d7e50fc, 0x887e50fc, 0x64b60005, 0x1d11f404, /* 0x058c: i2c_start_send */ 0xeb7e0003, 0x884e0004, 0x005d7e13, 0x7e000300, 0x4e0004d1, 0x5d7e1388, /* 0x05a6: i2c_start_out */ 0x00f80000, /* 0x05a8: i2c_stop */ 0xd17e0003, 0x00030004, 0x0004eb7e, 0x7e03e84e, 0x1711f404, 0x7e13884e, 0x0300005d, 0x04d17e01, 0x052c7e00, 0x13884e00, 0x00005d7e, 0xeb7e0103, 0x884e0004, 0x005d7e13, /* 0x05d7: i2c_bitw */ 0x7e00f800, 0x4e0004eb, 0x5d7e03e8, 0x76bb0000, /* 0x0670: i2c_bitw_out */ /* 0x0672: i2c_bitr */ 0x010300f8, 0x0005467e, 0x7e03e84e, 0xbb00005d, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0005887e, 0xf40464b6, 0x747e1a11, 0x00030005, 0x00052c7e, 0x7e13884e, 0xf000005d, 0x31f4013c, /* 0x06b5: i2c_bitr_done */ /* 0x06b7: i2c_get_byte */ 0x0500f801, /* 0x06bb: i2c_get_byte_next */ 0xb6080400, 0x76bb0154, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb600052d, 0xb6000672, 0x11f40464, 0x13884e17, 0x00005d7e, 0xd17e0003, 0x884e0004, 0x005d7e13, /* 0x0615: i2c_bitw_out */ /* 0x0617: i2c_bitr */ 0x0300f800, 0x04eb7e01, 0x03e84e00, 0x00005d7e, 0x0553fd2a, 0xf40142b6, 0x0103d81b, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x052d7e50, 0x06327e50, 0x0464b600, 0x7e1a11f4, 0x03000519, 0x04d17e00, 0x13884e00, 0x00005d7e, 0xf4013cf0, /* 0x065a: i2c_bitr_done */ 0x00f80131, /* 0x065c: i2c_get_byte */ 0x08040005, /* 0x0660: i2c_get_byte_next */ 0xbb0154b6, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0006177e, 0xf40464b6, 0x53fd2a11, 0x0142b605, 0x03d81bf4, 0x0076bb01, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0xd77e50fc, 0x64b60005, /* 0x06a9: i2c_get_byte_done */ /* 0x06ab: i2c_put_byte */ 0x0400f804, /* 0x06ad: i2c_put_byte_next */ 0x0142b608, 0xbb3854ff, /* 0x0704: i2c_get_byte_done */ /* 0x0706: i2c_put_byte */ 0x080400f8, /* 0x0708: i2c_put_byte_next */ 0xff0142b6, 0x76bb3854, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb6000632, 0x11f40464, 0x0046b034, 0xbbd81bf4, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0005d77e, 0x0006727e, 0xf40464b6, 0x46b03411, 0xd81bf400, 0x76bb0f11, 0x0136b000, 0xf4061bf4, /* 0x075e: i2c_put_byte_done */ 0x00f80132, /* 0x0760: i2c_addr */ 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x06177e50, 0x05ab7e50, 0x0464b600, 0xbb0f11f4, 0x36b00076, 0x061bf401, /* 0x0703: i2c_put_byte_done */ 0xf80132f4, /* 0x0705: i2c_addr */ 0x0076bb00, 0xe72911f4, 0xb6012ec3, 0x53fd0134, 0x0076bb05, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x507e50fc, 0x64b60005, 0x2911f404, 0x012ec3e7, 0xfd0134b6, 0x76bb0553, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb60006ab, /* 0x074a: i2c_addr_done */ 0x00f80464, /* 0x074c: i2c_acquire_addr */ 0xb6f8cec7, 0xe0b705e4, 0x00f8d014, /* 0x0758: i2c_acquire */ 0x00074c7e, 0x067e50fc, 0x64b60007, /* 0x07a5: i2c_addr_done */ /* 0x07a7: i2c_acquire_addr */ 0xc700f804, 0xe4b6f8ce, 0x14e0b705, /* 0x07b3: i2c_acquire */ 0x7e00f8d0, 0x7e0007a7, 0xf0000004, 0x2e7e03d9, 0x00f80000, /* 0x07c4: i2c_release */ 0x0007a77e, 0x0000047e, 0x7e03d9f0, 0x7e03daf0, 0xf800002e, /* 0x0769: i2c_release */ 0x074c7e00, 0x00047e00, 0x03daf000, 0x00002e7e, /* 0x077a: i2c_recv */ 0x32f400f8, 0xf8c1c701, 0xb00214b6, 0x1ff52816, 0x13b80137, 0x98000bd4, 0x13b80032, 0x98000bac, 0x31f40031, 0xf9d0f902, 0xf1d0f9e0, 0xf1000067, 0x92100063, 0x76bb0167, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb6000758, 0xd0fc0464, 0xf500d6b0, 0x0500b01b, 0x0076bb00, /* 0x07d5: i2c_recv */ 0x0132f400, 0xb6f8c1c7, 0x16b00214, 0x371ff528, 0xd413b801, 0x3298000b, 0xac13b800, 0x3198000b, 0x0231f400, 0xe0f9d0f9, 0x67f1d0f9, 0x63f10000, 0x67921000, 0x0076bb01, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x057e50fc, 0xb37e50fc, 0x64b60007, 0xcc11f504, 0xe0c5c700, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x06ab7e50, 0x0464b600, 0x00a911f5, 0x76bb0105, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb6000705, 0x11f50464, 0x76bb0087, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb600065c, 0x11f40464, 0xe05bcb67, 0xb0d0fc04, 0x1bf500d6, 0x000500b0, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x05a87e50, 0x07607e50, 0x0464b600, 0x74bd5bb2, /* 0x087f: i2c_recv_not_rd08 */ 0xb0410ef4, 0x1bf401d6, 0x7e00053b, 0xf4000705, 0xc5c73211, 0x06ab7ee0, 0x2811f400, 0x057e0005, 0x00cc11f5, 0xbbe0c5c7, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0007067e, 0xf50464b6, 0x0500a911, 0x0076bb01, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x607e50fc, 0x64b60007, 0x8711f504, 0x0076bb00, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0xb77e50fc, 0x64b60006, 0x6711f404, 0xbbe05bcb, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0006037e, 0xb20464b6, 0xf474bd5b, /* 0x08da: i2c_recv_not_rd08 */ 0xd6b0410e, 0x3b1bf401, 0x607e0005, 0x11f40007, 0xe0b5c71f, 0x0006ab7e, 0x7e1511f4, 0xbd0005a8, 0x08c5c774, 0xf4091bf4, 0x0ef40232, /* 0x08bd: i2c_recv_not_wr08 */ /* 0x08bd: i2c_recv_done */ 0xf8cec703, 0x0007697e, 0xd0fce0fc, 0xb20912f4, 0x02577e7c, /* 0x08d1: i2c_recv_exit */ /* 0x08d3: i2c_init */ 0xf800f800, /* 0x08d5: test_recv */ 0x04584100, 0xe0c5c732, 0x0007067e, 0x052811f4, 0x07607e00, 0x1f11f400, 0x7ee0b5c7, 0xf4000706, 0x037e1511, 0x74bd0006, 0xf408c5c7, 0x32f4091b, 0x030ef402, /* 0x0918: i2c_recv_not_wr08 */ /* 0x0918: i2c_recv_done */ 0x7ef8cec7, 0xfc0007c4, 0xf4d0fce0, 0x7cb20912, 0x0002b27e, /* 0x092c: i2c_recv_exit */ /* 0x092e: i2c_init */ 0x00f800f8, /* 0x0930: test_recv */ 0xcf045841, 0x10b60011, 0x04584001, 0xbd0001f6, 0x00e7f104, 0x4fe3f1d9, 0x01f17e13, /* 0x094f: test_init */ 0x4e00f800, 0xf17e0800, 0x00f80001, /* 0x0958: idle_recv */ /* 0x095a: idle */ 0x31f400f8, 0x04544100, 0xb60011cf, 0x58400110, 0x54400110, 0x0001f604, 0xe7f104bd, 0xe3f1d900, 0x967e134f, 0x00f80001, /* 0x08f4: test_init */ 0x7e08004e, 0xf8000196, /* 0x08fd: idle_recv */ /* 0x08ff: idle */ 0xf400f800, 0x54410031, 0x0011cf04, 0x400110b6, 0x01f60454, /* 0x0913: idle_loop */ 0x0104bd00, 0x0232f458, /* 0x0918: idle_proc */ /* 0x0918: idle_proc_exec */ 0x1eb210f9, 0x0002607e, 0x11f410fc, 0x0231f409, /* 0x092b: idle_proc_next */ 0xb6f00ef4, 0x1fa65810, 0xf4e81bf4, 0x28f4e002, 0xc60ef400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x096e: idle_loop */ 0x580104bd, /* 0x0973: idle_proc */ /* 0x0973: idle_proc_exec */ 0xf90232f4, 0x7e1eb210, 0xfc0002bb, 0x0911f410, 0xf40231f4, /* 0x0986: idle_proc_next */ 0x10b6f00e, 0xf41fa658, 0x02f4e81b, 0x0028f4e0, 0x00c60ef4, 0x00000000, 0x00000000, 0x00000000, Loading drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ */ #define NVKM_PPWR_CHIPSET GT215 #define HW_TICKS_PER_US 203 // should be 202.5 //#define NVKM_FALCON_PC24 //#define NVKM_FALCON_UNSHIFTED_IO Loading drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h +598 −593 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc +74 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,80 @@ intr: bclr $flags $p0 iret // calculate the number of ticks in the specified nanoseconds delay // // $r15 - current // $r14 - ns // $r14 - ticks (return) // $r0 - zero ticks_from_ns: push $r12 push $r11 /* try not losing precision (multiply then divide) */ imm32($r13, HW_TICKS_PER_US) call #mulu32_32_64 /* use an immeditate, it's ok because HW_TICKS_PER_US < 16 bits */ div $r12 $r12 1000 /* check if there wasn't any overflow */ cmpu b32 $r11 0 bra e #ticks_from_ns_quit /* let's divide then multiply, too bad for the precision! */ div $r14 $r14 1000 imm32($r13, HW_TICKS_PER_US) call #mulu32_32_64 /* this cannot overflow as long as HW_TICKS_PER_US < 1000 */ ticks_from_ns_quit: mov b32 $r14 $r12 pop $r11 pop $r12 ret // calculate the number of ticks in the specified microsecond delay // // $r15 - current // $r14 - us // $r14 - ticks (return) // $r0 - zero ticks_from_us: push $r12 push $r11 /* simply multiply $us by HW_TICKS_PER_US */ imm32($r13, HW_TICKS_PER_US) call #mulu32_32_64 mov b32 $r14 $r12 /* check if there wasn't any overflow */ cmpu b32 $r11 0 bra e #ticks_from_us_quit /* Overflow! */ clear b32 $r14 ticks_from_us_quit: pop $r11 pop $r12 ret // calculate the number of ticks in the specified microsecond delay // // $r15 - current // $r14 - ticks // $r14 - us (return) // $r0 - zero ticks_to_us: /* simply divide $ticks by HW_TICKS_PER_US */ imm32($r13, HW_TICKS_PER_US) div $r14 $r14 $r13 ret // request the current process be sent a message after a timeout expires // // $r15 - current Loading
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ */ #define NVKM_PPWR_CHIPSET GK208 #define HW_TICKS_PER_US 324 #define NVKM_FALCON_PC24 #define NVKM_FALCON_UNSHIFTED_IO Loading
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h +555 −550 Original line number Diff line number Diff line Loading @@ -24,8 +24,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, /* 0x0058: proc_list_head */ 0x54534f48, 0x000003e0, 0x00000391, 0x0000043b, 0x000003ec, 0x00000000, 0x00000000, 0x00000000, Loading @@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, 0x000004cb, 0x000004bd, 0x00000526, 0x00000518, 0x00000000, 0x00000000, 0x00000000, Loading @@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, 0x000004cf, 0x000004cd, 0x0000052a, 0x00000528, 0x00000000, 0x00000000, 0x00000000, Loading @@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, 0x000008d3, 0x0000077a, 0x0000092e, 0x000007d5, 0x00000000, 0x00000000, 0x00000000, Loading @@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, 0x000008f4, 0x000008d5, 0x0000094f, 0x00000930, 0x00000000, 0x00000000, 0x00000000, Loading @@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, 0x000008ff, 0x000008fd, 0x0000095a, 0x00000958, 0x00000000, 0x00000000, 0x00000000, Loading Loading @@ -229,20 +229,20 @@ uint32_t nv108_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, 0x00000410, 0x0000046b, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, 0x0000042e, 0x00000489, 0x00000002, 0x00000002, 0x00000446, 0x000004a1, 0x00040003, 0x00000000, 0x00000463, 0x000004be, 0x00010004, 0x00000000, 0x0000047d, 0x000004d8, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, Loading Loading @@ -784,7 +784,7 @@ uint32_t nv108_pwr_data[] = { }; uint32_t nv108_pwr_code[] = { 0x02a90ef5, 0x03040ef5, /* 0x0004: rd32 */ 0xf607a040, 0x04bd000e, Loading Loading @@ -836,7 +836,7 @@ uint32_t nv108_pwr_code[] = { 0x0a98280b, 0x029abb9a, 0x0d0e1cf4, 0x01f67e01, 0x02517e01, 0xf494bd00, /* 0x00b2: intr_watchdog_next_time */ 0x0a98140e, Loading Loading @@ -881,7 +881,7 @@ uint32_t nv108_pwr_code[] = { 0xc0f900cc, 0xf14f484e, 0x0d5453e3, 0x02577e00, 0x02b27e00, 0x40c0fc00, 0x0cf604c0, /* 0x0157: intr_subintr_skip_fifo */ Loading @@ -904,598 +904,603 @@ uint32_t nv108_pwr_code[] = { 0xfca0fcb0, 0xfc80fc90, 0x0032f400, /* 0x0196: timer */ 0x90f901f8, 0x32f480f9, 0x03f89810, 0xf40086b0, 0x84bd4a1c, 0x08f63800, 0x0804bd00, 0x0088cf34, 0xbb9a0998, 0xe9bb0298, 0x03feb500, 0x88cf0808, 0x0284f000, 0x081c1bf4, 0x0088cf34, 0x0bf4e0a6, 0xf4e8a608, /* 0x01da: timer_reset */ 0x34000d1c, 0xbd000ef6, 0x9a0eb504, /* 0x01e4: timer_enable */ 0x38000108, 0xbd0008f6, /* 0x01ed: timer_done */ 0x1031f404, 0x90fc80fc, /* 0x01f6: send_proc */ 0x80f900f8, 0xe89890f9, 0x04e99805, 0xa60486f0, 0x2a0bf489, 0x940398c4, 0x80b60488, 0x008ebb18, 0xb500fa98, 0x8db5008a, 0x028cb501, 0xb6038bb5, 0x94f00190, 0x04e9b507, /* 0x022f: send_done */ 0xfc0231f4, 0xf880fc90, /* 0x0235: find */ 0x0880f900, 0x0131f458, /* 0x023c: find_loop */ 0xa6008a98, 0x100bf4ae, 0xb15880b6, 0xf4026886, 0x32f4f11b, /* 0x0251: find_done */ 0xfc8eb201, /* 0x0257: send */ 0x7e00f880, 0xf4000235, 0x00f89b01, /* 0x0260: recv */ 0x9805e898, 0x32f404e9, 0xf489a601, 0x89c43c0b, 0x0180b603, 0xb50784f0, 0xea9805e8, 0xfef0f902, 0xf0f9018f, 0x9994efb2, 0x00e9bb04, 0x9818e0b6, 0xec9803eb, 0x01ed9802, 0xf900ee98, 0xfef0fca5, 0x31f400f8, /* 0x02a7: recv_done */ 0xf8f0fc01, /* 0x02a9: init */ 0x01084100, 0xe70011cf, 0xb6010911, 0x14fe0814, 0x00e04100, 0x000013f0, 0x0001f61c, 0xff0104bd, 0x01f61400, 0x0104bd00, 0x0015f102, 0xf6100008, 0x04bd0001, 0xf000d241, 0x10fe0013, 0x1031f400, 0x38000101, /* 0x0196: ticks_from_ns */ 0xc0f901f8, 0xd7f1b0f9, 0xd3f00144, 0x5f21f500, 0xe8ccec03, 0x00b4b003, 0xec120bf4, 0xf103e8ee, 0xf00144d7, 0x21f500d3, /* 0x01be: ticks_from_ns_quit */ 0xceb2035f, 0xc0fcb0fc, /* 0x01c6: ticks_from_us */ 0xc0f900f8, 0xd7f1b0f9, 0xd3f00144, 0x5f21f500, 0xb0ceb203, 0x0bf400b4, /* 0x01df: ticks_from_us_quit */ 0xfce4bd05, 0xf8c0fcb0, /* 0x01e5: ticks_to_us */ 0x44d7f100, 0x00d3f001, 0xf8ecedff, /* 0x01f1: timer */ 0xf990f900, 0x1032f480, 0xb003f898, 0x1cf40086, 0x0084bd4a, 0x0008f638, 0x340804bd, 0x980088cf, 0x98bb9a09, 0x00e9bb02, 0x0803feb5, 0x0088cf08, 0xf40284f0, 0x34081c1b, 0xa60088cf, 0x080bf4e0, 0x1cf4e8a6, /* 0x0235: timer_reset */ 0xf634000d, 0x04bd000e, /* 0x023f: timer_enable */ 0x089a0eb5, 0xf6380001, 0x04bd0008, /* 0x0248: timer_done */ 0xfc1031f4, 0xf890fc80, /* 0x0251: send_proc */ 0xf980f900, 0x05e89890, 0xf004e998, 0x89a60486, 0xc42a0bf4, 0x88940398, 0x1880b604, 0x98008ebb, 0x8ab500fa, 0x018db500, 0xb5028cb5, 0x90b6038b, 0x0794f001, 0xf404e9b5, /* 0x028a: send_done */ 0x90fc0231, 0x00f880fc, /* 0x0290: find */ 0x580880f9, /* 0x0297: find_loop */ 0x980131f4, 0xaea6008a, 0xb6100bf4, 0x86b15880, 0x1bf40268, 0x0132f4f1, /* 0x02ac: find_done */ 0x80fc8eb2, /* 0x02b2: send */ 0x907e00f8, 0x01f40002, /* 0x02bb: recv */ 0x9800f89b, 0xe99805e8, 0x0132f404, 0x0bf489a6, 0x0389c43c, 0xf00180b6, 0xe8b50784, 0x02ea9805, 0x8ffef0f9, 0xb2f0f901, 0x049994ef, 0xb600e9bb, 0xeb9818e0, 0x02ec9803, 0x9801ed98, 0xa5f900ee, 0xf8fef0fc, 0x0131f400, /* 0x0302: recv_done */ 0x00f8f0fc, /* 0x0304: init */ 0xcf010841, 0x11e70011, 0x14b60109, 0x0014fe08, 0xf000e041, 0x1c000013, 0xbd0001f6, /* 0x02f3: init_proc */ 0x98580f04, 0x16b001f1, 0xfa0bf400, 0xf0b615f9, 0xf20ef458, /* 0x0304: mulu32_32_64 */ 0x20f910f9, 0x40f930f9, 0x9510e195, 0xc4bd10d2, 0xedffb4bd, 0x301dffc0, 0x00ff0104, 0x0001f614, 0x020104bd, 0x080015f1, 0x01f61000, 0x4104bd00, 0x13f000d2, 0x0010fe00, 0x011031f4, 0xf6380001, 0x04bd0001, /* 0x034e: init_proc */ 0xf198580f, 0x0016b001, 0xf9fa0bf4, 0x58f0b615, /* 0x035f: mulu32_32_64 */ 0xf9f20ef4, 0xf920f910, 0x9540f930, 0xd29510e1, 0xbdc4bd10, 0xc0edffb4, 0xb2301dff, 0xff34f134, 0x1034b6ff, 0xbb1045b6, 0xb4bb00c3, 0x30e2ff01, 0x34f134b2, 0x34b6ffff, 0x1045b610, 0xbb00c3bb, 0xe2ff01b4, 0xf134b230, 0xb6ffff34, 0x45b61034, 0x00c3bb10, 0xff01b4bb, 0xb3bb3012, 0xfc40fc00, 0xfc20fc30, /* 0x0353: host_send */ 0x4100f810, 0x11cf04b0, 0x04a04200, 0xa60022cf, 0x2e0bf412, 0x94071ec4, 0xe0b704ee, 0xeb980270, 0x02ec9803, 0x9801ed98, 0x577e00ee, 0x10b60002, 0x0f1ec401, 0xf604b040, 0x04bd000e, /* 0x038f: host_send_done */ 0xf8c70ef4, /* 0x0391: host_recv */ 0x4e494100, 0x525413f1, 0x0bf4e1a6, /* 0x039d: host_recv_wait */ 0x04cc41b9, 0x420011cf, 0x22cf04c8, 0x0816f000, 0x0bf412a6, 0x0723c4ef, 0xb70434b6, 0xb502f030, 0x3cb5033b, 0x013db502, 0xb6003eb5, 0x24f00120, 0x04c8400f, 0x12ff01b4, 0x00b3bb30, 0x30fc40fc, 0x10fc20fc, /* 0x03ae: host_send */ 0xb04100f8, 0x0011cf04, 0xcf04a042, 0x12a60022, 0xc42e0bf4, 0xee94071e, 0x70e0b704, 0x03eb9802, 0x9802ec98, 0xee9801ed, 0x02b27e00, 0x0110b600, 0x400f1ec4, 0x0ef604b0, 0xf404bd00, /* 0x03ea: host_send_done */ 0x00f8c70e, /* 0x03ec: host_recv */ 0xf14e4941, 0xa6525413, 0xb90bf4e1, /* 0x03f8: host_recv_wait */ 0xcf04cc41, 0xc8420011, 0x0022cf04, 0xa60816f0, 0xef0bf412, 0xb60723c4, 0x30b70434, 0x3bb502f0, 0x023cb503, 0xb5013db5, 0x20b6003e, 0x0f24f001, 0xf604c840, 0x04bd0002, 0x00004002, 0xbd0002f6, 0x00400204, 0x0002f600, /* 0x043b: host_init */ 0x4100f804, 0x14b60080, 0x7015f110, 0x04d04002, 0xbd0001f6, 0x00804104, 0xf11014b6, 0x4002f015, 0x01f604dc, 0x0104bd00, 0x04c44001, 0xbd0001f6, /* 0x046b: memx_func_enter */ 0x0600f804, 0x07e04004, 0xbd0006f6, /* 0x0475: memx_func_enter_wait */ 0x07c04604, 0xf00066cf, 0x0bf40464, 0x001698f7, 0xf80410b6, /* 0x0489: memx_func_leave */ 0x40040600, 0x06f607e4, /* 0x0493: memx_func_leave_wait */ 0x4604bd00, 0x66cf07c0, 0x0464f000, 0xf8f71bf4, /* 0x04a1: memx_func_wr32 */ 0x00169800, 0xb6011598, 0x60f90810, 0xd0fc50f9, 0x2e7ee0fc, 0x42b60000, 0xe81bf402, /* 0x04be: memx_func_wait */ 0x2c0800f8, 0x980088cf, 0x1d98001e, 0x021c9801, 0xb6031b98, 0x717e1010, 0x00f80000, /* 0x04d8: memx_func_delay */ 0xb6001e98, 0x5d7e0410, 0x00f80000, /* 0x04e4: memx_exec */ 0xd0f9e0f9, 0xb2b2c1b2, /* 0x04ec: memx_exec_next */ 0xb6001398, 0x34950410, 0x0c30f010, 0xf9de3598, 0xf412a655, 0xd0fced1e, 0xb27ee0fc, 0x00f80002, /* 0x050c: memx_info */ 0x4b03ac4c, 0xb27e0800, 0x00f80002, /* 0x0518: memx_recv */ 0xf401d6b0, 0xd6b0c90b, 0xeb0bf400, /* 0x0526: memx_init */ 0x00f800f8, /* 0x0528: perf_recv */ /* 0x052a: perf_init */ 0x00f800f8, /* 0x052c: i2c_drive_scl */ 0xf40036b0, 0xe0400d0b, 0x0001f607, 0x00f804bd, /* 0x03e0: host_init */ 0xb6008041, 0x15f11014, 0xd0400270, 0x0001f604, 0x804104bd, 0x1014b600, 0x02f015f1, 0xf604dc40, /* 0x053c: i2c_drive_scl_lo */ 0xf607e440, 0x04bd0001, 0xc4400101, 0x0001f604, /* 0x0546: i2c_drive_sda */ 0x36b000f8, 0x0d0bf400, 0xf607e040, 0x04bd0002, /* 0x0556: i2c_drive_sda_lo */ 0xe44000f8, 0x0002f607, 0x00f804bd, /* 0x0410: memx_func_enter */ 0xe0400406, 0x0006f607, /* 0x041a: memx_func_enter_wait */ 0xc04604bd, 0x0066cf07, 0xf40464f0, 0x1698f70b, 0x0410b600, /* 0x042e: memx_func_leave */ 0x040600f8, 0xf607e440, 0x04bd0006, /* 0x0438: memx_func_leave_wait */ 0xcf07c046, 0x64f00066, 0xf71bf404, /* 0x0446: memx_func_wr32 */ 0x169800f8, 0x01159800, 0xf90810b6, 0xfc50f960, 0x7ee0fcd0, 0xb600002e, 0x1bf40242, /* 0x0463: memx_func_wait */ 0x0800f8e8, 0x0088cf2c, 0x98001e98, 0x1c98011d, 0x031b9802, 0x7e1010b6, 0xf8000071, /* 0x047d: memx_func_delay */ 0x001e9800, 0x7e0410b6, 0xf800005d, /* 0x0489: memx_exec */ 0xf9e0f900, 0xb2c1b2d0, /* 0x0491: memx_exec_next */ 0x001398b2, 0x950410b6, 0x30f01034, 0xde35980c, 0x12a655f9, 0xfced1ef4, 0x7ee0fcd0, 0xf8000257, /* 0x04b1: memx_info */ 0x03ac4c00, 0x7e08004b, 0xf8000257, /* 0x04bd: memx_recv */ 0x01d6b000, 0xb0c90bf4, 0x0bf400d6, /* 0x04cb: memx_init */ 0xf800f8eb, /* 0x04cd: perf_recv */ /* 0x04cf: perf_init */ 0xf800f800, /* 0x04d1: i2c_drive_scl */ 0x0036b000, 0x400d0bf4, 0x01f607e0, 0xf804bd00, /* 0x04e1: i2c_drive_scl_lo */ 0x07e44000, 0xbd0001f6, /* 0x04eb: i2c_drive_sda */ 0xb000f804, 0x0bf40036, 0x07e0400d, 0xbd0002f6, /* 0x04fb: i2c_drive_sda_lo */ 0x4000f804, 0x02f607e4, 0xf804bd00, /* 0x0505: i2c_sense_scl */ 0x0132f400, 0xcf07c443, 0x31fd0033, 0x060bf404, /* 0x0517: i2c_sense_scl_done */ 0xf80131f4, /* 0x0519: i2c_sense_sda */ 0x0132f400, 0xcf07c443, 0x32fd0033, 0x060bf404, /* 0x052b: i2c_sense_sda_done */ 0xf80131f4, /* 0x052d: i2c_raise_scl */ 0x4440f900, 0x01030898, 0x0004d17e, /* 0x0538: i2c_raise_scl_wait */ 0x7e03e84e, 0x7e00005d, 0xf4000505, 0x42b60901, 0xef1bf401, /* 0x054c: i2c_raise_scl_done */ 0x00f840fc, /* 0x0550: i2c_start */ 0x0005057e, 0x7e0d11f4, 0xf4000519, 0x0ef40611, /* 0x0561: i2c_start_rep */ 0x7e00032e, 0x030004d1, 0x04eb7e01, /* 0x0560: i2c_sense_scl */ 0x430132f4, 0x33cf07c4, 0x0431fd00, 0xf4060bf4, /* 0x0572: i2c_sense_scl_done */ 0x00f80131, /* 0x0574: i2c_sense_sda */ 0x430132f4, 0x33cf07c4, 0x0432fd00, 0xf4060bf4, /* 0x0586: i2c_sense_sda_done */ 0x00f80131, /* 0x0588: i2c_raise_scl */ 0x984440f9, 0x7e010308, /* 0x0593: i2c_raise_scl_wait */ 0x4e00052c, 0x5d7e03e8, 0x607e0000, 0x01f40005, 0x0142b609, /* 0x05a7: i2c_raise_scl_done */ 0xfcef1bf4, /* 0x05ab: i2c_start */ 0x7e00f840, 0xf4000560, 0x747e0d11, 0x11f40005, 0x2e0ef406, /* 0x05bc: i2c_start_rep */ 0x2c7e0003, 0x01030005, 0x0005467e, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x05887e50, 0x0464b600, /* 0x05e7: i2c_start_send */ 0x031d11f4, 0x05467e00, 0x13884e00, 0x00005d7e, 0x2c7e0003, 0x884e0005, 0x005d7e13, /* 0x0601: i2c_start_out */ /* 0x0603: i2c_stop */ 0x0300f800, 0x052c7e00, 0x7e000300, 0x4e000546, 0x5d7e03e8, 0x01030000, 0x00052c7e, 0x7e13884e, 0x0300005d, 0x05467e01, 0x13884e00, 0x00005d7e, /* 0x0632: i2c_bitw */ 0x467e00f8, 0xe84e0005, 0x005d7e03, 0x0076bb00, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x2d7e50fc, 0x887e50fc, 0x64b60005, 0x1d11f404, /* 0x058c: i2c_start_send */ 0xeb7e0003, 0x884e0004, 0x005d7e13, 0x7e000300, 0x4e0004d1, 0x5d7e1388, /* 0x05a6: i2c_start_out */ 0x00f80000, /* 0x05a8: i2c_stop */ 0xd17e0003, 0x00030004, 0x0004eb7e, 0x7e03e84e, 0x1711f404, 0x7e13884e, 0x0300005d, 0x04d17e01, 0x052c7e00, 0x13884e00, 0x00005d7e, 0xeb7e0103, 0x884e0004, 0x005d7e13, /* 0x05d7: i2c_bitw */ 0x7e00f800, 0x4e0004eb, 0x5d7e03e8, 0x76bb0000, /* 0x0670: i2c_bitw_out */ /* 0x0672: i2c_bitr */ 0x010300f8, 0x0005467e, 0x7e03e84e, 0xbb00005d, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0005887e, 0xf40464b6, 0x747e1a11, 0x00030005, 0x00052c7e, 0x7e13884e, 0xf000005d, 0x31f4013c, /* 0x06b5: i2c_bitr_done */ /* 0x06b7: i2c_get_byte */ 0x0500f801, /* 0x06bb: i2c_get_byte_next */ 0xb6080400, 0x76bb0154, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb600052d, 0xb6000672, 0x11f40464, 0x13884e17, 0x00005d7e, 0xd17e0003, 0x884e0004, 0x005d7e13, /* 0x0615: i2c_bitw_out */ /* 0x0617: i2c_bitr */ 0x0300f800, 0x04eb7e01, 0x03e84e00, 0x00005d7e, 0x0553fd2a, 0xf40142b6, 0x0103d81b, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x052d7e50, 0x06327e50, 0x0464b600, 0x7e1a11f4, 0x03000519, 0x04d17e00, 0x13884e00, 0x00005d7e, 0xf4013cf0, /* 0x065a: i2c_bitr_done */ 0x00f80131, /* 0x065c: i2c_get_byte */ 0x08040005, /* 0x0660: i2c_get_byte_next */ 0xbb0154b6, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0006177e, 0xf40464b6, 0x53fd2a11, 0x0142b605, 0x03d81bf4, 0x0076bb01, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0xd77e50fc, 0x64b60005, /* 0x06a9: i2c_get_byte_done */ /* 0x06ab: i2c_put_byte */ 0x0400f804, /* 0x06ad: i2c_put_byte_next */ 0x0142b608, 0xbb3854ff, /* 0x0704: i2c_get_byte_done */ /* 0x0706: i2c_put_byte */ 0x080400f8, /* 0x0708: i2c_put_byte_next */ 0xff0142b6, 0x76bb3854, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb6000632, 0x11f40464, 0x0046b034, 0xbbd81bf4, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0005d77e, 0x0006727e, 0xf40464b6, 0x46b03411, 0xd81bf400, 0x76bb0f11, 0x0136b000, 0xf4061bf4, /* 0x075e: i2c_put_byte_done */ 0x00f80132, /* 0x0760: i2c_addr */ 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x06177e50, 0x05ab7e50, 0x0464b600, 0xbb0f11f4, 0x36b00076, 0x061bf401, /* 0x0703: i2c_put_byte_done */ 0xf80132f4, /* 0x0705: i2c_addr */ 0x0076bb00, 0xe72911f4, 0xb6012ec3, 0x53fd0134, 0x0076bb05, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x507e50fc, 0x64b60005, 0x2911f404, 0x012ec3e7, 0xfd0134b6, 0x76bb0553, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb60006ab, /* 0x074a: i2c_addr_done */ 0x00f80464, /* 0x074c: i2c_acquire_addr */ 0xb6f8cec7, 0xe0b705e4, 0x00f8d014, /* 0x0758: i2c_acquire */ 0x00074c7e, 0x067e50fc, 0x64b60007, /* 0x07a5: i2c_addr_done */ /* 0x07a7: i2c_acquire_addr */ 0xc700f804, 0xe4b6f8ce, 0x14e0b705, /* 0x07b3: i2c_acquire */ 0x7e00f8d0, 0x7e0007a7, 0xf0000004, 0x2e7e03d9, 0x00f80000, /* 0x07c4: i2c_release */ 0x0007a77e, 0x0000047e, 0x7e03d9f0, 0x7e03daf0, 0xf800002e, /* 0x0769: i2c_release */ 0x074c7e00, 0x00047e00, 0x03daf000, 0x00002e7e, /* 0x077a: i2c_recv */ 0x32f400f8, 0xf8c1c701, 0xb00214b6, 0x1ff52816, 0x13b80137, 0x98000bd4, 0x13b80032, 0x98000bac, 0x31f40031, 0xf9d0f902, 0xf1d0f9e0, 0xf1000067, 0x92100063, 0x76bb0167, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb6000758, 0xd0fc0464, 0xf500d6b0, 0x0500b01b, 0x0076bb00, /* 0x07d5: i2c_recv */ 0x0132f400, 0xb6f8c1c7, 0x16b00214, 0x371ff528, 0xd413b801, 0x3298000b, 0xac13b800, 0x3198000b, 0x0231f400, 0xe0f9d0f9, 0x67f1d0f9, 0x63f10000, 0x67921000, 0x0076bb01, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x057e50fc, 0xb37e50fc, 0x64b60007, 0xcc11f504, 0xe0c5c700, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x06ab7e50, 0x0464b600, 0x00a911f5, 0x76bb0105, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb6000705, 0x11f50464, 0x76bb0087, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, 0xb600065c, 0x11f40464, 0xe05bcb67, 0xb0d0fc04, 0x1bf500d6, 0x000500b0, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, 0x05a87e50, 0x07607e50, 0x0464b600, 0x74bd5bb2, /* 0x087f: i2c_recv_not_rd08 */ 0xb0410ef4, 0x1bf401d6, 0x7e00053b, 0xf4000705, 0xc5c73211, 0x06ab7ee0, 0x2811f400, 0x057e0005, 0x00cc11f5, 0xbbe0c5c7, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0007067e, 0xf50464b6, 0x0500a911, 0x0076bb01, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x607e50fc, 0x64b60007, 0x8711f504, 0x0076bb00, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0xb77e50fc, 0x64b60006, 0x6711f404, 0xbbe05bcb, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, 0x0006037e, 0xb20464b6, 0xf474bd5b, /* 0x08da: i2c_recv_not_rd08 */ 0xd6b0410e, 0x3b1bf401, 0x607e0005, 0x11f40007, 0xe0b5c71f, 0x0006ab7e, 0x7e1511f4, 0xbd0005a8, 0x08c5c774, 0xf4091bf4, 0x0ef40232, /* 0x08bd: i2c_recv_not_wr08 */ /* 0x08bd: i2c_recv_done */ 0xf8cec703, 0x0007697e, 0xd0fce0fc, 0xb20912f4, 0x02577e7c, /* 0x08d1: i2c_recv_exit */ /* 0x08d3: i2c_init */ 0xf800f800, /* 0x08d5: test_recv */ 0x04584100, 0xe0c5c732, 0x0007067e, 0x052811f4, 0x07607e00, 0x1f11f400, 0x7ee0b5c7, 0xf4000706, 0x037e1511, 0x74bd0006, 0xf408c5c7, 0x32f4091b, 0x030ef402, /* 0x0918: i2c_recv_not_wr08 */ /* 0x0918: i2c_recv_done */ 0x7ef8cec7, 0xfc0007c4, 0xf4d0fce0, 0x7cb20912, 0x0002b27e, /* 0x092c: i2c_recv_exit */ /* 0x092e: i2c_init */ 0x00f800f8, /* 0x0930: test_recv */ 0xcf045841, 0x10b60011, 0x04584001, 0xbd0001f6, 0x00e7f104, 0x4fe3f1d9, 0x01f17e13, /* 0x094f: test_init */ 0x4e00f800, 0xf17e0800, 0x00f80001, /* 0x0958: idle_recv */ /* 0x095a: idle */ 0x31f400f8, 0x04544100, 0xb60011cf, 0x58400110, 0x54400110, 0x0001f604, 0xe7f104bd, 0xe3f1d900, 0x967e134f, 0x00f80001, /* 0x08f4: test_init */ 0x7e08004e, 0xf8000196, /* 0x08fd: idle_recv */ /* 0x08ff: idle */ 0xf400f800, 0x54410031, 0x0011cf04, 0x400110b6, 0x01f60454, /* 0x0913: idle_loop */ 0x0104bd00, 0x0232f458, /* 0x0918: idle_proc */ /* 0x0918: idle_proc_exec */ 0x1eb210f9, 0x0002607e, 0x11f410fc, 0x0231f409, /* 0x092b: idle_proc_next */ 0xb6f00ef4, 0x1fa65810, 0xf4e81bf4, 0x28f4e002, 0xc60ef400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x096e: idle_loop */ 0x580104bd, /* 0x0973: idle_proc */ /* 0x0973: idle_proc_exec */ 0xf90232f4, 0x7e1eb210, 0xfc0002bb, 0x0911f410, 0xf40231f4, /* 0x0986: idle_proc_next */ 0x10b6f00e, 0xf41fa658, 0x02f4e81b, 0x0028f4e0, 0x00c60ef4, 0x00000000, 0x00000000, 0x00000000, Loading
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ */ #define NVKM_PPWR_CHIPSET GT215 #define HW_TICKS_PER_US 203 // should be 202.5 //#define NVKM_FALCON_PC24 //#define NVKM_FALCON_UNSHIFTED_IO Loading
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h +598 −593 File changed.Preview size limit exceeded, changes collapsed. Show changes