summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/rfc_port_if.s
blob: 52dcc816930803b535a3288bc2c36031ba8ec292 (plain)
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global RFCOMM_StartRsp
RFCOMM_StartRsp:
/* 802DFA94 002DB6F4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802DFA98 002DB6F8  7C 08 02 A6 */	mflr r0
/* 802DFA9C 002DB6FC  90 01 00 14 */	stw r0, 0x14(r1)
/* 802DFAA0 002DB700  38 A1 00 08 */	addi r5, r1, 8
/* 802DFAA4 002DB704  B0 81 00 08 */	sth r4, 8(r1)
/* 802DFAA8 002DB708  38 80 00 07 */	li r4, 7
/* 802DFAAC 002DB70C  4B FF E2 05 */	bl rfc_mx_sm_execute
/* 802DFAB0 002DB710  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802DFAB4 002DB714  7C 08 03 A6 */	mtlr r0
/* 802DFAB8 002DB718  38 21 00 10 */	addi r1, r1, 0x10
/* 802DFABC 002DB71C  4E 80 00 20 */	blr

.global RFCOMM_DlcEstablishReq
RFCOMM_DlcEstablishReq:
/* 802DFAC0 002DB720  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802DFAC4 002DB724  7C 08 02 A6 */	mflr r0
/* 802DFAC8 002DB728  90 01 00 14 */	stw r0, 0x14(r1)
/* 802DFACC 002DB72C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802DFAD0 002DB730  7C 9F 23 78 */	mr r31, r4
/* 802DFAD4 002DB734  93 C1 00 08 */	stw r30, 8(r1)
/* 802DFAD8 002DB738  7C 7E 1B 78 */	mr r30, r3
/* 802DFADC 002DB73C  4B FF D5 21 */	bl port_find_mcb_dlci_port
/* 802DFAE0 002DB740  88 1E 00 6C */	lbz r0, 0x6c(r30)
/* 802DFAE4 002DB744  28 00 00 05 */	cmplwi r0, 5
/* 802DFAE8 002DB748  41 82 00 1C */	beq lbl_802DFB04
/* 802DFAEC 002DB74C  7F C3 F3 78 */	mr r3, r30
/* 802DFAF0 002DB750  7F E4 FB 78 */	mr r4, r31
/* 802DFAF4 002DB754  38 A0 00 00 */	li r5, 0
/* 802DFAF8 002DB758  38 C0 00 01 */	li r6, 1
/* 802DFAFC 002DB75C  4B FF C4 9D */	bl PORT_DlcEstablishCnf
/* 802DFB00 002DB760  48 00 00 10 */	b lbl_802DFB10
lbl_802DFB04:
/* 802DFB04 002DB764  38 80 00 09 */	li r4, 9
/* 802DFB08 002DB768  38 A0 00 00 */	li r5, 0
/* 802DFB0C 002DB76C  4B FF ED E9 */	bl rfc_port_sm_execute
lbl_802DFB10:
/* 802DFB10 002DB770  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802DFB14 002DB774  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802DFB18 002DB778  83 C1 00 08 */	lwz r30, 8(r1)
/* 802DFB1C 002DB77C  7C 08 03 A6 */	mtlr r0
/* 802DFB20 002DB780  38 21 00 10 */	addi r1, r1, 0x10
/* 802DFB24 002DB784  4E 80 00 20 */	blr

