1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
BTUInterruptHandler:
/* 802BCFB8 002B8C18 3C 80 80 56 */ lis r4, lbl_80567620@ha
/* 802BCFBC 002B8C1C 3C 60 80 2C */ lis r3, btu_task_msg_handler@ha
/* 802BCFC0 002B8C20 38 84 76 20 */ addi r4, r4, lbl_80567620@l
/* 802BCFC4 002B8C24 38 63 D1 50 */ addi r3, r3, btu_task_msg_handler@l
/* 802BCFC8 002B8C28 38 84 10 00 */ addi r4, r4, 0x1000
/* 802BCFCC 002B8C2C 4B FA E0 64 */ b OSSwitchFiber
.global BTA_Init
BTA_Init:
/* 802BCFD0 002B8C30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BCFD4 002B8C34 7C 08 02 A6 */ mflr r0
/* 802BCFD8 002B8C38 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BCFDC 002B8C3C 38 00 00 00 */ li r0, 0
/* 802BCFE0 002B8C40 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BCFE4 002B8C44 90 0D AE EC */ stw r0, lbl_806401AC-_SDA_BASE_(r13)
/* 802BCFE8 002B8C48 4B FF DF 81 */ bl GKI_init
/* 802BCFEC 002B8C4C 4B FF E1 71 */ bl GKI_enable
/* 802BCFF0 002B8C50 48 01 1B 15 */ bl BTE_Init
/* 802BCFF4 002B8C54 3C 80 80 40 */ lis r4, lbl_803FDAA8@ha
/* 802BCFF8 002B8C58 38 0D 8A 20 */ addi r0, r13, lbl_8063DCE0-_SDA_BASE_
/* 802BCFFC 002B8C5C 38 84 DA A8 */ addi r4, r4, lbl_803FDAA8@l
/* 802BD000 002B8C60 90 0D AE E4 */ stw r0, lbl_806401A4-_SDA_BASE_(r13)
/* 802BD004 002B8C64 38 60 00 00 */ li r3, 0
/* 802BD008 002B8C68 90 8D AE E0 */ stw r4, lbl_806401A0-_SDA_BASE_(r13)
/* 802BD00C 002B8C6C 4B FF FD 85 */ bl bte_hcisu_task
/* 802BD010 002B8C70 48 00 00 0C */ b lbl_802BD01C
lbl_802BD014:
/* 802BD014 002B8C74 38 60 00 64 */ li r3, 0x64
/* 802BD018 002B8C78 4B FF E0 95 */ bl GKI_delay
lbl_802BD01C:
/* 802BD01C 002B8C7C 80 0D 89 C8 */ lwz r0, lbl_8063DC88-_SDA_BASE_(r13)
/* 802BD020 002B8C80 2C 00 00 00 */ cmpwi r0, 0
/* 802BD024 002B8C84 40 82 FF F0 */ bne lbl_802BD014
/* 802BD028 002B8C88 48 00 00 E9 */ bl btu_task_init
/* 802BD02C 002B8C8C 3F E0 80 57 */ lis r31, lbl_80568620@ha
/* 802BD030 002B8C90 38 7F 86 20 */ addi r3, r31, lbl_80568620@l
/* 802BD034 002B8C94 4B FA C6 F1 */ bl OSCreateAlarm
/* 802BD038 002B8C98 4B FB 57 81 */ bl OSGetTime
/* 802BD03C 002B8C9C 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 802BD040 002B8CA0 3D 20 80 2C */ lis r9, BTUInterruptHandler@ha
/* 802BD044 002B8CA4 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 802BD048 002B8CA8 3C C0 10 62 */ lis r6, 0x10624DD3@ha
/* 802BD04C 002B8CAC 7C 65 1B 78 */ mr r5, r3
/* 802BD050 002B8CB0 39 29 CF B8 */ addi r9, r9, BTUInterruptHandler@l
/* 802BD054 002B8CB4 38 66 4D D3 */ addi r3, r6, 0x10624DD3@l
/* 802BD058 002B8CB8 54 00 F0 BE */ srwi r0, r0, 2
/* 802BD05C 002B8CBC 7C 03 00 16 */ mulhwu r0, r3, r0
/* 802BD060 002B8CC0 7C 86 23 78 */ mr r6, r4
/* 802BD064 002B8CC4 38 7F 86 20 */ addi r3, r31, -31200
/* 802BD068 002B8CC8 38 E0 00 00 */ li r7, 0
/* 802BD06C 002B8CCC 54 08 D9 7C */ rlwinm r8, r0, 0x1b, 5, 0x1e
/* 802BD070 002B8CD0 4B FA C9 85 */ bl OSSetPeriodicAlarm
/* 802BD074 002B8CD4 38 60 00 00 */ li r3, 0
/* 802BD078 002B8CD8 4B FF E0 29 */ bl GKI_run
/* 802BD07C 002B8CDC 48 00 00 0C */ b lbl_802BD088
lbl_802BD080:
/* 802BD080 002B8CE0 38 60 07 D0 */ li r3, 0x7d0
/* 802BD084 002B8CE4 4B FF E0 29 */ bl GKI_delay
lbl_802BD088:
/* 802BD088 002B8CE8 48 00 30 65 */ bl BTA_DmIsDeviceUp
/* 802BD08C 002B8CEC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802BD090 002B8CF0 41 82 FF F0 */ beq lbl_802BD080
/* 802BD094 002B8CF4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BD098 002B8CF8 38 60 00 00 */ li r3, 0
/* 802BD09C 002B8CFC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BD0A0 002B8D00 7C 08 03 A6 */ mtlr r0
/* 802BD0A4 002B8D04 38 21 00 10 */ addi r1, r1, 0x10
/* 802BD0A8 002B8D08 4E 80 00 20 */ blr
.global BTA_CleanUp
BTA_CleanUp:
/* 802BD0AC 002B8D0C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BD0B0 002B8D10 7C 08 02 A6 */ mflr r0
/* 802BD0B4 002B8D14 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BD0B8 002B8D18 90 6D AE EC */ stw r3, lbl_806401AC-_SDA_BASE_(r13)
/* 802BD0BC 002B8D1C 3C 60 80 57 */ lis r3, lbl_80568620@ha
/* 802BD0C0 002B8D20 38 63 86 20 */ addi r3, r3, lbl_80568620@l
/* 802BD0C4 002B8D24 4B FA C9 B5 */ bl OSCancelAlarm
/* 802BD0C8 002B8D28 4B FF FD 2D */ bl bte_hcisu_close
/* 802BD0CC 002B8D2C 4B FF DF 2D */ bl GKI_shutdown
/* 802BD0D0 002B8D30 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BD0D4 002B8D34 7C 08 03 A6 */ mtlr r0
/* 802BD0D8 002B8D38 38 21 00 10 */ addi r1, r1, 0x10
/* 802BD0DC 002B8D3C 4E 80 00 20 */ blr
.global bta_usb_close_evt
bta_usb_close_evt:
/* 802BD0E0 002B8D40 81 8D AE EC */ lwz r12, lbl_806401AC-_SDA_BASE_(r13)
/* 802BD0E4 002B8D44 2C 0C 00 00 */ cmpwi r12, 0
/* 802BD0E8 002B8D48 4D 82 00 20 */ beqlr
/* 802BD0EC 002B8D4C 7C 60 07 75 */ extsb. r0, r3
/* 802BD0F0 002B8D50 41 80 00 10 */ blt lbl_802BD100
/* 802BD0F4 002B8D54 38 60 00 00 */ li r3, 0
/* 802BD0F8 002B8D58 7D 89 03 A6 */ mtctr r12
/* 802BD0FC 002B8D5C 4E 80 04 20 */ bctr
lbl_802BD100:
/* 802BD100 002B8D60 38 60 00 01 */ li r3, 1
/* 802BD104 002B8D64 7D 89 03 A6 */ mtctr r12
/* 802BD108 002B8D68 4E 80 04 20 */ bctr
/* 802BD10C 002B8D6C 4E 80 00 20 */ blr
|