.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global hidd_pm_set_now hidd_pm_set_now: /* 802D26F4 002CE354 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802D26F8 002CE358 7C 08 02 A6 */ mflr r0 /* 802D26FC 002CE35C 3C 80 80 57 */ lis r4, lbl_8056B6F0@ha /* 802D2700 002CE360 38 A0 00 00 */ li r5, 0 /* 802D2704 002CE364 90 01 00 24 */ stw r0, 0x24(r1) /* 802D2708 002CE368 38 84 B6 F0 */ addi r4, r4, lbl_8056B6F0@l /* 802D270C 002CE36C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802D2710 002CE370 88 04 00 6E */ lbz r0, 0x6e(r4) /* 802D2714 002CE374 90 A1 00 0C */ stw r5, 0xc(r1) /* 802D2718 002CE378 2C 00 00 00 */ cmpwi r0, 0 /* 802D271C 002CE37C 90 A1 00 10 */ stw r5, 0x10(r1) /* 802D2720 002CE380 B0 A1 00 14 */ sth r5, 0x14(r1) /* 802D2724 002CE384 98 A1 00 08 */ stb r5, 8(r1) /* 802D2728 002CE388 40 82 00 38 */ bne lbl_802D2760 /* 802D272C 002CE38C 88 C4 00 6A */ lbz r6, 0x6a(r4) /* 802D2730 002CE390 88 A3 00 08 */ lbz r5, 8(r3) /* 802D2734 002CE394 7C 05 30 40 */ cmplw r5, r6 /* 802D2738 002CE398 40 82 00 40 */ bne lbl_802D2778 /* 802D273C 002CE39C 2C 05 00 00 */ cmpwi r5, 0 /* 802D2740 002CE3A0 41 82 00 20 */ beq lbl_802D2760 /* 802D2744 002CE3A4 A0 84 00 6C */ lhz r4, 0x6c(r4) /* 802D2748 002CE3A8 A0 03 00 02 */ lhz r0, 2(r3) /* 802D274C 002CE3AC 7C 04 00 40 */ cmplw r4, r0 /* 802D2750 002CE3B0 41 80 00 28 */ blt lbl_802D2778 /* 802D2754 002CE3B4 A0 03 00 00 */ lhz r0, 0(r3) /* 802D2758 002CE3B8 7C 04 00 40 */ cmplw r4, r0 /* 802D275C 002CE3BC 41 81 00 1C */ bgt lbl_802D2778 lbl_802D2760: /* 802D2760 002CE3C0 3C 80 80 57 */ lis r4, lbl_8056B6F0@ha /* 802D2764 002CE3C4 38 00 00 FF */ li r0, 0xff /* 802D2768 002CE3C8 38 84 B6 F0 */ addi r4, r4, lbl_8056B6F0@l /* 802D276C 002CE3CC 38 60 00 01 */ li r3, 1 /* 802D2770 002CE3D0 98 04 00 78 */ stb r0, 0x78(r4) /* 802D2774 002CE3D4 48 00 01 44 */ b lbl_802D28B8 lbl_802D2778: /* 802D2778 002CE3D8 2C 05 00 02 */ cmpwi r5, 2 /* 802D277C 002CE3DC 41 82 00 80 */ beq lbl_802D27FC /* 802D2780 002CE3E0 40 80 00 10 */ bge lbl_802D2790 /* 802D2784 002CE3E4 2C 05 00 00 */ cmpwi r5, 0 /* 802D2788 002CE3E8 41 82 00 14 */ beq lbl_802D279C /* 802D278C 002CE3EC 48 00 00 E4 */ b lbl_802D2870 lbl_802D2790: /* 802D2790 002CE3F0 2C 05 00 04 */ cmpwi r5, 4 /* 802D2794 002CE3F4 40 80 00 DC */ bge lbl_802D2870 /* 802D2798 002CE3F8 48 00 00 A0 */ b lbl_802D2838 lbl_802D279C: /* 802D279C 002CE3FC 28 06 00 02 */ cmplwi r6, 2 /* 802D27A0 002CE400 40 82 00 2C */ bne lbl_802D27CC /* 802D27A4 002CE404 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha /* 802D27A8 002CE408 38 A1 00 0C */ addi r5, r1, 0xc /* 802D27AC 002CE40C 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l /* 802D27B0 002CE410 38 60 00 80 */ li r3, 0x80 /* 802D27B4 002CE414 4B FF 66 F5 */ bl BTM_SetPowerMode /* 802D27B8 002CE418 38 9F B6 F0 */ addi r4, r31, -18704 /* 802D27BC 002CE41C 38 00 00 01 */ li r0, 1 /* 802D27C0 002CE420 98 61 00 08 */ stb r3, 8(r1) /* 802D27C4 002CE424 98 04 00 6E */ stb r0, 0x6e(r4) /* 802D27C8 002CE428 48 00 00 A8 */ b lbl_802D2870 lbl_802D27CC: /* 802D27CC 002CE42C 28 06 00 03 */ cmplwi r6, 3 /* 802D27D0 002CE430 40 82 00 A0 */ bne lbl_802D2870 /* 802D27D4 002CE434 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha /* 802D27D8 002CE438 38 A1 00 0C */ addi r5, r1, 0xc /* 802D27DC 002CE43C 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l /* 802D27E0 002CE440 38 60 00 80 */ li r3, 0x80 /* 802D27E4 002CE444 4B FF 66 C5 */ bl BTM_SetPowerMode /* 802D27E8 002CE448 38 9F B6 F0 */ addi r4, r31, -18704 /* 802D27EC 002CE44C 38 00 00 01 */ li r0, 1 /* 802D27F0 002CE450 98 61 00 08 */ stb r3, 8(r1) /* 802D27F4 002CE454 98 04 00 6E */ stb r0, 0x6e(r4) /* 802D27F8 002CE458 48 00 00 78 */ b lbl_802D2870 lbl_802D27FC: /* 802D27FC 002CE45C 2C 06 00 00 */ cmpwi r6, 0 /* 802D2800 002CE460 41 82 00 10 */ beq lbl_802D2810 /* 802D2804 002CE464 38 61 00 0C */ addi r3, r1, 0xc /* 802D2808 002CE468 4B FF FE ED */ bl hidd_pm_set_now /* 802D280C 002CE46C 48 00 00 64 */ b lbl_802D2870 lbl_802D2810: /* 802D2810 002CE470 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha /* 802D2814 002CE474 7C 65 1B 78 */ mr r5, r3 /* 802D2818 002CE478 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l /* 802D281C 002CE47C 38 60 00 80 */ li r3, 0x80 /* 802D2820 002CE480 4B FF 66 89 */ bl BTM_SetPowerMode /* 802D2824 002CE484 38 9F B6 F0 */ addi r4, r31, -18704 /* 802D2828 002CE488 38 00 00 01 */ li r0, 1 /* 802D282C 002CE48C 98 61 00 08 */ stb r3, 8(r1) /* 802D2830 002CE490 98 04 00 6E */ stb r0, 0x6e(r4) /* 802D2834 002CE494 48 00 00 3C */ b lbl_802D2870 lbl_802D2838: /* 802D2838 002CE498 2C 06 00 00 */ cmpwi r6, 0 /* 802D283C 002CE49C 41 82 00 10 */ beq lbl_802D284C /* 802D2840 002CE4A0 38 61 00 0C */ addi r3, r1, 0xc /* 802D2844 002CE4A4 4B FF FE B1 */ bl hidd_pm_set_now /* 802D2848 002CE4A8 48 00 00 28 */ b lbl_802D2870 lbl_802D284C: /* 802D284C 002CE4AC 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha /* 802D2850 002CE4B0 7C 65 1B 78 */ mr r5, r3 /* 802D2854 002CE4B4 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l /* 802D2858 002CE4B8 38 60 00 80 */ li r3, 0x80 /* 802D285C 002CE4BC 4B FF 66 4D */ bl BTM_SetPowerMode /* 802D2860 002CE4C0 38 9F B6 F0 */ addi r4, r31, -18704 /* 802D2864 002CE4C4 38 00 00 01 */ li r0, 1 /* 802D2868 002CE4C8 98 61 00 08 */ stb r3, 8(r1) /* 802D286C 002CE4CC 98 04 00 6E */ stb r0, 0x6e(r4) lbl_802D2870: /* 802D2870 002CE4D0 88 81 00 08 */ lbz r4, 8(r1) /* 802D2874 002CE4D4 28 04 00 01 */ cmplwi r4, 1 /* 802D2878 002CE4D8 41 81 00 0C */ bgt lbl_802D2884 /* 802D287C 002CE4DC 38 60 00 01 */ li r3, 1 /* 802D2880 002CE4E0 48 00 00 38 */ b lbl_802D28B8 lbl_802D2884: /* 802D2884 002CE4E4 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha /* 802D2888 002CE4E8 38 04 00 37 */ addi r0, r4, 0x37 /* 802D288C 002CE4EC 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l /* 802D2890 002CE4F0 98 01 00 08 */ stb r0, 8(r1) /* 802D2894 002CE4F4 81 83 00 C4 */ lwz r12, 0xc4(r3) /* 802D2898 002CE4F8 2C 0C 00 00 */ cmpwi r12, 0 /* 802D289C 002CE4FC 41 82 00 18 */ beq lbl_802D28B4 /* 802D28A0 002CE500 88 83 00 6F */ lbz r4, 0x6f(r3) /* 802D28A4 002CE504 38 A1 00 08 */ addi r5, r1, 8 /* 802D28A8 002CE508 38 60 00 04 */ li r3, 4 /* 802D28AC 002CE50C 7D 89 03 A6 */ mtctr r12 /* 802D28B0 002CE510 4E 80 04 21 */ bctrl lbl_802D28B4: /* 802D28B4 002CE514 38 60 00 00 */ li r3, 0 lbl_802D28B8: /* 802D28B8 002CE518 80 01 00 24 */ lwz r0, 0x24(r1) /* 802D28BC 002CE51C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802D28C0 002CE520 7C 08 03 A6 */ mtlr r0 /* 802D28C4 002CE524 38 21 00 20 */ addi r1, r1, 0x20 /* 802D28C8 002CE528 4E 80 00 20 */ blr .global hidd_pm_proc_mode_change hidd_pm_proc_mode_change: /* 802D28CC 002CE52C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802D28D0 002CE530 7C 08 02 A6 */ mflr r0 /* 802D28D4 002CE534 90 01 00 24 */ stw r0, 0x24(r1) /* 802D28D8 002CE538 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802D28DC 002CE53C 93 C1 00 18 */ stw r30, 0x18(r1) /* 802D28E0 002CE540 3F C0 80 57 */ lis r30, lbl_8056B6F0@ha /* 802D28E4 002CE544 3B DE B6 F0 */ addi r30, r30, lbl_8056B6F0@l /* 802D28E8 002CE548 93 A1 00 14 */ stw r29, 0x14(r1) /* 802D28EC 002CE54C 7C 9D 23 78 */ mr r29, r4 /* 802D28F0 002CE550 88 1E 01 40 */ lbz r0, 0x140(r30) /* 802D28F4 002CE554 98 61 00 08 */ stb r3, 8(r1) /* 802D28F8 002CE558 2C 00 00 00 */ cmpwi r0, 0 /* 802D28FC 002CE55C B0 A1 00 0A */ sth r5, 0xa(r1) /* 802D2900 002CE560 41 82 01 08 */ beq lbl_802D2A08 /* 802D2904 002CE564 3B E0 00 00 */ li r31, 0 /* 802D2908 002CE568 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 802D290C 002CE56C 9B FE 00 6E */ stb r31, 0x6e(r30) /* 802D2910 002CE570 41 82 00 28 */ beq lbl_802D2938 /* 802D2914 002CE574 81 9E 00 C4 */ lwz r12, 0xc4(r30) /* 802D2918 002CE578 2C 0C 00 00 */ cmpwi r12, 0 /* 802D291C 002CE57C 41 82 00 EC */ beq lbl_802D2A08 /* 802D2920 002CE580 38 A1 00 08 */ addi r5, r1, 8 /* 802D2924 002CE584 88 9E 00 6F */ lbz r4, 0x6f(r30) /* 802D2928 002CE588 38 60 00 04 */ li r3, 4 /* 802D292C 002CE58C 7D 89 03 A6 */ mtctr r12 /* 802D2930 002CE590 4E 80 04 21 */ bctrl /* 802D2934 002CE594 48 00 00 D4 */ b lbl_802D2A08 lbl_802D2938: /* 802D2938 002CE598 88 1E 00 78 */ lbz r0, 0x78(r30) /* 802D293C 002CE59C 54 A3 04 3E */ clrlwi r3, r5, 0x10 /* 802D2940 002CE5A0 98 9E 00 6A */ stb r4, 0x6a(r30) /* 802D2944 002CE5A4 28 00 00 FF */ cmplwi r0, 0xff /* 802D2948 002CE5A8 B0 BE 00 6C */ sth r5, 0x6c(r30) /* 802D294C 002CE5AC 41 82 00 54 */ beq lbl_802D29A0 /* 802D2950 002CE5B0 7C 00 20 40 */ cmplw r0, r4 /* 802D2954 002CE5B4 40 82 00 24 */ bne lbl_802D2978 /* 802D2958 002CE5B8 2C 00 00 00 */ cmpwi r0, 0 /* 802D295C 002CE5BC 41 82 00 30 */ beq lbl_802D298C /* 802D2960 002CE5C0 A0 1E 00 72 */ lhz r0, 0x72(r30) /* 802D2964 002CE5C4 7C 03 00 40 */ cmplw r3, r0 /* 802D2968 002CE5C8 41 80 00 10 */ blt lbl_802D2978 /* 802D296C 002CE5CC A0 1E 00 70 */ lhz r0, 0x70(r30) /* 802D2970 002CE5D0 7C 03 00 40 */ cmplw r3, r0 /* 802D2974 002CE5D4 40 81 00 18 */ ble lbl_802D298C lbl_802D2978: /* 802D2978 002CE5D8 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha /* 802D297C 002CE5DC 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l /* 802D2980 002CE5E0 38 63 00 70 */ addi r3, r3, 0x70 /* 802D2984 002CE5E4 4B FF FD 71 */ bl hidd_pm_set_now /* 802D2988 002CE5E8 48 00 00 58 */ b lbl_802D29E0 lbl_802D298C: /* 802D298C 002CE5EC 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha /* 802D2990 002CE5F0 38 00 00 FF */ li r0, 0xff /* 802D2994 002CE5F4 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l /* 802D2998 002CE5F8 98 03 00 78 */ stb r0, 0x78(r3) /* 802D299C 002CE5FC 48 00 00 44 */ b lbl_802D29E0 lbl_802D29A0: /* 802D29A0 002CE600 2C 04 00 00 */ cmpwi r4, 0 /* 802D29A4 002CE604 40 82 00 3C */ bne lbl_802D29E0 /* 802D29A8 002CE608 38 7E 00 70 */ addi r3, r30, 0x70 /* 802D29AC 002CE60C 38 9E 00 4C */ addi r4, r30, 0x4c /* 802D29B0 002CE610 38 A0 00 0A */ li r5, 0xa /* 802D29B4 002CE614 4B D3 16 4D */ bl memcpy /* 802D29B8 002CE618 38 7E 00 4C */ addi r3, r30, 0x4c /* 802D29BC 002CE61C 4B FF FD 39 */ bl hidd_pm_set_now /* 802D29C0 002CE620 3C 60 80 2D */ lis r3, hidd_pm_inact_timeout@ha /* 802D29C4 002CE624 9B FE 00 6F */ stb r31, 0x6f(r30) /* 802D29C8 002CE628 38 63 2A 24 */ addi r3, r3, hidd_pm_inact_timeout@l /* 802D29CC 002CE62C 38 80 00 16 */ li r4, 0x16 /* 802D29D0 002CE630 90 7E 00 44 */ stw r3, 0x44(r30) /* 802D29D4 002CE634 38 7E 00 34 */ addi r3, r30, 0x34 /* 802D29D8 002CE638 38 A0 00 3C */ li r5, 0x3c /* 802D29DC 002CE63C 4B FE AB 01 */ bl btu_start_timer lbl_802D29E0: /* 802D29E0 002CE640 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha /* 802D29E4 002CE644 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l /* 802D29E8 002CE648 81 83 00 C4 */ lwz r12, 0xc4(r3) /* 802D29EC 002CE64C 2C 0C 00 00 */ cmpwi r12, 0 /* 802D29F0 002CE650 41 82 00 18 */ beq lbl_802D2A08 /* 802D29F4 002CE654 7F A4 EB 78 */ mr r4, r29 /* 802D29F8 002CE658 38 A1 00 0A */ addi r5, r1, 0xa /* 802D29FC 002CE65C 38 60 00 03 */ li r3, 3 /* 802D2A00 002CE660 7D 89 03 A6 */ mtctr r12 /* 802D2A04 002CE664 4E 80 04 21 */ bctrl lbl_802D2A08: /* 802D2A08 002CE668 80 01 00 24 */ lwz r0, 0x24(r1) /* 802D2A0C 002CE66C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802D2A10 002CE670 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802D2A14 002CE674 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802D2A18 002CE678 7C 08 03 A6 */ mtlr r0 /* 802D2A1C 002CE67C 38 21 00 20 */ addi r1, r1, 0x20 /* 802D2A20 002CE680 4E 80 00 20 */ blr hidd_pm_inact_timeout: /* 802D2A24 002CE684 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802D2A28 002CE688 7C 08 02 A6 */ mflr r0 /* 802D2A2C 002CE68C 38 A0 00 0A */ li r5, 0xa /* 802D2A30 002CE690 90 01 00 14 */ stw r0, 0x14(r1) /* 802D2A34 002CE694 93 E1 00 0C */ stw r31, 0xc(r1) /* 802D2A38 002CE698 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha /* 802D2A3C 002CE69C 3B FF B6 F0 */ addi r31, r31, lbl_8056B6F0@l /* 802D2A40 002CE6A0 38 7F 00 70 */ addi r3, r31, 0x70 /* 802D2A44 002CE6A4 38 9F 00 56 */ addi r4, r31, 0x56 /* 802D2A48 002CE6A8 4B D3 15 B9 */ bl memcpy /* 802D2A4C 002CE6AC 38 7F 00 56 */ addi r3, r31, 0x56 /* 802D2A50 002CE6B0 4B FF FC A5 */ bl hidd_pm_set_now /* 802D2A54 002CE6B4 38 00 00 01 */ li r0, 1 /* 802D2A58 002CE6B8 98 1F 00 6F */ stb r0, 0x6f(r31) /* 802D2A5C 002CE6BC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802D2A60 002CE6C0 80 01 00 14 */ lwz r0, 0x14(r1) /* 802D2A64 002CE6C4 7C 08 03 A6 */ mtlr r0 /* 802D2A68 002CE6C8 38 21 00 10 */ addi r1, r1, 0x10 /* 802D2A6C 002CE6CC 4E 80 00 20 */ blr