.global RFCOMM_DlcEstablishRsp
RFCOMM_DlcEstablishRsp:
/* 802DFB28 002DB788  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802DFB2C 002DB78C  7C 08 02 A6 */	mflr r0
/* 802DFB30 002DB790  90 01 00 24 */	stw r0, 0x24(r1)
/* 802DFB34 002DB794  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802DFB38 002DB798  7C 9F 23 78 */	mr r31, r4
/* 802DFB3C 002DB79C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802DFB40 002DB7A0  7C 7E 1B 78 */	mr r30, r3
/* 802DFB44 002DB7A4  B0 C1 00 08 */	sth r6, 8(r1)
/* 802DFB48 002DB7A8  4B FF D4 B5 */	bl port_find_mcb_dlci_port
/* 802DFB4C 002DB7AC  88 1E 00 6C */	lbz r0, 0x6c(r30)
/* 802DFB50 002DB7B0  28 00 00 05 */	cmplwi r0, 5
/* 802DFB54 002DB7B4  41 82 00 20 */	beq lbl_802DFB74
/* 802DFB58 002DB7B8  A0 01 00 08 */	lhz r0, 8(r1)
/* 802DFB5C 002DB7BC  2C 00 00 00 */	cmpwi r0, 0
/* 802DFB60 002DB7C0  40 82 00 14 */	bne lbl_802DFB74
/* 802DFB64 002DB7C4  7F C3 F3 78 */	mr r3, r30
/* 802DFB68 002DB7C8  7F E4 FB 78 */	mr r4, r31
/* 802DFB6C 002DB7CC  4B FF CA DD */	bl PORT_DlcReleaseInd
/* 802DFB70 002DB7D0  48 00 00 10 */	b lbl_802DFB80
lbl_802DFB74:
/* 802DFB74 002DB7D4  38 A1 00 08 */	addi r5, r1, 8
/* 802DFB78 002DB7D8  38 80 00 0B */	li r4, 0xb
/* 802DFB7C 002DB7DC  4B FF ED 79 */	bl rfc_port_sm_execute
lbl_802DFB80:
/* 802DFB80 002DB7E0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802DFB84 002DB7E4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802DFB88 002DB7E8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802DFB8C 002DB7EC  7C 08 03 A6 */	mtlr r0
/* 802DFB90 002DB7F0  38 21 00 20 */	addi r1, r1, 0x20
/* 802DFB94 002DB7F4  4E 80 00 20 */	blr

.global RFCOMM_ParNegReq
RFCOMM_ParNegReq:
/* 802DFB98 002DB7F8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802DFB9C 002DB7FC  7C 08 02 A6 */	mflr r0
/* 802DFBA0 002DB800  90 01 00 24 */	stw r0, 0x24(r1)
/* 802DFBA4 002DB804  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802DFBA8 002DB808  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802DFBAC 002DB80C  7C BE 2B 78 */	mr r30, r5
/* 802DFBB0 002DB810  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802DFBB4 002DB814  7C 9D 23 78 */	mr r29, r4
/* 802DFBB8 002DB818  93 81 00 10 */	stw r28, 0x10(r1)
/* 802DFBBC 002DB81C  7C 7C 1B 78 */	mr r28, r3
/* 802DFBC0 002DB820  4B FF D4 3D */	bl port_find_mcb_dlci_port
/* 802DFBC4 002DB824  88 1C 00 6C */	lbz r0, 0x6c(r28)
/* 802DFBC8 002DB828  7C 7F 1B 78 */	mr r31, r3
/* 802DFBCC 002DB82C  28 00 00 05 */	cmplwi r0, 5
/* 802DFBD0 002DB830  41 82 00 10 */	beq lbl_802DFBE0
/* 802DFBD4 002DB834  38 00 00 0D */	li r0, 0xd
/* 802DFBD8 002DB838  98 03 00 0E */	stb r0, 0xe(r3)
/* 802DFBDC 002DB83C  48 00 00 7C */	b lbl_802DFC58
lbl_802DFBE0:
/* 802DFBE0 002DB840  88 9C 00 72 */	lbz r4, 0x72(r28)
/* 802DFBE4 002DB844  38 00 00 02 */	li r0, 2
/* 802DFBE8 002DB848  2C 04 00 00 */	cmpwi r4, 0
/* 802DFBEC 002DB84C  41 82 00 08 */	beq lbl_802DFBF4
/* 802DFBF0 002DB850  7C 80 23 78 */	mr r0, r4
lbl_802DFBF4:
/* 802DFBF4 002DB854  54 00 06 3E */	clrlwi r0, r0, 0x18
/* 802DFBF8 002DB858  28 00 00 02 */	cmplwi r0, 2
/* 802DFBFC 002DB85C  40 82 00 28 */	bne lbl_802DFC24
/* 802DFC00 002DB860  A0 83 00 9C */	lhz r4, 0x9c(r3)
/* 802DFC04 002DB864  38 E0 00 F0 */	li r7, 0xf0
/* 802DFC08 002DB868  38 00 00 07 */	li r0, 7
/* 802DFC0C 002DB86C  28 04 00 07 */	cmplwi r4, 7
/* 802DFC10 002DB870  40 80 00 08 */	bge lbl_802DFC18
/* 802DFC14 002DB874  7C 80 23 78 */	mr r0, r4
lbl_802DFC18:
/* 802DFC18 002DB878  54 08 06 3E */	clrlwi r8, r0, 0x18
/* 802DFC1C 002DB87C  B1 03 00 9A */	sth r8, 0x9a(r3)
/* 802DFC20 002DB880  48 00 00 0C */	b lbl_802DFC2C
lbl_802DFC24:
/* 802DFC24 002DB884  38 E0 00 00 */	li r7, 0
/* 802DFC28 002DB888  39 00 00 00 */	li r8, 0
lbl_802DFC2C:
/* 802DFC2C 002DB88C  88 03 00 69 */	lbz r0, 0x69(r3)
/* 802DFC30 002DB890  7F A4 EB 78 */	mr r4, r29
/* 802DFC34 002DB894  7F C6 F3 78 */	mr r6, r30
/* 802DFC38 002DB898  38 A0 00 01 */	li r5, 1
/* 802DFC3C 002DB89C  60 00 00 01 */	ori r0, r0, 1
/* 802DFC40 002DB8A0  98 03 00 69 */	stb r0, 0x69(r3)
/* 802DFC44 002DB8A4  7F 83 E3 78 */	mr r3, r28
/* 802DFC48 002DB8A8  48 00 07 E5 */	bl rfc_send_pn
/* 802DFC4C 002DB8AC  7F E3 FB 78 */	mr r3, r31
/* 802DFC50 002DB8B0  38 80 00 3C */	li r4, 0x3c
/* 802DFC54 002DB8B4  48 00 1C E5 */	bl rfc_port_timer_start
lbl_802DFC58:
/* 802DFC58 002DB8B8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802DFC5C 002DB8BC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802DFC60 002DB8C0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802DFC64 002DB8C4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802DFC68 002DB8C8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802DFC6C 002DB8CC  7C 08 03 A6 */	mtlr r0
/* 802DFC70 002DB8D0  38 21 00 20 */	addi r1, r1, 0x20
/* 802DFC74 002DB8D4  4E 80 00 20 */	blr

.global RFCOMM_ParNegRsp
RFCOMM_ParNegRsp:
/* 802DFC78 002DB8D8  88 03 00 6C */	lbz r0, 0x6c(r3)
/* 802DFC7C 002DB8DC  7C C9 33 78 */	mr r9, r6
/* 802DFC80 002DB8E0  7C E8 3B 78 */	mr r8, r7
/* 802DFC84 002DB8E4  28 00 00 05 */	cmplwi r0, 5
/* 802DFC88 002DB8E8  4C 82 00 20 */	bnelr
/* 802DFC8C 002DB8EC  7C A6 2B 78 */	mr r6, r5
/* 802DFC90 002DB8F0  7D 27 4B 78 */	mr r7, r9
/* 802DFC94 002DB8F4  38 A0 00 00 */	li r5, 0
/* 802DFC98 002DB8F8  48 00 07 94 */	b rfc_send_pn
/* 802DFC9C 002DB8FC  4E 80 00 20 */	blr

.global RFCOMM_PortNegReq
RFCOMM_PortNegReq:
/* 802DFCA0 002DB900  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802DFCA4 002DB904  7C 08 02 A6 */	mflr r0
/* 802DFCA8 002DB908  90 01 00 24 */	stw r0, 0x24(r1)
/* 802DFCAC 002DB90C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802DFCB0 002DB910  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802DFCB4 002DB914  7C BE 2B 78 */	mr r30, r5
/* 802DFCB8 002DB918  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802DFCBC 002DB91C  7C 9D 23 78 */	mr r29, r4
/* 802DFCC0 002DB920  93 81 00 10 */	stw r28, 0x10(r1)
/* 802DFCC4 002DB924  7C 7C 1B 78 */	mr r28, r3
/* 802DFCC8 002DB928  4B FF D3 35 */	bl port_find_mcb_dlci_port
/* 802DFCCC 002DB92C  88 1C 00 6C */	lbz r0, 0x6c(r28)
/* 802DFCD0 002DB930  7C 7F 1B 78 */	mr r31, r3
/* 802DFCD4 002DB934  28 00 00 05 */	cmplwi r0, 5
/* 802DFCD8 002DB938  41 82 00 1C */	beq lbl_802DFCF4
/* 802DFCDC 002DB93C  7F 83 E3 78 */	mr r3, r28
/* 802DFCE0 002DB940  7F A4 EB 78 */	mr r4, r29
/* 802DFCE4 002DB944  38 A0 00 00 */	li r5, 0
/* 802DFCE8 002DB948  38 C0 00 01 */	li r6, 1
/* 802DFCEC 002DB94C  4B FF C5 41 */	bl PORT_PortNegCnf
/* 802DFCF0 002DB950  48 00 00 4C */	b lbl_802DFD3C
lbl_802DFCF4:
/* 802DFCF4 002DB954  2C 1E 00 00 */	cmpwi r30, 0
/* 802DFCF8 002DB958  40 82 00 14 */	bne lbl_802DFD0C
/* 802DFCFC 002DB95C  88 03 00 69 */	lbz r0, 0x69(r3)
/* 802DFD00 002DB960  60 00 00 02 */	ori r0, r0, 2
/* 802DFD04 002DB964  98 03 00 69 */	stb r0, 0x69(r3)
/* 802DFD08 002DB968  48 00 00 10 */	b lbl_802DFD18
lbl_802DFD0C:
/* 802DFD0C 002DB96C  88 03 00 69 */	lbz r0, 0x69(r3)
/* 802DFD10 002DB970  60 00 00 04 */	ori r0, r0, 4
/* 802DFD14 002DB974  98 03 00 69 */	stb r0, 0x69(r3)
lbl_802DFD18:
/* 802DFD18 002DB978  7F 83 E3 78 */	mr r3, r28
/* 802DFD1C 002DB97C  7F A4 EB 78 */	mr r4, r29
/* 802DFD20 002DB980  7F C6 F3 78 */	mr r6, r30
/* 802DFD24 002DB984  38 A0 00 01 */	li r5, 1
/* 802DFD28 002DB988  38 E0 3F 7F */	li r7, 0x3f7f
/* 802DFD2C 002DB98C  48 00 0A C1 */	bl rfc_send_rpn
/* 802DFD30 002DB990  7F E3 FB 78 */	mr r3, r31
/* 802DFD34 002DB994  38 80 00 3C */	li r4, 0x3c
/* 802DFD38 002DB998  48 00 1C 01 */	bl rfc_port_timer_start
lbl_802DFD3C:
/* 802DFD3C 002DB99C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802DFD40 002DB9A0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802DFD44 002DB9A4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802DFD48 002DB9A8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802DFD4C 002DB9AC  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802DFD50 002DB9B0  7C 08 03 A6 */	mtlr r0
/* 802DFD54 002DB9B4  38 21 00 20 */	addi r1, r1, 0x20
/* 802DFD58 002DB9B8  4E 80 00 20 */	blr

.global RFCOMM_PortNegRsp
RFCOMM_PortNegRsp:
/* 802DFD5C 002DB9BC  88 03 00 6C */	lbz r0, 0x6c(r3)
/* 802DFD60 002DB9C0  7C C7 33 78 */	mr r7, r6
/* 802DFD64 002DB9C4  28 00 00 05 */	cmplwi r0, 5
/* 802DFD68 002DB9C8  4C 82 00 20 */	bnelr
/* 802DFD6C 002DB9CC  7C A6 2B 78 */	mr r6, r5
/* 802DFD70 002DB9D0  38 A0 00 00 */	li r5, 0
/* 802DFD74 002DB9D4  48 00 0A 78 */	b rfc_send_rpn
/* 802DFD78 002DB9D8  4E 80 00 20 */	blr

.global RFCOMM_ControlReq
RFCOMM_ControlReq:
/* 802DFD7C 002DB9DC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802DFD80 002DB9E0  7C 08 02 A6 */	mflr r0
/* 802DFD84 002DB9E4  90 01 00 24 */	stw r0, 0x24(r1)
/* 802DFD88 002DB9E8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802DFD8C 002DB9EC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802DFD90 002DB9F0  7C BE 2B 78 */	mr r30, r5
/* 802DFD94 002DB9F4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802DFD98 002DB9F8  7C 9D 23 78 */	mr r29, r4
/* 802DFD9C 002DB9FC  93 81 00 10 */	stw r28, 0x10(r1)
/* 802DFDA0 002DBA00  7C 7C 1B 78 */	mr r28, r3
/* 802DFDA4 002DBA04  4B FF D2 59 */	bl port_find_mcb_dlci_port
/* 802DFDA8 002DBA08  88 03 00 02 */	lbz r0, 2(r3)
/* 802DFDAC 002DBA0C  7C 7F 1B 78 */	mr r31, r3
/* 802DFDB0 002DBA10  28 00 00 02 */	cmplwi r0, 2
/* 802DFDB4 002DBA14  40 82 00 4C */	bne lbl_802DFE00
/* 802DFDB8 002DBA18  88 03 00 68 */	lbz r0, 0x68(r3)
/* 802DFDBC 002DBA1C  28 00 00 04 */	cmplwi r0, 4
/* 802DFDC0 002DBA20  41 82 00 08 */	beq lbl_802DFDC8
/* 802DFDC4 002DBA24  48 00 00 3C */	b lbl_802DFE00
lbl_802DFDC8:
/* 802DFDC8 002DBA28  88 03 00 64 */	lbz r0, 0x64(r3)
/* 802DFDCC 002DBA2C  7F A4 EB 78 */	mr r4, r29
/* 802DFDD0 002DBA30  7F C6 F3 78 */	mr r6, r30
/* 802DFDD4 002DBA34  38 A0 00 01 */	li r5, 1
/* 802DFDD8 002DBA38  60 00 00 01 */	ori r0, r0, 1
/* 802DFDDC 002DBA3C  98 03 00 64 */	stb r0, 0x64(r3)
/* 802DFDE0 002DBA40  88 03 00 69 */	lbz r0, 0x69(r3)
/* 802DFDE4 002DBA44  60 00 00 08 */	ori r0, r0, 8
/* 802DFDE8 002DBA48  98 03 00 69 */	stb r0, 0x69(r3)
/* 802DFDEC 002DBA4C  7F 83 E3 78 */	mr r3, r28
/* 802DFDF0 002DBA50  48 00 08 2D */	bl rfc_send_msc
/* 802DFDF4 002DBA54  7F E3 FB 78 */	mr r3, r31
/* 802DFDF8 002DBA58  38 80 00 3C */	li r4, 0x3c
/* 802DFDFC 002DBA5C  48 00 1B 3D */	bl rfc_port_timer_start
lbl_802DFE00:
/* 802DFE00 002DBA60  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802DFE04 002DBA64  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802DFE08 002DBA68  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802DFE0C 002DBA6C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802DFE10 002DBA70  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802DFE14 002DBA74  7C 08 03 A6 */	mtlr r0
/* 802DFE18 002DBA78  38 21 00 20 */	addi r1, r1, 0x20
/* 802DFE1C 002DBA7C  4E 80 00 20 */	blr

.global RFCOMM_FlowReq
RFCOMM_FlowReq:
/* 802DFE20 002DBA80  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802DFE24 002DBA84  7C 08 02 A6 */	mflr r0
/* 802DFE28 002DBA88  90 01 00 24 */	stw r0, 0x24(r1)
/* 802DFE2C 002DBA8C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802DFE30 002DBA90  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802DFE34 002DBA94  7C BE 2B 78 */	mr r30, r5
/* 802DFE38 002DBA98  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802DFE3C 002DBA9C  7C 9D 23 78 */	mr r29, r4
/* 802DFE40 002DBAA0  93 81 00 10 */	stw r28, 0x10(r1)
/* 802DFE44 002DBAA4  7C 7C 1B 78 */	mr r28, r3
/* 802DFE48 002DBAA8  4B FF D1 B5 */	bl port_find_mcb_dlci_port
/* 802DFE4C 002DBAAC  88 03 00 02 */	lbz r0, 2(r3)
/* 802DFE50 002DBAB0  7C 7F 1B 78 */	mr r31, r3
/* 802DFE54 002DBAB4  28 00 00 02 */	cmplwi r0, 2
/* 802DFE58 002DBAB8  40 82 00 4C */	bne lbl_802DFEA4
/* 802DFE5C 002DBABC  88 03 00 68 */	lbz r0, 0x68(r3)
/* 802DFE60 002DBAC0  28 00 00 04 */	cmplwi r0, 4
/* 802DFE64 002DBAC4  41 82 00 08 */	beq lbl_802DFE6C
/* 802DFE68 002DBAC8  48 00 00 3C */	b lbl_802DFEA4
lbl_802DFE6C:
/* 802DFE6C 002DBACC  7F C0 00 34 */	cntlzw r0, r30
/* 802DFE70 002DBAD0  7F A4 EB 78 */	mr r4, r29
/* 802DFE74 002DBAD4  54 00 DE 3E */	rlwinm r0, r0, 0x1b, 0x18, 0x1f
/* 802DFE78 002DBAD8  38 DF 00 5A */	addi r6, r31, 0x5a
/* 802DFE7C 002DBADC  98 03 00 5E */	stb r0, 0x5e(r3)
/* 802DFE80 002DBAE0  38 A0 00 01 */	li r5, 1
/* 802DFE84 002DBAE4  88 03 00 69 */	lbz r0, 0x69(r3)
/* 802DFE88 002DBAE8  60 00 00 08 */	ori r0, r0, 8
/* 802DFE8C 002DBAEC  98 03 00 69 */	stb r0, 0x69(r3)
/* 802DFE90 002DBAF0  7F 83 E3 78 */	mr r3, r28
/* 802DFE94 002DBAF4  48 00 07 89 */	bl rfc_send_msc
/* 802DFE98 002DBAF8  7F E3 FB 78 */	mr r3, r31
/* 802DFE9C 002DBAFC  38 80 00 3C */	li r4, 0x3c
/* 802DFEA0 002DBB00  48 00 1A 99 */	bl rfc_port_timer_start
lbl_802DFEA4:
/* 802DFEA4 002DBB04  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802DFEA8 002DBB08  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802DFEAC 002DBB0C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802DFEB0 002DBB10  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802DFEB4 002DBB14  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802DFEB8 002DBB18  7C 08 03 A6 */	mtlr r0
/* 802DFEBC 002DBB1C  38 21 00 20 */	addi r1, r1, 0x20
/* 802DFEC0 002DBB20  4E 80 00 20 */	blr

.global RFCOMM_LineStatusReq
RFCOMM_LineStatusReq:
/* 802DFEC4 002DBB24  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802DFEC8 002DBB28  7C 08 02 A6 */	mflr r0
/* 802DFECC 002DBB2C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802DFED0 002DBB30  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802DFED4 002DBB34  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802DFED8 002DBB38  7C BE 2B 78 */	mr r30, r5
/* 802DFEDC 002DBB3C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802DFEE0 002DBB40  7C 9D 23 78 */	mr r29, r4
/* 802DFEE4 002DBB44  93 81 00 10 */	stw r28, 0x10(r1)
/* 802DFEE8 002DBB48  7C 7C 1B 78 */	mr r28, r3
/* 802DFEEC 002DBB4C  4B FF D1 11 */	bl port_find_mcb_dlci_port
/* 802DFEF0 002DBB50  88 03 00 02 */	lbz r0, 2(r3)
/* 802DFEF4 002DBB54  7C 7F 1B 78 */	mr r31, r3
/* 802DFEF8 002DBB58  28 00 00 02 */	cmplwi r0, 2
/* 802DFEFC 002DBB5C  40 82 00 40 */	bne lbl_802DFF3C
/* 802DFF00 002DBB60  88 03 00 68 */	lbz r0, 0x68(r3)
/* 802DFF04 002DBB64  28 00 00 04 */	cmplwi r0, 4
/* 802DFF08 002DBB68  41 82 00 08 */	beq lbl_802DFF10
/* 802DFF0C 002DBB6C  48 00 00 30 */	b lbl_802DFF3C
lbl_802DFF10:
/* 802DFF10 002DBB70  88 03 00 69 */	lbz r0, 0x69(r3)
/* 802DFF14 002DBB74  7F A4 EB 78 */	mr r4, r29
/* 802DFF18 002DBB78  7F C6 F3 78 */	mr r6, r30
/* 802DFF1C 002DBB7C  38 A0 00 01 */	li r5, 1
/* 802DFF20 002DBB80  60 00 00 10 */	ori r0, r0, 0x10
/* 802DFF24 002DBB84  98 03 00 69 */	stb r0, 0x69(r3)
/* 802DFF28 002DBB88  7F 83 E3 78 */	mr r3, r28
/* 802DFF2C 002DBB8C  48 00 08 11 */	bl rfc_send_rls
/* 802DFF30 002DBB90  7F E3 FB 78 */	mr r3, r31
/* 802DFF34 002DBB94  38 80 00 3C */	li r4, 0x3c
/* 802DFF38 002DBB98  48 00 1A 01 */	bl rfc_port_timer_start
lbl_802DFF3C:
/* 802DFF3C 002DBB9C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802DFF40 002DBBA0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802DFF44 002DBBA4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802DFF48 002DBBA8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802DFF4C 002DBBAC  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802DFF50 002DBBB0  7C 08 03 A6 */	mtlr r0
/* 802DFF54 002DBBB4  38 21 00 20 */	addi r1, r1, 0x20
/* 802DFF58 002DBBB8  4E 80 00 20 */	blr

.global RFCOMM_DlcReleaseReq
RFCOMM_DlcReleaseReq:
/* 802DFF5C 002DBBBC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802DFF60 002DBBC0  7C 08 02 A6 */	mflr r0
/* 802DFF64 002DBBC4  90 01 00 14 */	stw r0, 0x14(r1)
/* 802DFF68 002DBBC8  4B FF D0 95 */	bl port_find_mcb_dlci_port
/* 802DFF6C 002DBBCC  38 80 00 0C */	li r4, 0xc
/* 802DFF70 002DBBD0  38 A0 00 00 */	li r5, 0
/* 802DFF74 002DBBD4  4B FF E9 81 */	bl rfc_port_sm_execute
/* 802DFF78 002DBBD8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802DFF7C 002DBBDC  7C 08 03 A6 */	mtlr r0
/* 802DFF80 002DBBE0  38 21 00 10 */	addi r1, r1, 0x10
/* 802DFF84 002DBBE4  4E 80 00 20 */	blr

.global RFCOMM_DataReq
RFCOMM_DataReq:
/* 802DFF88 002DBBE8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802DFF8C 002DBBEC  7C 08 02 A6 */	mflr r0
/* 802DFF90 002DBBF0  90 01 00 14 */	stw r0, 0x14(r1)
/* 802DFF94 002DBBF4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802DFF98 002DBBF8  7C BF 2B 78 */	mr r31, r5
/* 802DFF9C 002DBBFC  4B FF D0 61 */	bl port_find_mcb_dlci_port
/* 802DFFA0 002DBC00  7F E5 FB 78 */	mr r5, r31
/* 802DFFA4 002DBC04  38 80 00 0E */	li r4, 0xe
/* 802DFFA8 002DBC08  4B FF E9 4D */	bl rfc_port_sm_execute
/* 802DFFAC 002DBC0C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802DFFB0 002DBC10  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802DFFB4 002DBC14  7C 08 03 A6 */	mtlr r0
/* 802DFFB8 002DBC18  38 21 00 10 */	addi r1, r1, 0x10
/* 802DFFBC 002DBC1C  4E 80 00 20 */	blr