Files

17879 lines
312 KiB
ArmAsm
Executable File

.arch armv7-a
.fpu softvfp
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.eabi_attribute 26, 2
.eabi_attribute 30, 6
.eabi_attribute 34, 1
.eabi_attribute 18, 4
.file "mt7570.c"
#APP
.macro it, cond
.endm
.macro itt, cond
.endm
.macro ite, cond
.endm
.macro ittt, cond
.endm
.macro itte, cond
.endm
.macro itet, cond
.endm
.macro itee, cond
.endm
.macro itttt, cond
.endm
.macro ittte, cond
.endm
.macro ittet, cond
.endm
.macro ittee, cond
.endm
.macro itett, cond
.endm
.macro itete, cond
.endm
.macro iteet, cond
.endm
.macro iteee, cond
.endm
.global mt7570_version
.data
.align 2
.type mt7570_version, %object
.size mt7570_version, 4
mt7570_version:
.word 110
.global internal_DDMI
.align 2
.type internal_DDMI, %object
.size internal_DDMI, 4
internal_DDMI:
.word 1
.global fast_DDMI
.bss
.align 2
.type fast_DDMI, %object
.size fast_DDMI, 4
fast_DDMI:
.space 4
.global TEC
.data
.align 2
.type TEC, %object
.size TEC, 4
TEC:
.word 1
.global TEC_switch
.bss
.align 2
.type TEC_switch, %object
.size TEC_switch, 4
TEC_switch:
.space 4
.global xPON_mode
.data
.align 2
.type xPON_mode, %object
.size xPON_mode, 4
xPON_mode:
.word -1
.global mt7570_select
.bss
.align 2
.type mt7570_select, %object
.size mt7570_select, 4
mt7570_select:
.space 4
.global vEN7570
.data
.align 2
.type vEN7570, %object
.size vEN7570, 4
vEN7570:
.word 1
.global BG1V76
.bss
.align 2
.type BG1V76, %object
.size BG1V76, 4
BG1V76:
.space 4
.global BG0V875
.align 2
.type BG0V875, %object
.size BG0V875, 4
BG0V875:
.space 4
.global RSSI_Vref
.align 2
.type RSSI_Vref, %object
.size RSSI_Vref, 4
RSSI_Vref:
.space 4
.global RSSI_V
.align 2
.type RSSI_V, %object
.size RSSI_V, 4
RSSI_V:
.space 4
.global ETC
.align 2
.type ETC, %object
.size ETC, 4
ETC:
.space 4
.global FiberPlug
.align 2
.type FiberPlug, %object
.size FiberPlug, 4
FiberPlug:
.space 4
.global PatternEnabled
.align 2
.type PatternEnabled, %object
.size PatternEnabled, 4
PatternEnabled:
.space 4
.global RSSI_factor
.align 2
.type RSSI_factor, %object
.size RSSI_factor, 4
RSSI_factor:
.space 4
.global delay_cnt
.align 2
.type delay_cnt, %object
.size delay_cnt, 4
delay_cnt:
.space 4
.global cnt7570
.align 2
.type cnt7570, %object
.size cnt7570, 4
cnt7570:
.space 4
.global MPD_current_cnt
.align 2
.type MPD_current_cnt, %object
.size MPD_current_cnt, 4
MPD_current_cnt:
.space 4
.global T0C_extension
.align 2
.type T0C_extension, %object
.size T0C_extension, 4
T0C_extension:
.space 4
.global IC_temperature
.data
.align 2
.type IC_temperature, %object
.size IC_temperature, 4
IC_temperature:
.word 1103626240
.global BOSA_temperature
.align 2
.type BOSA_temperature, %object
.size BOSA_temperature, 4
BOSA_temperature:
.word 1101004800
.global Env_temperature
.align 2
.type Env_temperature, %object
.size Env_temperature, 4
Env_temperature:
.word 1103626240
.global APD_voltage
.align 2
.type APD_voltage, %object
.size APD_voltage, 4
APD_voltage:
.word 1108082688
.global ADC_slope
.bss
.align 2
.type ADC_slope, %object
.size ADC_slope, 4
ADC_slope:
.space 4
.global ADC_offset
.align 2
.type ADC_offset, %object
.size ADC_offset, 4
ADC_offset:
.space 4
.global global_temperature_code
.align 2
.type global_temperature_code, %object
.size global_temperature_code, 4
global_temperature_code:
.space 4
.global global_vcc_code
.align 2
.type global_vcc_code, %object
.size global_vcc_code, 4
global_vcc_code:
.space 4
.global global_bias_current
.align 2
.type global_bias_current, %object
.size global_bias_current, 4
global_bias_current:
.space 4
.global global_MPDL
.align 2
.type global_MPDL, %object
.size global_MPDL, 4
global_MPDL:
.space 4
.global global_MPDH
.align 2
.type global_MPDH, %object
.size global_MPDH, 4
global_MPDH:
.space 4
.global global_modulation_current
.align 2
.type global_modulation_current, %object
.size global_modulation_current, 4
global_modulation_current:
.space 4
.global global_rssi_current
.align 2
.type global_rssi_current, %object
.size global_rssi_current, 4
global_rssi_current:
.space 4
.global global_mpd_current
.align 2
.type global_mpd_current, %object
.size global_mpd_current, 4
global_mpd_current:
.space 4
.global global_RSSI_current
.align 2
.type global_RSSI_current, %object
.size global_RSSI_current, 4
global_RSSI_current:
.space 4
.global global_MPD_current
.align 2
.type global_MPD_current, %object
.size global_MPD_current, 4
global_MPD_current:
.space 4
.global global_MPD_current_var
.align 2
.type global_MPD_current_var, %object
.size global_MPD_current_var, 4
global_MPD_current_var:
.space 4
.global global_DDMI_rx_cal_flag
.align 2
.type global_DDMI_rx_cal_flag, %object
.size global_DDMI_rx_cal_flag, 4
global_DDMI_rx_cal_flag:
.space 4
.global global_supply_voltage_8472
.align 1
.type global_supply_voltage_8472, %object
.size global_supply_voltage_8472, 2
global_supply_voltage_8472:
.space 2
.global global_IC_temperature_8472
.align 1
.type global_IC_temperature_8472, %object
.size global_IC_temperature_8472, 2
global_IC_temperature_8472:
.space 2
.global global_bias_current_8472
.align 1
.type global_bias_current_8472, %object
.size global_bias_current_8472, 2
global_bias_current_8472:
.space 2
.global DDMI_voltage
.align 1
.type DDMI_voltage, %object
.size DDMI_voltage, 2
DDMI_voltage:
.space 2
.global DDMI_current
.align 1
.type DDMI_current, %object
.size DDMI_current, 2
DDMI_current:
.space 2
.global DDMI_temperature
.align 1
.type DDMI_temperature, %object
.size DDMI_temperature, 2
DDMI_temperature:
.space 2
.global DDMI_tx_power
.align 1
.type DDMI_tx_power, %object
.size DDMI_tx_power, 2
DDMI_tx_power:
.space 2
.global DDMI_rx_power
.align 1
.type DDMI_rx_power, %object
.size DDMI_rx_power, 2
DDMI_rx_power:
.space 2
.global Ibias_outputlow_flag
.align 2
.type Ibias_outputlow_flag, %object
.size Ibias_outputlow_flag, 4
Ibias_outputlow_flag:
.space 4
.global BER_result
.align 2
.type BER_result, %object
.size BER_result, 4
BER_result:
.space 4
.global MPD_current_offset
.align 2
.type MPD_current_offset, %object
.size MPD_current_offset, 4
MPD_current_offset:
.space 4
.global T_APD
.data
.align 2
.type T_APD, %object
.size T_APD, 4
T_APD:
.word 600
.global flash_matrix
.bss
.align 2
.type flash_matrix, %object
.size flash_matrix, 400
flash_matrix:
.space 400
.global mt7570_alarm
.align 2
.type mt7570_alarm, %object
.size mt7570_alarm, 4
mt7570_alarm:
.space 4
.global SCL
.align 2
.type SCL, %object
.size SCL, 4
SCL:
.space 4
.global DOL
.align 2
.type DOL, %object
.size DOL, 4
DOL:
.space 4
.global BiasTracking_switch
.align 2
.type BiasTracking_switch, %object
.size BiasTracking_switch, 4
BiasTracking_switch:
.space 4
.global BOSA_Ith
.data
.align 2
.type BOSA_Ith, %object
.size BOSA_Ith, 4
BOSA_Ith:
.word 3000
.global LUT_Ibias_Imod
.align 2
.type LUT_Ibias_Imod, %object
.size LUT_Ibias_Imod, 512
LUT_Ibias_Imod:
.word 262
.word 946
.word 266
.word 946
.word 271
.word 950
.word 280
.word 955
.word 285
.word 955
.word 289
.word 960
.word 298
.word 964
.word 303
.word 964
.word 307
.word 969
.word 316
.word 973
.word 321
.word 973
.word 326
.word 978
.word 334
.word 982
.word 343
.word 984
.word 356
.word 996
.word 369
.word 1005
.word 382
.word 1014
.word 395
.word 1023
.word 408
.word 1032
.word 421
.word 1041
.word 429
.word 1046
.word 442
.word 1055
.word 455
.word 1064
.word 468
.word 1073
.word 481
.word 1082
.word 494
.word 1092
.word 507
.word 1101
.word 532
.word 1114
.word 547
.word 1128
.word 566
.word 1142
.word 581
.word 1160
.word 600
.word 1173
.word 616
.word 1187
.word 631
.word 1201
.word 650
.word 1219
.word 665
.word 1233
.word 684
.word 1246
.word 699
.word 1260
.word 719
.word 1278
.word 766
.word 1296
.word 818
.word 1319
.word 866
.word 1342
.word 918
.word 1365
.word 966
.word 1387
.word 1018
.word 1410
.word 1131
.word 1465
.word 1245
.word 1519
.word 1358
.word 1574
.word 1476
.word 1628
.word 1589
.word 1683
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.word 1638
.word 1742
.global i2c_protect
.bss
.align 2
.type i2c_protect, %object
.size i2c_protect, 4
i2c_protect:
.space 4
.text
.align 2
.global i2c_access_protect
.type i2c_access_protect, %function
i2c_access_protect:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #10000
str r3, [sp, #20]
b .L2
.L12:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #41838
movt r0, 1
blx r3
ldr r3, [sp, #20]
cmp r3, #0
bne .L3
mvn r3, #0
b .L4
.L3:
ldr r3, [sp, #20]
sub r3, r3, #1
str r3, [sp, #20]
.L2:
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #16]
add r3, sp, #4
str r3, [sp, #12]
mov r3, #4
str r3, [sp, #8]
ldr r3, [sp, #8]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L5
.L7:
.word .L6
.word .L8
.word .L5
.word .L9
.word .L5
.word .L5
.word .L5
.word .L10
.L6:
ldr r3, [sp, #16]
ldrb r3, [r3]
uxtb r2, r3
ldr r3, [sp, #12]
strb r2, [r3]
b .L13
.L8:
ldr r3, [sp, #16]
ldrh r3, [r3] @ movhi
uxth r2, r3
ldr r3, [sp, #12]
strh r2, [r3] @ movhi
b .L13
.L9:
ldr r3, [sp, #16]
ldr r2, [r3]
ldr r3, [sp, #12]
str r2, [r3]
b .L13
.L10:
ldr r3, [sp, #16]
ldrd r2, [r3]
ldr r1, [sp, #12]
strd r2, [r1]
b .L13
.L5:
ldr r3, [sp, #8]
ldr r1, [sp, #12]
ldr r2, [sp, #16]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L13:
ldr r3, [sp, #4]
cmp r3, #1
beq .L12
mov r3, #0
.L4:
mov r0, r3
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size i2c_access_protect, .-i2c_access_protect
.section .rodata.str1.4,"aMS",%progbits,1
.align 2
.LC0:
.ascii "EN7570 reg 0x%.3x\000"
.align 2
.LC1:
.ascii "\011%.8x\012\000"
.text
.align 2
.global mt7570_register_dump
.type mt7570_register_dump, %function
mt7570_register_dump:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #44
sub sp, sp, #44
str r0, [sp, #20]
mov r3, #0
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #36]
b .L15
.L16:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
ldr r3, [sp, #36]
mov r3, r3, asl #2
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #28] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #29] @ zero_extendqisi2
mov r3, r3, asl #8
orr r2, r2, r3
ldrb r3, [sp, #30] @ zero_extendqisi2
mov r3, r3, asl #16
orr r2, r2, r3
ldrb r3, [sp, #31] @ zero_extendqisi2
mov r3, r3, asl #24
orr r3, r2, r3
str r3, [sp, #32]
ldr r3, [sp, #36]
mov r3, r3, asl #2
movw r0, #:lower16:.LC0
movt r0, #:upper16:.LC0
mov r1, r3
bl printk
movw r0, #:lower16:.LC1
movt r0, #:upper16:.LC1
ldr r1, [sp, #32]
bl printk
ldr r3, [sp, #36]
add r3, r3, #1
str r3, [sp, #36]
.L15:
ldr r2, [sp, #36]
ldr r3, [sp, #20]
cmp r2, r3
blt .L16
add sp, sp, #44
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_register_dump, .-mt7570_register_dump
.align 2
.global get_flash_register
.type get_flash_register, %function
get_flash_register:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
.pad #16
sub sp, sp, #16
str r0, [sp, #4]
mov r3, #0
str r3, [sp, #12]
ldr r3, [sp, #4]
mov r2, r3, asr #2
movw r3, #:lower16:flash_matrix
movt r3, #:upper16:flash_matrix
ldr r3, [r3, r2, asl #2]
str r3, [sp, #12]
ldr r3, [sp, #12]
mov r0, r3
add sp, sp, #16
@ sp needed
bx lr
.fnend
.size get_flash_register, .-get_flash_register
.section .rodata.str1.4
.align 2
.LC2:
.ascii "/tmp/7570_bob.conf\000"
.align 2
.LC3:
.ascii "--> Error opening \012\000"
.text
.align 2
.global get_flash_matrix
.type get_flash_matrix, %function
get_flash_matrix:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #60
sub sp, sp, #60
mov r3, #0
str r3, [sp, #52]
mov r3, #0
str r3, [sp, #48]
movw r3, #:lower16:.LC2
movt r3, #:upper16:.LC2
str r3, [sp, #48]
mov r3, sp
bic r3, r3, #16320
bic r3, r3, #63
ldr r3, [r3, #8]
str r3, [sp, #44]
mov r3, #0
str r3, [sp, #40]
mov r3, sp
bic r3, r3, #16320
bic r3, r3, #63
mov r2, r3
ldr r3, [sp, #40]
str r3, [r2, #8]
mov r3, #0
str r3, [sp, #36]
mov r3, #1
str r3, [sp, #32]
ldr r3, [sp, #48]
cmp r3, #0
beq .L22
ldr r3, [sp, #48]
ldrb r3, [r3] @ zero_extendqisi2
cmp r3, #0
beq .L22
ldr r0, [sp, #48]
mov r1, #0
mov r2, #0
bl filp_open
str r0, [sp, #52]
ldr r3, [sp, #52]
str r3, [sp, #28]
ldr r3, [sp, #28]
cmn r3, #4096
movhi r3, #1
movls r3, #0
uxtb r3, r3
cmp r3, #0
movne r3, #1
moveq r3, #0
uxtb r3, r3
cmp r3, #0
beq .L24
movw r0, #:lower16:.LC3
movt r0, #:upper16:.LC3
bl printk
mov r0, r0 @ nop
.L25:
ldr r3, [sp, #44]
str r3, [sp, #12]
mov r3, sp
bic r3, r3, #16320
bic r3, r3, #63
mov r2, r3
ldr r3, [sp, #12]
str r3, [r2, #8]
mov r3, #0
str r3, [sp, #8]
mov r3, #1
str r3, [sp, #4]
mvn r3, #0
b .L27
.L24:
ldr r3, [sp, #52]
add r3, r3, #64
ldr r0, [sp, #52]
movw r1, #:lower16:flash_matrix
movt r1, #:upper16:flash_matrix
mov r2, #400
bl ecnt_kernel_fs_read
ldr r0, [sp, #52]
mov r1, #0
bl filp_close
.L22:
ldr r3, [sp, #44]
str r3, [sp, #24]
mov r3, sp
bic r3, r3, #16320
bic r3, r3, #63
mov r2, r3
ldr r3, [sp, #24]
str r3, [r2, #8]
mov r3, #0
str r3, [sp, #20]
mov r3, #1
str r3, [sp, #16]
mov r3, #0
.L27:
mov r0, r3
add sp, sp, #60
@ sp needed
ldr pc, [sp], #4
.fnend
.size get_flash_matrix, .-get_flash_matrix
.align 2
.global set_flash_register
.type set_flash_register, %function
set_flash_register:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
.pad #8
sub sp, sp, #8
str r0, [sp, #4]
str r1, [sp]
ldr r3, [sp]
mov r2, r3, lsr #2
movw r3, #:lower16:flash_matrix
movt r3, #:upper16:flash_matrix
ldr r1, [sp, #4]
str r1, [r3, r2, asl #2]
add sp, sp, #8
@ sp needed
bx lr
.fnend
.size set_flash_register, .-set_flash_register
.align 2
.global set_flash_register_default
.type set_flash_register_default, %function
set_flash_register_default:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
.pad #8
sub sp, sp, #8
mov r3, #0
str r3, [sp, #4]
mov r3, #0
str r3, [sp, #4]
b .L31
.L32:
movw r3, #:lower16:flash_matrix
movt r3, #:upper16:flash_matrix
ldr r2, [sp, #4]
mvn r1, #0
str r1, [r3, r2, asl #2]
ldr r3, [sp, #4]
add r3, r3, #1
str r3, [sp, #4]
.L31:
ldr r3, [sp, #4]
cmp r3, #39
ble .L32
add sp, sp, #8
@ sp needed
bx lr
.fnend
.size set_flash_register_default, .-set_flash_register_default
.section .rodata.str1.4
.align 2
.LC4:
.ascii "Ibias = 0x%x\012\000"
.align 2
.LC5:
.ascii "Imod = 0x%x\012\000"
.text
.align 2
.global set_flash_register_BiasModCurrent
.type set_flash_register_BiasModCurrent, %function
set_flash_register_BiasModCurrent:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #12
sub sp, sp, #12
mov r0, #3
bl mt7570_information_output
mov r3, r0
str r3, [sp, #4]
mov r0, #4
bl mt7570_information_output
mov r3, r0
str r3, [sp]
ldr r0, [sp, #4]
mov r1, #0
bl set_flash_register
ldr r0, [sp]
mov r1, #4
bl set_flash_register
movw r0, #:lower16:.LC4
movt r0, #:upper16:.LC4
ldr r1, [sp, #4]
bl printk
movw r0, #:lower16:.LC5
movt r0, #:upper16:.LC5
ldr r1, [sp]
bl printk
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size set_flash_register_BiasModCurrent, .-set_flash_register_BiasModCurrent
.section .rodata.str1.4
.align 2
.LC6:
.ascii "P0 = 0x%x\012\000"
.align 2
.LC7:
.ascii "P1 = 0x%x\012\000"
.text
.align 2
.global set_flash_register_P0P1
.type set_flash_register_P0P1, %function
set_flash_register_P0P1:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #12
sub sp, sp, #12
mov r0, #5
bl mt7570_information_output
mov r3, r0
str r3, [sp, #4]
mov r0, #6
bl mt7570_information_output
mov r3, r0
str r3, [sp]
ldr r0, [sp, #4]
mov r1, #8
bl set_flash_register
ldr r0, [sp]
mov r1, #12
bl set_flash_register
movw r0, #:lower16:.LC6
movt r0, #:upper16:.LC6
ldr r1, [sp, #4]
bl printk
movw r0, #:lower16:.LC7
movt r0, #:upper16:.LC7
ldr r1, [sp]
bl printk
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size set_flash_register_P0P1, .-set_flash_register_P0P1
.section .rodata.str1.4
.align 2
.LC8:
.ascii "slope up = 0x%x\012\000"
.align 2
.LC9:
.ascii "slope down = 0x%x\012\000"
.align 2
.LC10:
.ascii "VAPD@25C = 0x%x\012\000"
.text
.align 2
.global set_flash_register_APD
.type set_flash_register_APD, %function
set_flash_register_APD:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #20
sub sp, sp, #20
str r0, [sp, #12]
str r1, [sp, #8]
str r2, [sp, #4]
ldr r0, [sp, #12]
mov r1, #16
bl set_flash_register
ldr r0, [sp, #8]
mov r1, #20
bl set_flash_register
ldr r0, [sp, #4]
mov r1, #24
bl set_flash_register
movw r0, #:lower16:.LC8
movt r0, #:upper16:.LC8
ldr r1, [sp, #12]
bl printk
movw r0, #:lower16:.LC9
movt r0, #:upper16:.LC9
ldr r1, [sp, #8]
bl printk
movw r0, #:lower16:.LC10
movt r0, #:upper16:.LC10
ldr r1, [sp, #4]
bl printk
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.fnend
.size set_flash_register_APD, .-set_flash_register_APD
.section .rodata.str1.4
.align 2
.LC11:
.ascii "LOS low = 0x%x\012\000"
.align 2
.LC12:
.ascii "LOS high = 0x%x\012\000"
.text
.align 2
.global set_flash_register_LOS
.type set_flash_register_LOS, %function
set_flash_register_LOS:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
and r3, r3, #127
uxtb r3, r3
strb r3, [sp, #23]
ldrb r3, [sp, #22] @ zero_extendqisi2
and r3, r3, #127
uxtb r3, r3
strb r3, [sp, #22]
ldrb r3, [sp, #23] @ zero_extendqisi2
mov r0, r3
mov r1, #36
bl set_flash_register
ldrb r3, [sp, #22] @ zero_extendqisi2
mov r0, r3
mov r1, #32
bl set_flash_register
ldrb r3, [sp, #23] @ zero_extendqisi2
movw r0, #:lower16:.LC11
movt r0, #:upper16:.LC11
mov r1, r3
bl printk
ldrb r3, [sp, #22] @ zero_extendqisi2
movw r0, #:lower16:.LC12
movt r0, #:upper16:.LC12
mov r1, r3
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size set_flash_register_LOS, .-set_flash_register_LOS
.section .rodata.str1.4
.align 2
.LC13:
.ascii "0x%08x\012\000"
.text
.align 2
.global set_flash_register_DDMI_TxPower
.type set_flash_register_DDMI_TxPower, %function
set_flash_register_DDMI_TxPower:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #16
sub sp, sp, #16
str r0, [sp, #4]
str r1, [sp]
mov r3, #0
str r3, [sp, #12]
ldr r3, [sp, #4]
mov r4, r3, asl #16
bl mt7570_MPD_current
mov r3, r0
uxth r3, r3
orr r3, r4, r3
str r3, [sp, #12]
ldr r0, [sp, #12]
ldr r1, [sp]
bl set_flash_register
movw r3, #:lower16:vEN7570
movt r3, #:upper16:vEN7570
ldr r3, [r3]
cmp r3, #0
bne .L38
ldr r3, [sp]
cmp r3, #64
bne .L38
ldr r3, [sp, #12]
uxth r3, r3
mov r0, r3
mov r1, #136
bl set_flash_register
.L38:
movw r0, #:lower16:.LC13
movt r0, #:upper16:.LC13
ldr r1, [sp, #12]
bl printk
add sp, sp, #16
@ sp needed
ldmfd sp!, {r4, pc}
.fnend
.size set_flash_register_DDMI_TxPower, .-set_flash_register_DDMI_TxPower
.align 2
.global set_flash_register_DDMI_RxPower
.type set_flash_register_DDMI_RxPower, %function
set_flash_register_DDMI_RxPower:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #16
sub sp, sp, #16
str r0, [sp, #4]
str r1, [sp]
mov r3, #0
str r3, [sp, #12]
ldr r3, [sp, #4]
mov r4, r3, asl #16
bl mt7570_RSSI_current
mov r3, r0
uxth r3, r3
orr r3, r4, r3
str r3, [sp, #12]
ldr r0, [sp, #12]
ldr r1, [sp]
bl set_flash_register
movw r0, #:lower16:.LC13
movt r0, #:upper16:.LC13
ldr r1, [sp, #12]
bl printk
movw r3, #:lower16:global_DDMI_rx_cal_flag
movt r3, #:upper16:global_DDMI_rx_cal_flag
mov r2, #0
str r2, [r3]
add sp, sp, #16
@ sp needed
ldmfd sp!, {r4, pc}
.fnend
.size set_flash_register_DDMI_RxPower, .-set_flash_register_DDMI_RxPower
.section .rodata.str1.4
.align 2
.LC14:
.ascii "TIAGAIN = 0x%x\012\000"
.text
.align 2
.global set_flash_register_TIAGAIN
.type set_flash_register_TIAGAIN, %function
set_flash_register_TIAGAIN:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #1
str r3, [sp]
add r3, sp, #23
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
mov r3, r3, lsr #6
uxtb r3, r3
strb r3, [sp, #23]
ldrb r3, [sp, #23] @ zero_extendqisi2
mov r0, r3
mov r1, #40
bl set_flash_register
ldrb r3, [sp, #23] @ zero_extendqisi2
movw r0, #:lower16:.LC14
movt r0, #:upper16:.LC14
mov r1, r3
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size set_flash_register_TIAGAIN, .-set_flash_register_TIAGAIN
.section .rodata.str1.4
.align 2
.LC15:
.ascii "Env_temperature = %d.%.1dC\012\000"
.global __aeabi_fmul
.global __aeabi_i2f
.global __aeabi_fsub
.global __aeabi_f2iz
.align 2
.LC16:
.ascii "Not thermal balance\012\000"
.align 2
.LC17:
.ascii "Env_temperature_offset = %d.%.1dC\012\000"
.text
.align 2
.global set_flash_register_EnvTemp
.type set_flash_register_EnvTemp, %function
set_flash_register_EnvTemp:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #16
sub sp, sp, #16
str r0, [sp, #4]
mov r3, #0
str r3, [sp, #12]
mov r3, #0
str r3, [sp, #8]
ldr r3, [sp, #4]
mov r0, r3
mov r1, #96
bl set_flash_register
ldr r1, [sp, #4]
movw r3, #26215
movt r3, 26214
smull r2, r3, r1, r3
mov r2, r3, asr #2
mov r3, r1, asr #31
rsb lr, r3, r2
ldr r2, [sp, #4]
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb ip, r3, r1
mov r3, ip
mov r3, r3, asl #2
add r3, r3, ip
mov r3, r3, asl #1
rsb ip, r3, r2
movw r0, #:lower16:.LC15
movt r0, #:upper16:.LC15
mov r1, lr
mov r2, ip
bl printk
bl mt7570_temperature_get
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #4]
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #8]
ldr r3, [sp, #8]
cmp r3, #0
bge .L42
movw r0, #:lower16:.LC16
movt r0, #:upper16:.LC16
bl printk
b .L41
.L42:
ldr r1, [sp, #8]
movw r3, #26215
movt r3, 26214
smull r2, r3, r1, r3
mov r2, r3, asr #2
mov r3, r1, asr #31
rsb lr, r3, r2
ldr r2, [sp, #8]
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb ip, r3, r1
mov r3, ip
mov r3, r3, asl #2
add r3, r3, ip
mov r3, r3, asl #1
rsb ip, r3, r2
movw r0, #:lower16:.LC17
movt r0, #:upper16:.LC17
mov r1, lr
mov r2, ip
bl printk
ldr r3, [sp, #8]
mov r4, r3, asl #16
mov r0, #132
bl get_flash_register
mov r3, r0
uxth r3, r3
orr r3, r4, r3
str r3, [sp, #12]
ldr r0, [sp, #12]
mov r1, #132
bl set_flash_register
.L41:
add sp, sp, #16
@ sp needed
ldmfd sp!, {r4, pc}
.fnend
.size set_flash_register_EnvTemp, .-set_flash_register_EnvTemp
.section .rodata.str1.4
.align 2
.LC18:
.ascii "Please input temperature value in range : 0 ~ 0x500"
.ascii "\012\000"
.align 2
.LC19:
.ascii "Temperature slope = 0x%x\012\000"
.global __aeabi_ui2f
.global __aeabi_f2d
.global __aeabi_dadd
.global __aeabi_d2uiz
.align 2
.LC20:
.ascii "Temperature offset = 0x%x\012\000"
.text
.align 2
.global set_flash_register_temperature_offset
.type set_flash_register_temperature_offset, %function
set_flash_register_temperature_offset:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #16
sub sp, sp, #16
str r0, [sp, #4]
str r1, [sp]
ldr r3, [sp, #4]
cmp r3, #1280
bls .L45
movw r0, #:lower16:.LC18
movt r0, #:upper16:.LC18
bl printk
b .L44
.L45:
ldr r3, [sp]
cmp r3, #0
bne .L47
movw r3, #65535
str r3, [sp]
b .L48
.L47:
movw r0, #:lower16:.LC19
movt r0, #:upper16:.LC19
ldr r1, [sp]
bl printk
.L48:
ldr r3, [sp]
mov r3, r3, asl #16
mvn r3, r3, lsr #16
mvn r3, r3, asl #16
str r3, [sp, #12]
ldr r0, [sp, #12]
mov r1, #128
bl set_flash_register
bl mt7570_temperature_get
ldr r0, [sp, #4]
bl __aeabi_ui2f
mov r4, r0
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #24064
movt r3, 16563
bl __aeabi_dadd
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2uiz
mov r3, r0
str r3, [sp, #12]
movw r0, #:lower16:.LC20
movt r0, #:upper16:.LC20
ldr r1, [sp, #12]
bl printk
ldr r3, [sp, #12]
uxth r2, r3
ldr r3, [sp]
mov r3, r3, asl #16
orr r3, r2, r3
str r3, [sp, #12]
ldr r0, [sp, #12]
mov r1, #128
bl set_flash_register
.L44:
add sp, sp, #16
@ sp needed
ldmfd sp!, {r4, pc}
.fnend
.size set_flash_register_temperature_offset, .-set_flash_register_temperature_offset
.section .rodata.str1.4
.align 2
.LC21:
.ascii "T0/T1 delay = 0x%x\012\000"
.text
.align 2
.global set_flash_register_T0T1delay
.type set_flash_register_T0T1delay, %function
set_flash_register_T0T1delay:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #23
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
mov r0, r3
mov r1, #152
bl set_flash_register
ldrb r3, [sp, #23] @ zero_extendqisi2
movw r0, #:lower16:.LC21
movt r0, #:upper16:.LC21
mov r1, r3
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size set_flash_register_T0T1delay, .-set_flash_register_T0T1delay
.section .rodata.str1.4
.align 2
.LC22:
.ascii "T0C = 0x%x\012T1C = 0x%x\012\000"
.text
.align 2
.global set_flash_register_T0CT1C
.type set_flash_register_T0CT1C, %function
set_flash_register_T0CT1C:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #21] @ zero_extendqisi2
and r3, r3, #127
uxtb r3, r3
strb r3, [sp, #21]
ldrb r3, [sp, #22] @ zero_extendqisi2
and r3, r3, #127
uxtb r3, r3
strb r3, [sp, #22]
ldrb r3, [sp, #21] @ zero_extendqisi2
mov r3, r3, asl #16
ldrb r2, [sp, #22] @ zero_extendqisi2
orr r3, r3, r2
mov r0, r3
mov r1, #156
bl set_flash_register
ldrb r3, [sp, #22] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #21] @ zero_extendqisi2
movw r0, #:lower16:.LC22
movt r0, #:upper16:.LC22
mov r1, r2
mov r2, r3
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size set_flash_register_T0CT1C, .-set_flash_register_T0CT1C
.align 2
.global set_flash_register_Tx_data
.type set_flash_register_Tx_data, %function
set_flash_register_Tx_data:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
bl set_flash_register_BiasModCurrent
bl set_flash_register_P0P1
bl set_flash_register_TIAGAIN
bl set_flash_register_T0T1delay
bl set_flash_register_T0CT1C
ldmfd sp!, {r3, pc}
.fnend
.size set_flash_register_Tx_data, .-set_flash_register_Tx_data
.section .rodata.str1.4
.align 2
.LC23:
.ascii "--> write flash_matrix success \012\000"
.align 2
.LC24:
.ascii "--> Error write \012\000"
.text
.align 2
.global save_flash_matrix
.type save_flash_matrix, %function
save_flash_matrix:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #60
sub sp, sp, #60
mov r3, #0
str r3, [sp, #52]
mov r3, #0
str r3, [sp, #48]
movw r3, #:lower16:.LC2
movt r3, #:upper16:.LC2
str r3, [sp, #48]
mov r3, sp
bic r3, r3, #16320
bic r3, r3, #63
ldr r3, [r3, #8]
str r3, [sp, #44]
mov r3, #0
str r3, [sp, #40]
mov r3, sp
bic r3, r3, #16320
bic r3, r3, #63
mov r2, r3
ldr r3, [sp, #40]
str r3, [r2, #8]
mov r3, #0
str r3, [sp, #36]
mov r3, #1
str r3, [sp, #32]
ldr r3, [sp, #48]
cmp r3, #0
beq .L55
ldr r3, [sp, #48]
ldrb r3, [r3] @ zero_extendqisi2
cmp r3, #0
beq .L55
ldr r0, [sp, #48]
mov r1, #66
mov r2, #0
bl filp_open
str r0, [sp, #52]
ldr r3, [sp, #52]
str r3, [sp, #28]
ldr r3, [sp, #28]
cmn r3, #4096
movhi r3, #1
movls r3, #0
uxtb r3, r3
cmp r3, #0
movne r3, #1
moveq r3, #0
uxtb r3, r3
cmp r3, #0
beq .L57
movw r0, #:lower16:.LC3
movt r0, #:upper16:.LC3
bl printk
b .L58
.L57:
ldr r1, [sp, #52]
mov r2, #0
mov r3, #0
strd r2, [r1, #64]
ldr r3, [sp, #52]
add r3, r3, #64
ldr r0, [sp, #52]
movw r1, #:lower16:flash_matrix
movt r1, #:upper16:flash_matrix
mov r2, #400
bl ecnt_kernel_fs_write
mov r3, r0
cmp r3, #0
ble .L59
movw r0, #:lower16:.LC23
movt r0, #:upper16:.LC23
bl printk
ldr r0, [sp, #52]
mov r1, #0
bl filp_close
b .L55
.L59:
movw r0, #:lower16:.LC24
movt r0, #:upper16:.LC24
bl printk
ldr r0, [sp, #52]
mov r1, #0
bl filp_close
b .L58
.L55:
ldr r3, [sp, #44]
str r3, [sp, #24]
mov r3, sp
bic r3, r3, #16320
bic r3, r3, #63
mov r2, r3
ldr r3, [sp, #24]
str r3, [r2, #8]
mov r3, #0
str r3, [sp, #20]
mov r3, #1
str r3, [sp, #16]
mov r3, #0
b .L62
.L58:
ldr r3, [sp, #44]
str r3, [sp, #12]
mov r3, sp
bic r3, r3, #16320
bic r3, r3, #63
mov r2, r3
ldr r3, [sp, #12]
str r3, [r2, #8]
mov r3, #0
str r3, [sp, #8]
mov r3, #1
str r3, [sp, #4]
mvn r3, #0
.L62:
mov r0, r3
add sp, sp, #60
@ sp needed
ldr pc, [sp], #4
.fnend
.size save_flash_matrix, .-save_flash_matrix
.section .rodata.str1.4
.align 2
.LC25:
.ascii "FLASH address 0x%x\000"
.align 2
.LC26:
.ascii "\011\000"
.text
.align 2
.global flash_dump
.type flash_dump, %function
flash_dump:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #12
sub sp, sp, #12
mov r3, #0
str r3, [sp, #4]
mov r3, #0
str r3, [sp]
mov r3, #0
str r3, [sp, #4]
b .L65
.L66:
ldr r3, [sp, #4]
mov r3, r3, asl #2
str r3, [sp]
movw r0, #:lower16:.LC25
movt r0, #:upper16:.LC25
ldr r1, [sp]
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
ldr r0, [sp]
bl get_flash_register
mov r3, r0
movw r0, #:lower16:.LC13
movt r0, #:upper16:.LC13
mov r1, r3
bl printk
ldr r3, [sp, #4]
add r3, r3, #1
str r3, [sp, #4]
.L65:
ldr r3, [sp, #4]
cmp r3, #39
ble .L66
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size flash_dump, .-flash_dump
.section .rodata.str1.4
.align 2
.LC27:
.ascii "FLASH\000"
.align 2
.LC28:
.ascii "temperature\000"
.align 2
.LC29:
.ascii "Value\012\000"
.align 2
.LC30:
.ascii "0x%x\000"
.align 2
.LC31:
.ascii "%d\000"
.text
.align 2
.global DOL_flash_dump
.type DOL_flash_dump, %function
DOL_flash_dump:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #12
sub sp, sp, #12
mov r3, #0
str r3, [sp, #4]
mov r3, #0
str r3, [sp]
movw r0, #:lower16:.LC27
movt r0, #:upper16:.LC27
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
movw r0, #:lower16:.LC28
movt r0, #:upper16:.LC28
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
movw r0, #:lower16:.LC29
movt r0, #:upper16:.LC29
bl printk
mov r3, #0
str r3, [sp, #4]
b .L68
.L69:
ldr r3, [sp, #4]
add r3, r3, #40
mov r3, r3, asl #2
str r3, [sp]
movw r0, #:lower16:.LC30
movt r0, #:upper16:.LC30
ldr r1, [sp]
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
ldr r2, [sp, #4]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
sub r3, r3, #40
movw r0, #:lower16:.LC31
movt r0, #:upper16:.LC31
mov r1, r3
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
ldr r0, [sp]
bl get_flash_register
mov r3, r0
movw r0, #:lower16:.LC13
movt r0, #:upper16:.LC13
mov r1, r3
bl printk
ldr r3, [sp, #4]
add r3, r3, #1
str r3, [sp, #4]
.L68:
ldr r3, [sp, #4]
cmp r3, #15
ble .L69
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size DOL_flash_dump, .-DOL_flash_dump
.section .rodata.str1.4
.align 2
.LC32:
.ascii "GPON_Tx_calibration done\012\000"
.text
.align 2
.global GPON_Tx_calibration
.type GPON_Tx_calibration, %function
GPON_Tx_calibration:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
bl mt7570_ERC_filter
bl mt7570_load_init_current
mov r0, #1
mov r1, #1
bl phy_mode_config
mov r0, #1
bl mt7570_TGEN
mov r0, #1
bl mt7570_calibration_pattern
bl mt7570_safe_circuit_reset
mov r0, #1
bl phy_trans_power_switch
movw r0, #:lower16:.LC32
movt r0, #:upper16:.LC32
bl printk
ldmfd sp!, {r3, pc}
.fnend
.size GPON_Tx_calibration, .-GPON_Tx_calibration
.section .rodata.str1.4
.align 2
.LC33:
.ascii "EPON_Tx_calibration done\012\000"
.text
.align 2
.global EPON_Tx_calibration
.type EPON_Tx_calibration, %function
EPON_Tx_calibration:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
bl mt7570_ERC_filter
bl mt7570_load_init_current
mov r0, #0
mov r1, #1
bl phy_mode_config
mov r0, #0
bl mt7570_TGEN
mov r0, #0
bl mt7570_calibration_pattern
bl mt7570_safe_circuit_reset
movw r0, #:lower16:.LC33
movt r0, #:upper16:.LC33
bl printk
ldmfd sp!, {r3, pc}
.fnend
.size EPON_Tx_calibration, .-EPON_Tx_calibration
.section .rodata.str1.4
.align 2
.LC34:
.ascii "ECNT_HOOK_ERROR occur with event id:%d. %s:%d\012\000"
.align 2
.LC35:
.ascii "Pattern Aligned\012\000"
.align 2
.LC36:
.ascii "Aligned Failed\012\000"
.align 2
.LC37:
.ascii "%x\012\000"
.text
.align 2
.global GPON_BER
.type GPON_BER, %function
GPON_BER:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #60
sub sp, sp, #60
str r0, [sp, #4]
mov r3, #0
str r3, [sp, #40]
mov r0, #1
bl mt7570_CDR
movw r3, #259
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #32]
add r3, sp, #12
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
ldr r3, [sp, #36]
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #12]
add r3, sp, #28
str r3, [sp, #16]
add r3, sp, #12
mov r0, #25
mov r1, #0
mov r2, r3
bl __ECNT_HOOK
mov r3, r0
cmn r3, #1
bne .L73
movw r0, #:lower16:.LC34
movt r0, #:upper16:.LC34
ldr r1, [sp, #36]
movw r2, #:lower16:__FUNCTION__.41326
movt r2, #:upper16:__FUNCTION__.41326
mov r3, #125
bl panic
.L73:
mov r3, #100
str r3, [sp, #52]
b .L74
.L75:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L74:
ldr r3, [sp, #52]
sub r2, r3, #1
str r2, [sp, #52]
cmp r3, #0
bne .L75
mov r0, #1
mov r1, #1
bl phy_mode_config
mov r3, #100
str r3, [sp, #48]
b .L76
.L77:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L76:
ldr r3, [sp, #48]
sub r2, r3, #1
str r2, [sp, #48]
cmp r3, #0
bne .L77
mov r0, #1184
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
ldr r3, [sp, #4]
cmp r3, #6
beq .L79
cmp r3, #7
beq .L80
cmp r3, #5
beq .L81
b .L82
.L81:
mov r0, #672
movt r0, 49071
movw r1, #64851
movt r1, 129
bl set_pon_phy_data
mov r0, #676
movt r0, 49071
mvn r1, #-16777216
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
mov r1, #5
bl set_pon_phy_data
movw r0, #1188
movt r0, 49071
mov r1, #1
bl set_pon_phy_data
b .L82
.L79:
mov r0, #672
movt r0, 49071
movw r1, #64851
movt r1, 113
bl set_pon_phy_data
mov r0, #676
movt r0, 49071
movw r1, #65535
movt r1, 127
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
mov r1, #6
bl set_pon_phy_data
movw r0, #1188
movt r0, 49071
mov r1, #1
bl set_pon_phy_data
b .L82
.L80:
mov r0, #672
movt r0, 49071
movw r1, #64851
movt r1, 4081
bl set_pon_phy_data
mov r0, #676
movt r0, 49071
mvn r1, #-134217728
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
mov r1, #7
bl set_pon_phy_data
movw r0, #1188
movt r0, 49071
mov r1, #1
bl set_pon_phy_data
mov r0, r0 @ nop
.L82:
mov r3, #250
str r3, [sp, #44]
b .L83
.L84:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L83:
ldr r3, [sp, #44]
sub r2, r3, #1
str r2, [sp, #44]
cmp r3, #0
bne .L84
mov r0, #708
movt r0, 49071
bl get_pon_phy_data
str r0, [sp, #40]
ldr r3, [sp, #40]
cmp r3, #5
bne .L85
movw r0, #:lower16:.LC35
movt r0, #:upper16:.LC35
bl printk
b .L86
.L85:
movw r0, #:lower16:.LC36
movt r0, #:upper16:.LC36
bl printk
.L86:
movw r0, #:lower16:.LC37
movt r0, #:upper16:.LC37
ldr r1, [sp, #40]
bl printk
ldr r3, [sp, #40]
mov r0, r3
add sp, sp, #60
@ sp needed
ldr pc, [sp], #4
.fnend
.size GPON_BER, .-GPON_BER
.align 2
.global EPON_BER
.type EPON_BER, %function
EPON_BER:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #60
sub sp, sp, #60
str r0, [sp, #4]
mov r3, #0
str r3, [sp, #40]
mov r0, #1
bl mt7570_CDR
movw r3, #259
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #32]
add r3, sp, #12
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
ldr r3, [sp, #36]
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #12]
add r3, sp, #28
str r3, [sp, #16]
add r3, sp, #12
mov r0, #25
mov r1, #0
mov r2, r3
bl __ECNT_HOOK
mov r3, r0
cmn r3, #1
bne .L89
movw r0, #:lower16:.LC34
movt r0, #:upper16:.LC34
ldr r1, [sp, #36]
movw r2, #:lower16:__FUNCTION__.41326
movt r2, #:upper16:__FUNCTION__.41326
mov r3, #125
bl panic
.L89:
mov r3, #100
str r3, [sp, #52]
b .L90
.L91:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L90:
ldr r3, [sp, #52]
sub r2, r3, #1
str r2, [sp, #52]
cmp r3, #0
bne .L91
mov r0, #0
mov r1, #1
bl phy_mode_config
mov r3, #100
str r3, [sp, #48]
b .L92
.L93:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L92:
ldr r3, [sp, #48]
sub r2, r3, #1
str r2, [sp, #48]
cmp r3, #0
bne .L93
mov r0, #1184
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
ldr r3, [sp, #4]
cmp r3, #6
beq .L95
cmp r3, #7
beq .L96
cmp r3, #5
beq .L97
b .L98
.L97:
mov r0, #672
movt r0, 49071
movw r1, #64851
movt r1, 129
bl set_pon_phy_data
mov r0, #676
movt r0, 49071
mvn r1, #-16777216
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
mov r1, #5
bl set_pon_phy_data
movw r0, #1188
movt r0, 49071
mov r1, #1
bl set_pon_phy_data
b .L98
.L95:
mov r0, #672
movt r0, 49071
movw r1, #64851
movt r1, 113
bl set_pon_phy_data
mov r0, #676
movt r0, 49071
movw r1, #65535
movt r1, 127
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
mov r1, #6
bl set_pon_phy_data
movw r0, #1188
movt r0, 49071
mov r1, #1
bl set_pon_phy_data
b .L98
.L96:
mov r0, #672
movt r0, 49071
movw r1, #64851
movt r1, 4081
bl set_pon_phy_data
mov r0, #676
movt r0, 49071
mvn r1, #-134217728
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
mov r1, #7
bl set_pon_phy_data
movw r0, #1188
movt r0, 49071
mov r1, #1
bl set_pon_phy_data
mov r0, r0 @ nop
.L98:
mov r3, #250
str r3, [sp, #44]
b .L99
.L100:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L99:
ldr r3, [sp, #44]
sub r2, r3, #1
str r2, [sp, #44]
cmp r3, #0
bne .L100
mov r0, #708
movt r0, 49071
bl get_pon_phy_data
str r0, [sp, #40]
ldr r3, [sp, #40]
cmp r3, #5
bne .L101
movw r0, #:lower16:.LC35
movt r0, #:upper16:.LC35
bl printk
b .L102
.L101:
movw r0, #:lower16:.LC36
movt r0, #:upper16:.LC36
bl printk
.L102:
ldr r3, [sp, #40]
mov r0, r3
add sp, sp, #60
@ sp needed
ldr pc, [sp], #4
.fnend
.size EPON_BER, .-EPON_BER
.section .rodata.str1.4
.align 2
.LC38:
.ascii "[%lu0ms][%s:%d] ERC restarted\012\000"
.align 2
.LC39:
.ascii "/home/work/XX530vUS1/sdk/en7529/modules/private/xpo"
.ascii "n_phy/src/mt7570.c\000"
.text
.align 2
.global mt7570_restart_ERC
.type mt7570_restart_ERC, %function
mt7570_restart_ERC:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
bic r3, r3, #1
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
bic r3, r3, #1
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L104
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC38
movt r0, #:upper16:.LC38
mov r1, r3
ldr r2, .L106
mov r3, #980
bl printk
.L104:
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.L107:
.align 2
.L106:
.word .LC39+61
.fnend
.size mt7570_restart_ERC, .-mt7570_restart_ERC
.section .rodata.str1.4
.align 2
.LC40:
.ascii "PRBS23 enabled\012\000"
.align 2
.LC41:
.ascii "8B/10B pattern enabled\012\000"
.text
.align 2
.global mt7570_calibration_pattern
.type mt7570_calibration_pattern, %function
mt7570_calibration_pattern:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #44
sub sp, sp, #44
str r0, [sp, #4]
movw r3, #259
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #32]
add r3, sp, #12
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
ldr r3, [sp, #36]
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #12]
add r3, sp, #28
str r3, [sp, #16]
add r3, sp, #12
mov r0, #25
mov r1, #0
mov r2, r3
bl __ECNT_HOOK
mov r3, r0
cmn r3, #1
bne .L109
movw r0, #:lower16:.LC34
movt r0, #:upper16:.LC34
ldr r1, [sp, #36]
movw r2, #:lower16:__FUNCTION__.41326
movt r2, #:upper16:__FUNCTION__.41326
mov r3, #125
bl panic
.L109:
mov r0, #0
bl mt7570_CDR
ldr r3, [sp, #4]
cmp r3, #1
bne .L110
mov r0, #1
bl phy_ben_switch
mov r0, #6
bl phy_tx_test_pattern
mov r0, #1
mov r1, #1
bl phy_mode_config
movw r0, #:lower16:.LC40
movt r0, #:upper16:.LC40
bl printk
b .L111
.L110:
ldr r3, [sp, #4]
cmp r3, #0
bne .L111
mov r0, #1
bl phy_ben_switch
mov r0, #11
bl phy_tx_test_pattern
mov r0, #0
mov r1, #1
bl phy_mode_config
movw r0, #:lower16:.LC41
movt r0, #:upper16:.LC41
bl printk
.L111:
movw r3, #:lower16:PatternEnabled
movt r3, #:upper16:PatternEnabled
mov r2, #1
str r2, [r3]
add sp, sp, #44
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_calibration_pattern, .-mt7570_calibration_pattern
.section .rodata.str1.4
.align 2
.LC42:
.ascii "Pattern disabled\012\000"
.text
.align 2
.global mt7570_disable_pattern
.type mt7570_disable_pattern, %function
mt7570_disable_pattern:
.fnstart
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #36
sub sp, sp, #36
mov r0, #0
bl phy_ben_switch
mov r0, #0
bl phy_tx_test_pattern
mov r0, #12
bl phy_tx_test_pattern
mov r0, #1
bl mt7570_CDR
mov r3, #260
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #20]
mov r3, #0
str r3, [sp, #24]
add r3, sp, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
mov r2, #0
str r2, [r3]
add r3, r3, #4
ldr r3, [sp, #28]
str r3, [sp, #24]
mov r3, #0
str r3, [sp, #4]
add r3, sp, #20
str r3, [sp, #8]
add r3, sp, #4
mov r0, #25
mov r1, #0
mov r2, r3
bl __ECNT_HOOK
mov r3, r0
cmn r3, #1
bne .L113
movw r0, #:lower16:.LC34
movt r0, #:upper16:.LC34
ldr r1, [sp, #28]
movw r2, #:lower16:__FUNCTION__.41326
movt r2, #:upper16:__FUNCTION__.41326
mov r3, #125
bl panic
.L113:
movw r0, #:lower16:.LC42
movt r0, #:upper16:.LC42
bl printk
movw r3, #:lower16:PatternEnabled
movt r3, #:upper16:PatternEnabled
mov r2, #0
str r2, [r3]
add sp, sp, #36
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_disable_pattern, .-mt7570_disable_pattern
.section .rodata.str1.4
.align 2
.LC43:
.ascii "CDR disabled\012\000"
.align 2
.LC44:
.ascii "read data %x\012\000"
.align 2
.LC45:
.ascii "write data %x\012\000"
.align 2
.LC46:
.ascii "CDR enabled\012\000"
.text
.align 2
.global mt7570_CDR
.type mt7570_CDR, %function
mt7570_CDR:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #20
sub sp, sp, #20
str r0, [sp, #4]
mov r3, #0
str r3, [sp, #12]
ldr r3, [sp, #4]
cmp r3, #0
bne .L115
movw r0, #17952
movt r0, 8111
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #1048576
movw r0, #17952
movt r0, 8111
mov r1, r3
bl set_pon_phy_data
movw r0, #17940
movt r0, 8111
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #67108864
movw r0, #17940
movt r0, 8111
mov r1, r3
bl set_pon_phy_data
movw r0, #:lower16:.LC43
movt r0, #:upper16:.LC43
bl printk
b .L114
.L115:
ldr r3, [sp, #4]
cmp r3, #1
bne .L114
movw r0, #17940
movt r0, 8111
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
movw r0, #:lower16:.LC44
movt r0, #:upper16:.LC44
ldr r1, [sp, #12]
bl printk
ldr r3, [sp, #12]
bic r3, r3, #67108864
movw r0, #:lower16:.LC45
movt r0, #:upper16:.LC45
mov r1, r3
bl printk
ldr r3, [sp, #12]
bic r3, r3, #67108864
movw r0, #17940
movt r0, 8111
mov r1, r3
bl set_pon_phy_data
movw r0, #:lower16:.LC46
movt r0, #:upper16:.LC46
bl printk
.L114:
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_CDR, .-mt7570_CDR
.section .rodata.str1.4
.align 2
.LC47:
.ascii "%s\000"
.align 2
.LC48:
.ascii "i2c_access_queue\000"
.align 2
.LC49:
.ascii "FLASH matrix got\012\000"
.align 2
.LC50:
.ascii "Start GPON Tx Calibration\012\000"
.align 2
.LC51:
.ascii "APD update period is too short, reset to 10s\012\000"
.align 2
.LC52:
.ascii "Start EPON Tx Calibration\012\000"
.align 2
.LC53:
.ascii "Internal DDMI Disabled\012\000"
.align 2
.LC54:
.ascii "Internal DDMI Enabled\012\000"
.align 2
.LC55:
.ascii "TEC Disabled\012\000"
.align 2
.LC56:
.ascii "TEC Enabled, BOSA's Ith = %duA\012\000"
.align 2
.LC57:
.ascii "TEC Enabled\012\000"
.align 2
.LC58:
.ascii "ETC = 1\012\000"
.align 2
.LC59:
.ascii "ETC = 2\012\000"
.align 2
.LC60:
.ascii "ETC = 3\012\000"
.align 2
.LC61:
.ascii "BiasTracking Enabled\012\000"
.align 2
.LC62:
.ascii "ETC Disabled\012\000"
.align 2
.LC63:
.ascii "EN7570 Initialization Done!\012\000"
.text
.align 2
.global mt7570_init
.type mt7570_init, %function
mt7570_init:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
mov r3, #0
str r3, [sp, #20]
mov r3, #0
str r3, [sp]
movw r3, #:lower16:.LC48
movt r3, #:upper16:.LC48
str r3, [sp, #4]
movw r0, #:lower16:.LC47
movt r0, #:upper16:.LC47
mov r1, #8
mov r2, #1
mov r3, #0
bl __alloc_workqueue_key
mov r2, r0
movw r3, #:lower16:i2c_access_queue
movt r3, #:upper16:i2c_access_queue
str r2, [r3]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
add r3, r3, #176
str r3, [sp, #16]
mov r3, #0
str r3, [sp, #12]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
mvn r2, #31
str r2, [r3, #176]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
add r3, r3, #180
str r3, [sp, #8]
ldr r3, [sp, #8]
ldr r2, [sp, #8]
str r2, [r3]
ldr r3, [sp, #8]
ldr r2, [sp, #8]
str r2, [r3, #4]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r2, [r3]
movw r3, #:lower16:mt7570_safe_circuit_reset_for_work_queue
movt r3, #:upper16:mt7570_safe_circuit_reset_for_work_queue
str r3, [r2, #188]
bl get_flash_matrix
mov r3, r0
cmp r3, #0
bne .L118
movw r0, #:lower16:.LC49
movt r0, #:upper16:.LC49
bl printk
b .L119
.L118:
bl set_flash_register_default
.L119:
bl mt7570_sw_reset
bl mt7570_TIAGAIN_set
bl mt7570_ERC_filter
bl mt7570_MPD_current_calibration
bl mt7570_ADC_calibration
bl mt7570_RSSI_calibration
mov r0, #148
bl get_flash_register
mov r3, r0
str r3, [sp, #20]
ldr r2, [sp, #20]
mov r3, #1792
movt r3, 1797
cmp r2, r3
bne .L120
movw r0, #:lower16:.LC50
movt r0, #:upper16:.LC50
bl printk
mov r0, #1
mov r1, #1
bl phy_mode_config
movw r3, #:lower16:xPON_mode
movt r3, #:upper16:xPON_mode
mov r2, #1
str r2, [r3]
bl mt7570_RSSI_gain_init
bl mt7570_LOS_level_set
mov r0, #312
movt r0, 49071
movw r1, #271
bl set_pon_phy_data
mov r0, #1
bl mt7570_TGEN
bl mt7570_load_init_current
bl mt7570_load_MPDL_MPDH
bl mt7570_TxSD_level_set
bl mt7570_APD_initialization
mov r0, #28
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L121
mov r0, #28
bl get_flash_register
mov r3, r0
mov r2, r3
movw r3, #:lower16:T_APD
movt r3, #:upper16:T_APD
str r2, [r3]
movw r3, #:lower16:T_APD
movt r3, #:upper16:T_APD
ldr r3, [r3]
cmp r3, #9
bhi .L121
movw r0, #:lower16:.LC51
movt r0, #:upper16:.LC51
bl printk
movw r3, #:lower16:T_APD
movt r3, #:upper16:T_APD
mov r2, #10
str r2, [r3]
.L121:
bl mt7570_APD_control
b .L122
.L120:
ldr r2, [sp, #20]
mov r3, #1792
movt r3, 59141
cmp r2, r3
bne .L123
movw r0, #:lower16:.LC52
movt r0, #:upper16:.LC52
bl printk
mov r0, #0
mov r1, #1
bl phy_mode_config
movw r3, #:lower16:xPON_mode
movt r3, #:upper16:xPON_mode
mov r2, #0
str r2, [r3]
bl mt7570_RSSI_gain_init
bl mt7570_LOS_level_set
mov r0, #312
movt r0, 49071
movw r1, #271
bl set_pon_phy_data
mov r0, #0
bl mt7570_TGEN
bl mt7570_load_init_current
bl mt7570_load_MPDL_MPDH
bl mt7570_TxSD_level_set
b .L122
.L123:
movw r3, #:lower16:internal_DDMI
movt r3, #:upper16:internal_DDMI
mov r2, #0
str r2, [r3]
movw r0, #:lower16:.LC53
movt r0, #:upper16:.LC53
bl printk
mov r3, #0
b .L124
.L122:
mov r0, #112
bl get_flash_register
mov r3, r0
cmp r3, #-2147483648
bne .L125
movw r3, #:lower16:SCL
movt r3, #:upper16:SCL
mov r2, #1
str r2, [r3]
bl mt7570_SingleClosedLoopMode
b .L126
.L125:
mov r0, #112
bl get_flash_register
mov r3, r0
cmp r3, #-1073741824
bne .L126
movw r3, #:lower16:DOL
movt r3, #:upper16:DOL
mov r2, #1
str r2, [r3]
bl mt7570_LUT_recover
bl mt7570_OpenLoopMode
.L126:
bl mt7570_RougeONU_clear
bl mt7570_safe_circuit_reset
mov r0, #44
bl get_flash_register
mov r3, r0
cmp r3, #0
bne .L127
movw r3, #:lower16:internal_DDMI
movt r3, #:upper16:internal_DDMI
mov r2, #0
str r2, [r3]
movw r0, #:lower16:.LC53
movt r0, #:upper16:.LC53
bl printk
b .L128
.L127:
movw r0, #:lower16:.LC54
movt r0, #:upper16:.LC54
bl printk
mov r0, #44
bl get_flash_register
mov r3, r0
cmp r3, #2
bne .L128
movw r3, #:lower16:fast_DDMI
movt r3, #:upper16:fast_DDMI
mov r2, #1
str r2, [r3]
.L128:
mov r0, #140
bl get_flash_register
mov r3, r0
cmp r3, #0
bne .L129
movw r3, #:lower16:TEC
movt r3, #:upper16:TEC
mov r2, #0
str r2, [r3]
movw r0, #:lower16:.LC55
movt r0, #:upper16:.LC55
bl printk
b .L130
.L129:
mov r0, #140
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L131
mov r0, #140
bl get_flash_register
mov r3, r0
mov r2, r3
movw r3, #:lower16:BOSA_Ith
movt r3, #:upper16:BOSA_Ith
str r2, [r3]
movw r3, #:lower16:BOSA_Ith
movt r3, #:upper16:BOSA_Ith
ldr r3, [r3]
movw r0, #:lower16:.LC56
movt r0, #:upper16:.LC56
mov r1, r3
bl printk
b .L130
.L131:
movw r0, #:lower16:.LC57
movt r0, #:upper16:.LC57
bl printk
.L130:
mov r0, #124
bl get_flash_register
mov r3, r0
cmp r3, #1
bne .L132
movw r3, #:lower16:ETC
movt r3, #:upper16:ETC
mov r2, #1
str r2, [r3]
movw r0, #:lower16:.LC58
movt r0, #:upper16:.LC58
bl printk
b .L133
.L132:
mov r0, #124
bl get_flash_register
mov r3, r0
cmp r3, #2
bne .L134
movw r3, #:lower16:ETC
movt r3, #:upper16:ETC
mov r2, #2
str r2, [r3]
movw r0, #:lower16:.LC59
movt r0, #:upper16:.LC59
bl printk
b .L133
.L134:
mov r0, #124
bl get_flash_register
mov r3, r0
cmp r3, #3
bne .L135
movw r3, #:lower16:ETC
movt r3, #:upper16:ETC
mov r2, #3
str r2, [r3]
bl mt7570_LUT_recover
bl mt7570_temperature_get
bl mt7570_BiasTracking
movw r0, #:lower16:.LC60
movt r0, #:upper16:.LC60
bl printk
movw r0, #:lower16:.LC61
movt r0, #:upper16:.LC61
bl printk
b .L133
.L135:
movw r0, #:lower16:.LC62
movt r0, #:upper16:.LC62
bl printk
.L133:
movw r0, #:lower16:.LC63
movt r0, #:upper16:.LC63
bl printk
mov r3, #0
.L124:
mov r0, r3
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_init, .-mt7570_init
.align 2
.global mt7570_sw_reset
.type mt7570_sw_reset, %function
mt7570_sw_reset:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #768
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #7
uxtb r3, r3
orr r3, r3, #1
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #768
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_sw_reset, .-mt7570_sw_reset
.align 2
.global mt7570_RSSI_gain_init
.type mt7570_RSSI_gain_init, %function
mt7570_RSSI_gain_init:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #7
uxtb r3, r3
orr r3, r3, #5
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_RSSI_gain_init, .-mt7570_RSSI_gain_init
.section .rodata.str1.4
.align 2
.LC64:
.ascii "T0/T1 delay = 0x%02x\012\000"
.align 2
.LC65:
.ascii "T0/T1 delay = 0x9a\012\000"
.align 2
.LC66:
.ascii "T0/T1 delay = 0x47\012\000"
.align 2
.LC67:
.ascii "RGS_T0C = 0x%x\012RGS_T1C = 0x%x\012\000"
.align 2
.LC68:
.ascii "TGEN done\012\000"
.text
.align 2
.global mt7570_TGEN
.type mt7570_TGEN, %function
mt7570_TGEN:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #68
sub sp, sp, #68
str r0, [sp, #20]
mov r3, #0
str r3, [sp, #60]
mov r3, #0
str r3, [sp, #56]
mov r3, #0
str r3, [sp, #52]
mov r0, #0
bl mt7570_CDR
mov r0, #1
bl phy_ben_switch
mov r0, #6
bl phy_tx_test_pattern
mov r3, #10
str r3, [sp, #48]
b .L139
.L140:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L139:
ldr r3, [sp, #48]
sub r2, r3, #1
str r2, [sp, #48]
cmp r3, #0
bne .L140
mov r3, #0
str r3, [sp, #52]
b .L141
.L144:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #27] @ zero_extendqisi2
bic r3, r3, #8
uxtb r3, r3
strb r3, [sp, #27]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #18140
movt r0, 3
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
mov r3, #102
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #18140
movt r0, 3
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
mov r3, #127
strb r3, [sp, #25]
mov r3, #127
strb r3, [sp, #26]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #18140
movt r0, 3
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #27] @ zero_extendqisi2
orr r3, r3, #32
uxtb r3, r3
strb r3, [sp, #27]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #18140
movt r0, 3
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #27] @ zero_extendqisi2
bic r3, r3, #32
uxtb r3, r3
strb r3, [sp, #27]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #18140
movt r0, 3
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #27] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #27]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #18140
movt r0, 3
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #27] @ zero_extendqisi2
bic r3, r3, #1
uxtb r3, r3
strb r3, [sp, #27]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #16
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
mov r2, r3
ldr r3, [sp, #60]
cmp r2, r3
bls .L142
ldrb r3, [sp, #24] @ zero_extendqisi2
str r3, [sp, #60]
.L142:
ldrb r3, [sp, #25] @ zero_extendqisi2
mov r2, r3
ldr r3, [sp, #56]
cmp r2, r3
bls .L143
ldrb r3, [sp, #25] @ zero_extendqisi2
str r3, [sp, #56]
.L143:
ldr r3, [sp, #52]
add r3, r3, #1
str r3, [sp, #52]
.L141:
ldr r3, [sp, #52]
cmp r3, #31
ble .L144
mov r3, #10
str r3, [sp, #44]
b .L145
.L146:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L145:
ldr r3, [sp, #44]
sub r2, r3, #1
str r2, [sp, #44]
cmp r3, #0
bne .L146
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
mov r0, #152
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L147
mov r0, #152
bl get_flash_register
mov r3, r0
uxtb r3, r3
strb r3, [sp, #24]
mov r0, #152
bl get_flash_register
mov r3, r0
uxtb r3, r3
movw r0, #:lower16:.LC64
movt r0, #:upper16:.LC64
mov r1, r3
bl printk
b .L148
.L147:
ldr r3, [sp, #20]
cmp r3, #1
bne .L149
mvn r3, #101
strb r3, [sp, #24]
movw r0, #:lower16:.LC65
movt r0, #:upper16:.LC65
bl printk
b .L148
.L149:
ldr r3, [sp, #20]
cmp r3, #0
bne .L148
mov r3, #71
strb r3, [sp, #24]
movw r0, #:lower16:.LC66
movt r0, #:upper16:.LC66
bl printk
.L148:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #10
str r3, [sp, #40]
b .L150
.L151:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L150:
ldr r3, [sp, #40]
sub r2, r3, #1
str r2, [sp, #40]
cmp r3, #0
bne .L151
mov r0, #156
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L152
mov r0, #156
bl get_flash_register
mov r3, r0
uxth r3, r3
str r3, [sp, #60]
mov r0, #156
bl get_flash_register
mov r3, r0
mov r3, r3, lsr #16
str r3, [sp, #56]
.L152:
movw r0, #:lower16:.LC67
movt r0, #:upper16:.LC67
ldr r1, [sp, #60]
ldr r2, [sp, #56]
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldr r3, [sp, #56]
uxtb r3, r3
strb r3, [sp, #25]
ldr r3, [sp, #60]
uxtb r3, r3
strb r3, [sp, #26]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #10
str r3, [sp, #36]
b .L153
.L154:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L153:
ldr r3, [sp, #36]
sub r2, r3, #1
str r2, [sp, #36]
cmp r3, #0
bne .L154
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #27] @ zero_extendqisi2
orr r3, r3, #32
uxtb r3, r3
strb r3, [sp, #27]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #10
str r3, [sp, #32]
b .L155
.L156:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L155:
ldr r3, [sp, #32]
sub r2, r3, #1
str r2, [sp, #32]
cmp r3, #0
bne .L156
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #27] @ zero_extendqisi2
bic r3, r3, #32
uxtb r3, r3
strb r3, [sp, #27]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #10
str r3, [sp, #28]
b .L157
.L158:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L157:
ldr r3, [sp, #28]
sub r2, r3, #1
str r2, [sp, #28]
cmp r3, #0
bne .L158
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #27] @ zero_extendqisi2
orr r3, r3, #8
uxtb r3, r3
strb r3, [sp, #27]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #8
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r0, #1
bl mt7570_CDR
mov r0, #0
bl phy_ben_switch
mov r0, #0
bl phy_tx_test_pattern
movw r0, #:lower16:.LC68
movt r0, #:upper16:.LC68
bl printk
add sp, sp, #68
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_TGEN, .-mt7570_TGEN
.section .rodata.str1.4
.align 2
.LC69:
.ascii "Rx LOS is set\012\000"
.text
.align 2
.global mt7570_LOS_level_set
.type mt7570_LOS_level_set, %function
mt7570_LOS_level_set:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #24
sub sp, sp, #24
bl mt7570_LOS_init
mov r0, #32
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L160
mov r0, #36
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L160
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #127
uxtb r4, r3
mov r0, #36
bl get_flash_register
mov r3, r0
uxtb r3, r3
mov r2, r4
orr r3, r2, r3
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #23]
ldrb r3, [sp, #22] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #127
uxtb r4, r3
mov r0, #32
bl get_flash_register
mov r3, r0
uxtb r3, r3
mov r2, r4
orr r3, r2, r3
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
b .L161
.L160:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #127
uxtb r3, r3
orr r3, r3, #32
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #23]
ldrb r3, [sp, #22] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #127
uxtb r3, r3
orr r3, r3, #48
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
.L161:
movw r0, #:lower16:.LC69
movt r0, #:upper16:.LC69
bl printk
add sp, sp, #24
@ sp needed
ldmfd sp!, {r4, pc}
.fnend
.size mt7570_LOS_level_set, .-mt7570_LOS_level_set
.global __aeabi_ui2d
.global __aeabi_dmul
.global __aeabi_i2d
.section .rodata.str1.4
.align 2
.LC70:
.ascii "Tx SD set\012\000"
.align 2
.LC71:
.ascii "Tx SD error\012\000"
.text
.align 2
.global mt7570_TxSD_level_set
.type mt7570_TxSD_level_set, %function
mt7570_TxSD_level_set:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
.pad #44
sub sp, sp, #44
mov r3, #0
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #21] @ zero_extendqisi2
mov r3, r3, asl #8
ldrb r2, [sp, #20] @ zero_extendqisi2
orr r3, r3, r2
ubfx r3, r3, #0, #10
str r3, [sp, #28]
ldrb r3, [sp, #23] @ zero_extendqisi2
mov r3, r3, asl #8
ldrb r2, [sp, #22] @ zero_extendqisi2
orr r3, r3, r2
ubfx r3, r3, #0, #10
str r3, [sp, #24]
bl mt7570_TxSD_level_calibration
str r0, [sp, #36]
ldr r3, [sp, #36]
cmp r3, #0
blt .L163
ldr r3, [sp, #24]
mov r2, r3, lsr #2
ldr r3, [sp, #28]
add r3, r2, r3
mov r0, r3
bl __aeabi_ui2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #39322
movt r2, 39321
movw r3, #39321
movt r3, 16297
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r4, r2
mov r5, r3
ldr r0, [sp, #36]
bl __aeabi_i2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #43691
movt r2, 43690
movw r3, #43690
movt r3, 16386
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r4
mov r1, r5
bl __aeabi_dadd
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2uiz
mov r3, r0
str r3, [sp, #32]
ldr r3, [sp, #32]
uxtb r3, r3
strb r3, [sp, #20]
ldr r3, [sp, #32]
mov r3, r3, lsr #8
uxtb r3, r3
and r3, r3, #1
uxtb r3, r3
strb r3, [sp, #21]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #12
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC70
movt r0, #:upper16:.LC70
bl printk
b .L162
.L163:
movw r0, #:lower16:.LC71
movt r0, #:upper16:.LC71
bl printk
.L162:
add sp, sp, #44
@ sp needed
ldmfd sp!, {r4, r5, pc}
.fnend
.size mt7570_TxSD_level_set, .-mt7570_TxSD_level_set
.align 2
.global mt7570_TxSD_level_calibration
.type mt7570_TxSD_level_calibration, %function
mt7570_TxSD_level_calibration:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #36
sub sp, sp, #36
mov r3, #0
str r3, [sp, #24]
mov r3, #0
str r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #14
uxtb r3, r3
orr r3, r3, #8
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #38
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #38
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #30
uxtb r3, r3
orr r3, r3, #4
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #19] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
str r3, [sp, #24]
mov r3, #10
str r3, [sp, #28]
b .L166
.L167:
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
.L166:
ldr r3, [sp, #28]
sub r2, r3, #1
str r2, [sp, #28]
cmp r3, #0
bne .L167
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #14
uxtb r3, r3
orr r3, r3, #2
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #12
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
mov r3, #0
strb r3, [sp, #18]
ldrb r3, [sp, #19] @ zero_extendqisi2
bic r3, r3, #1
uxtb r3, r3
strb r3, [sp, #19]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #12
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:arm_delay_ops
movt r3, #:upper16:arm_delay_ops
ldr r3, [r3, #4]
movw r0, #26032
movt r0, 1638
blx r3
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #19] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
str r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #38
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
bic r3, r3, #16
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #38
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
bic r3, r3, #30
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #18] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #14
uxtb r3, r3
orr r3, r3, #8
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #18]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #18
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
ldr r2, [sp, #24]
ldr r3, [sp, #20]
rsb r3, r3, r2
mov r0, r3
add sp, sp, #36
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_TxSD_level_calibration, .-mt7570_TxSD_level_calibration
.section .rodata.str1.4
.align 2
.LC72:
.ascii "\015\012 atomic, [%s : %d]\015\012\000"
.align 2
.LC73:
.ascii "[%lu0ms][%s:%d] BG 1V76 = 0x%x\012BG 0V875 =0x%x\012"
.ascii "\000"
.align 2
.LC74:
.ascii "ADC calibration fail\012\000"
.global __aeabi_ddiv
.global __aeabi_d2f
.global __aeabi_dsub
.text
.align 2
.global mt7570_ADC_calibration
.type mt7570_ADC_calibration, %function
mt7570_ADC_calibration:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #76
sub sp, sp, #76
mov r3, #0
str r3, [sp, #60]
mov r3, #8
str r3, [sp, #56]
mov r3, #0
str r3, [sp, #68]
mov r3, #0
str r3, [sp, #64]
bl i2c_access_protect
mov r3, r0
cmn r3, #1
bne .L170
movw r0, #:lower16:.LC72
movt r0, #:upper16:.LC72
movw r1, #:lower16:__FUNCTION__.41999
movt r1, #:upper16:__FUNCTION__.41999
movw r2, #1725
bl printk
b .L169
.L170:
mov r3, #1
str r3, [sp, #24]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #52]
add r3, sp, #24
str r3, [sp, #48]
mov r3, #4
str r3, [sp, #44]
ldr r3, [sp, #44]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L172
.L174:
.word .L173
.word .L175
.word .L172
.word .L176
.word .L172
.word .L172
.word .L172
.word .L177
.L173:
ldr r3, [sp, #48]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #52]
strb r2, [r3]
b .L178
.L175:
ldr r3, [sp, #48]
ldrh r2, [r3]
ldr r3, [sp, #52]
strh r2, [r3] @ movhi
b .L178
.L176:
ldr r3, [sp, #48]
ldr r2, [r3]
ldr r3, [sp, #52]
str r2, [r3]
b .L178
.L177:
ldr r3, [sp, #48]
ldrd r2, [r3]
ldr r1, [sp, #52]
strd r2, [r1]
b .L178
.L172:
ldr r3, [sp, #44]
ldr r1, [sp, #52]
ldr r2, [sp, #48]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L178:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
str r3, [sp, #60]
ldrb r3, [sp, #30] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #30
uxtb r3, r3
orr r3, r3, #6
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #68]
b .L179
.L180:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #31] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
mov r2, r3
ldr r3, [sp, #64]
add r3, r3, r2
str r3, [sp, #64]
ldr r3, [sp, #68]
add r3, r3, #1
str r3, [sp, #68]
.L179:
ldr r2, [sp, #68]
ldr r3, [sp, #56]
cmp r2, r3
bcc .L180
ldr r3, [sp, #60]
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
ldr r3, [sp, #64]
mov r3, r3, lsr #2
add r3, r3, #1
mov r3, r3, lsr #1
mov r2, r3
movw r3, #:lower16:BG1V76
movt r3, #:upper16:BG1V76
str r2, [r3]
mov r3, #0
str r3, [sp, #64]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #37
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
str r3, [sp, #60]
ldrb r3, [sp, #30] @ zero_extendqisi2
orr r3, r3, #76
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #37
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #68]
b .L181
.L182:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #31] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
mov r2, r3
ldr r3, [sp, #64]
add r3, r3, r2
str r3, [sp, #64]
ldr r3, [sp, #68]
add r3, r3, #1
str r3, [sp, #68]
.L181:
ldr r2, [sp, #68]
ldr r3, [sp, #56]
cmp r2, r3
bcc .L182
ldr r3, [sp, #60]
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #37
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #20]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #40]
add r3, sp, #20
str r3, [sp, #36]
mov r3, #4
str r3, [sp, #32]
ldr r3, [sp, #32]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L183
.L185:
.word .L184
.word .L186
.word .L183
.word .L187
.word .L183
.word .L183
.word .L183
.word .L188
.L184:
ldr r3, [sp, #36]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #40]
strb r2, [r3]
b .L189
.L186:
ldr r3, [sp, #36]
ldrh r2, [r3]
ldr r3, [sp, #40]
strh r2, [r3] @ movhi
b .L189
.L187:
ldr r3, [sp, #36]
ldr r2, [r3]
ldr r3, [sp, #40]
str r2, [r3]
b .L189
.L188:
ldr r3, [sp, #36]
ldrd r2, [r3]
ldr r1, [sp, #40]
strd r2, [r1]
b .L189
.L183:
ldr r3, [sp, #32]
ldr r1, [sp, #40]
ldr r2, [sp, #36]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L189:
ldr r3, [sp, #64]
mov r3, r3, lsr #2
add r3, r3, #1
mov r3, r3, lsr #1
mov r2, r3
movw r3, #:lower16:BG0V875
movt r3, #:upper16:BG0V875
str r2, [r3]
mov r3, #0
str r3, [sp, #64]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L190
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r1, [r3]
movw r3, #:lower16:BG1V76
movt r3, #:upper16:BG1V76
ldr r2, [r3]
movw r3, #:lower16:BG0V875
movt r3, #:upper16:BG0V875
ldr r3, [r3]
str r2, [sp]
str r3, [sp, #4]
movw r0, #:lower16:.LC73
movt r0, #:upper16:.LC73
ldr r2, .L193
mov r3, #1776
bl printk
.L190:
movw r3, #:lower16:BG1V76
movt r3, #:upper16:BG1V76
ldr r2, [r3]
movw r3, #:lower16:BG0V875
movt r3, #:upper16:BG0V875
ldr r3, [r3]
rsb r3, r3, r2
cmp r3, #0
bgt .L191
movw r0, #:lower16:.LC74
movt r0, #:upper16:.LC74
bl printk
b .L169
.L191:
movw r3, #:lower16:BG1V76
movt r3, #:upper16:BG1V76
ldr r2, [r3]
movw r3, #:lower16:BG0V875
movt r3, #:upper16:BG0V875
ldr r3, [r3]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
movw r0, #47186
movt r0, 34078
movw r1, #20971
movt r1, 16364
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r2, r0
movw r3, #:lower16:ADC_slope
movt r3, #:upper16:ADC_slope
str r2, [r3] @ float
movw r3, #:lower16:BG1V76
movt r3, #:upper16:BG1V76
ldr r3, [r3]
mov r0, r3
bl __aeabi_i2f
mov r2, r0
movw r3, #:lower16:ADC_slope
movt r3, #:upper16:ADC_slope
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
movw r0, #23593
movt r0, 49807
movw r1, #10485
movt r1, 16380
bl __aeabi_dsub
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r2, r0
movw r3, #:lower16:ADC_offset
movt r3, #:upper16:ADC_offset
str r2, [r3] @ float
.L169:
add sp, sp, #76
@ sp needed
ldr pc, [sp], #4
.L194:
.align 2
.L193:
.word .LC39+61
.fnend
.size mt7570_ADC_calibration, .-mt7570_ADC_calibration
.section .rodata.str1.4
.align 2
.LC75:
.ascii "APD initialization done\012\000"
.text
.align 2
.global mt7570_APD_initialization
.type mt7570_APD_initialization, %function
mt7570_APD_initialization:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #48
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
orr r3, r3, #32
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #48
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #48
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #21] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #21]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #48
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC75
movt r0, #:upper16:.LC75
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_APD_initialization, .-mt7570_APD_initialization
.global __aeabi_fdiv
.global __aeabi_fcmple
.section .rodata.str1.4
.align 2
.LC76:
.ascii "APD slope error\012\000"
.global __aeabi_fcmpgt
.global __aeabi_fadd
.align 2
.LC77:
.ascii "[%lu0ms][%s:%d] BOSA temperature = %d.%dC\012\000"
.align 2
.LC78:
.ascii "[%lu0ms][%s:%d] APD Voltage = %d.%dV\012\000"
.global __aeabi_fcmplt
.align 2
.LC79:
.ascii "[%lu0ms][%s:%d] APD slope 1\012\000"
.align 2
.LC80:
.ascii "[%lu0ms][%s:%d] APD slope 2\012\000"
.align 2
.LC81:
.ascii "[%lu0ms][%s:%d] APD slope 3\012\000"
.align 2
.LC82:
.ascii "[%lu0ms][%s:%d] APD = 0x%x\012\000"
.text
.align 2
.global mt7570_APD_control
.type mt7570_APD_control, %function
mt7570_APD_control:
.fnstart
@ args = 0, pretend = 0, frame = 80
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #88
sub sp, sp, #88
mov r0, #48
bl get_flash_register
mov r3, r0
cmp r3, #65536
blt .L197
mov r0, #52
bl get_flash_register
mov r3, r0
cmp r3, #65536
blt .L197
mov r3, #0
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #32]
movw r3, #52429
movt r3, 15820
str r3, [sp, #84] @ float
movw r3, #23593
movt r3, 15759
str r3, [sp, #80] @ float
mov r3, #0
movt r3, 16908
str r3, [sp, #76] @ float
mov r3, #1035993088
str r3, [sp, #28] @ float
mov r3, #0
movt r3, 16880
str r3, [sp, #72] @ float
mov r3, #0
movt r3, 16912
str r3, [sp, #68] @ float
mov r3, #0
movt r3, 16936
str r3, [sp, #64] @ float
movw r3, #26214
movt r3, 16950
str r3, [sp, #60] @ float
mov r0, #16
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L198
mov r0, #16
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17096
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #84] @ float
.L198:
mov r0, #20
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L199
mov r0, #20
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17096
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #80] @ float
.L199:
mov r0, #24
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L200
mov r0, #24
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17096
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #76] @ float
.L200:
mov r0, #48
bl get_flash_register
mov r4, r0
mov r0, #52
bl get_flash_register
mov r3, r0
orr r3, r4, r3
cmn r3, #1
beq .L201
mov r0, #48
bl get_flash_register
mov r3, r0
mov r3, r3, lsr #16
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #72] @ float
mov r0, #48
bl get_flash_register
mov r3, r0
uxth r3, r3
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #68] @ float
mov r0, #52
bl get_flash_register
mov r3, r0
mov r3, r3, lsr #16
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #64] @ float
mov r0, #52
bl get_flash_register
mov r3, r0
uxth r3, r3
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #60] @ float
ldr r0, [sp, #68] @ float
ldr r1, [sp, #72] @ float
bl __aeabi_fcmple
mov r3, r0
cmp r3, #0
bne .L202
ldr r0, [sp, #64] @ float
ldr r1, [sp, #68] @ float
bl __aeabi_fcmple
mov r3, r0
cmp r3, #0
bne .L202
ldr r0, [sp, #60] @ float
ldr r1, [sp, #64] @ float
bl __aeabi_fcmple
mov r3, r0
cmp r3, #0
beq .L201
.L202:
movw r0, #:lower16:.LC76
movt r0, #:upper16:.LC76
bl printk
b .L196
.L201:
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16840
bl __aeabi_fcmpgt
mov r3, r0
cmp r3, #0
beq .L237
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16840
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #84] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #76] @ float
bl __aeabi_fadd
mov r3, r0
mov r2, r3
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
str r2, [r3] @ float
b .L207
.L237:
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, #0
movt r0, 16840
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #80] @ float
bl __aeabi_fmul
mov r3, r0
ldr r0, [sp, #76] @ float
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
str r2, [r3] @ float
.L207:
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #36]
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #24]
ldr r3, [sp, #24]
cmp r3, #0
rsblt r3, r3, #0
str r3, [sp, #32]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L208
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #36]
str r3, [sp]
ldr r3, [sp, #32]
str r3, [sp, #4]
movw r0, #:lower16:.LC77
movt r0, #:upper16:.LC77
mov r1, r2
ldr r2, .L242
movw r3, #1878
bl printk
.L208:
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #36]
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #32]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L209
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #36]
str r3, [sp]
ldr r3, [sp, #32]
str r3, [sp, #4]
movw r0, #:lower16:.LC78
movt r0, #:upper16:.LC78
mov r1, r2
ldr r2, .L242
movw r3, #1882
bl printk
.L209:
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #64] @ float
bl __aeabi_fcmplt
mov r3, r0
cmp r3, #0
beq .L238
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #68] @ float
bl __aeabi_fcmplt
mov r3, r0
cmp r3, #0
beq .L239
ldr r0, [sp, #68] @ float
ldr r1, [sp, #72] @ float
bl __aeabi_fsub
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17024
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #28] @ float
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #72] @ float
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #28] @ float
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
uxtb r3, r3
strb r3, [sp, #11]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L216
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC79
movt r0, #:upper16:.LC79
mov r1, r3
ldr r2, .L242
movw r3, #1891
bl printk
b .L216
.L239:
ldr r0, [sp, #64] @ float
ldr r1, [sp, #68] @ float
bl __aeabi_fsub
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17024
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #28] @ float
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #68] @ float
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #28] @ float
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
uxtb r3, r3
add r3, r3, #64
uxtb r3, r3
strb r3, [sp, #11]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L216
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC80
movt r0, #:upper16:.LC80
mov r1, r3
ldr r2, .L242
movw r3, #1897
bl printk
b .L216
.L238:
ldr r0, [sp, #60] @ float
ldr r1, [sp, #64] @ float
bl __aeabi_fsub
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17024
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #28] @ float
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L217
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC81
movt r0, #:upper16:.LC81
mov r1, r3
ldr r2, .L242
mov r3, #1904
bl printk
.L217:
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #60] @ float
bl __aeabi_fcmplt
mov r3, r0
cmp r3, #0
beq .L240
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #64] @ float
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #28] @ float
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
uxtb r3, r3
sub r3, r3, #128
uxtb r3, r3
strb r3, [sp, #11]
b .L216
.L240:
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #60] @ float
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #28] @ float
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
uxtb r3, r3
sub r3, r3, #64
uxtb r3, r3
strb r3, [sp, #11]
.L216:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L220
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
ldrb r2, [sp, #11] @ zero_extendqisi2
str r2, [sp]
movw r0, #:lower16:.LC82
movt r0, #:upper16:.LC82
mov r1, r3
ldr r2, .L242
movw r3, #1916
bl printk
.L220:
add r3, sp, #11
mov r0, r3
bl mt7570_APD_I2C_write
b .L196
.L197:
mov r3, #0
str r3, [sp, #20]
mov r3, #0
str r3, [sp, #16]
movw r3, #52429
movt r3, 15820
str r3, [sp, #56] @ float
movw r3, #23593
movt r3, 15759
str r3, [sp, #52] @ float
mov r3, #0
movt r3, 16908
str r3, [sp, #48] @ float
mov r3, #0
movt r3, 16880
str r3, [sp, #44] @ float
mov r3, #1035993088
str r3, [sp, #40] @ float
mov r0, #16
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L221
mov r0, #16
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17096
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #56] @ float
.L221:
mov r0, #20
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L222
mov r0, #20
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17096
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #52] @ float
.L222:
mov r0, #24
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L223
mov r0, #24
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17096
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #48] @ float
.L223:
mov r0, #52
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L224
mov r0, #52
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17096
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #44] @ float
.L224:
mov r0, #48
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L225
mov r0, #48
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17530
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #40] @ float
.L225:
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16840
bl __aeabi_fcmpgt
mov r3, r0
cmp r3, #0
beq .L241
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16840
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #56] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #48] @ float
bl __aeabi_fadd
mov r3, r0
mov r2, r3
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
str r2, [r3] @ float
b .L228
.L241:
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, #0
movt r0, 16840
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
ldr r0, [sp, #48] @ float
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
str r2, [r3] @ float
.L228:
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #20]
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #12]
ldr r3, [sp, #12]
cmp r3, #0
rsblt r3, r3, #0
str r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L229
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #20]
str r3, [sp]
ldr r3, [sp, #16]
str r3, [sp, #4]
movw r0, #:lower16:.LC77
movt r0, #:upper16:.LC77
mov r1, r2
ldr r2, .L242
movw r3, #1955
bl printk
.L229:
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #20]
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L230
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #20]
str r3, [sp]
ldr r3, [sp, #16]
str r3, [sp, #4]
movw r0, #:lower16:.LC78
movt r0, #:upper16:.LC78
mov r1, r2
ldr r2, .L242
movw r3, #1959
bl printk
.L230:
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #44] @ float
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #40] @ float
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
uxtb r3, r3
strb r3, [sp, #10]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L231
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
ldrb r2, [sp, #10] @ zero_extendqisi2
str r2, [sp]
movw r0, #:lower16:.LC82
movt r0, #:upper16:.LC82
mov r1, r3
ldr r2, .L242
movw r3, #1963
bl printk
.L231:
add r3, sp, #10
mov r0, r3
bl mt7570_APD_I2C_write
.L196:
add sp, sp, #88
@ sp needed
ldmfd sp!, {r4, pc}
.L243:
.align 2
.L242:
.word .LC39+61
.fnend
.size mt7570_APD_control, .-mt7570_APD_control
.section .rodata.str1.4
.align 2
.LC83:
.ascii "[%lu0ms][%s:%d] APD in mt7570_APD_I2C_write = 0x%x\012"
.ascii "\000"
.text
.align 2
.global mt7570_APD_I2C_write
.type mt7570_APD_I2C_write, %function
mt7570_APD_I2C_write:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
str r0, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L245
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #20]
ldrb r3, [r3] @ zero_extendqisi2
str r3, [sp]
movw r0, #:lower16:.LC83
movt r0, #:upper16:.LC83
mov r1, r2
ldr r2, .L246
movw r3, #1986
bl printk
.L245:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #48
str r3, [sp]
ldr r3, [sp, #20]
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.L247:
.align 2
.L246:
.word .LC39+61
.fnend
.size mt7570_APD_I2C_write, .-mt7570_APD_I2C_write
.align 2
.global mt7570_information_output
.type mt7570_information_output, %function
mt7570_information_output:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #36
sub sp, sp, #36
str r0, [sp, #20]
mov r3, #0
str r3, [sp, #28]
ldr r3, [sp, #20]
cmp r3, #3
bne .L249
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #26] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #27] @ zero_extendqisi2
and r3, r3, #15
mov r3, r3, asl #8
orr r3, r2, r3
str r3, [sp, #28]
movw r3, #:lower16:global_bias_current
movt r3, #:upper16:global_bias_current
ldr r2, [sp, #28]
str r2, [r3]
b .L250
.L249:
ldr r3, [sp, #20]
cmp r3, #4
bne .L251
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #26] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #27] @ zero_extendqisi2
and r3, r3, #15
mov r3, r3, asl #8
orr r3, r2, r3
str r3, [sp, #28]
movw r3, #:lower16:global_modulation_current
movt r3, #:upper16:global_modulation_current
ldr r2, [sp, #28]
str r2, [r3]
b .L250
.L251:
ldr r3, [sp, #20]
cmp r3, #5
bne .L252
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #26] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #27] @ zero_extendqisi2
and r3, r3, #3
mov r3, r3, asl #8
orr r3, r2, r3
str r3, [sp, #28]
movw r3, #:lower16:global_MPDL
movt r3, #:upper16:global_MPDL
ldr r2, [sp, #28]
str r2, [r3]
b .L250
.L252:
ldr r3, [sp, #20]
cmp r3, #6
bne .L250
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #25] @ zero_extendqisi2
and r3, r3, #3
mov r3, r3, asl #8
orr r3, r2, r3
str r3, [sp, #28]
movw r3, #:lower16:global_MPDH
movt r3, #:upper16:global_MPDH
ldr r2, [sp, #28]
str r2, [r3]
.L250:
ldr r3, [sp, #28]
mov r0, r3
add sp, sp, #36
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_information_output, .-mt7570_information_output
.align 2
.global mt7570_ADC_temperature_get
.type mt7570_ADC_temperature_get, %function
mt7570_ADC_temperature_get:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #68
sub sp, sp, #68
mov r3, #8
str r3, [sp, #52]
mov r3, #0
str r3, [sp, #60]
mov r3, #0
str r3, [sp, #56]
bl i2c_access_protect
mov r3, r0
cmn r3, #1
bne .L255
movw r0, #:lower16:.LC72
movt r0, #:upper16:.LC72
movw r1, #:lower16:__FUNCTION__.42081
movt r1, #:upper16:__FUNCTION__.42081
movw r2, #2053
bl printk
movw r3, #:lower16:global_temperature_code
movt r3, #:upper16:global_temperature_code
ldr r3, [r3]
b .L273
.L255:
mov r3, #1
str r3, [sp, #20]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #48]
add r3, sp, #20
str r3, [sp, #44]
mov r3, #4
str r3, [sp, #40]
ldr r3, [sp, #40]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L257
.L259:
.word .L258
.word .L260
.word .L257
.word .L261
.word .L257
.word .L257
.word .L257
.word .L262
.L258:
ldr r3, [sp, #44]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #48]
strb r2, [r3]
b .L263
.L260:
ldr r3, [sp, #44]
ldrh r2, [r3]
ldr r3, [sp, #48]
strh r2, [r3] @ movhi
b .L263
.L261:
ldr r3, [sp, #44]
ldr r2, [r3]
ldr r3, [sp, #48]
str r2, [r3]
b .L263
.L262:
ldr r3, [sp, #44]
ldrd r2, [r3]
ldr r1, [sp, #48]
strd r2, [r1]
b .L263
.L257:
ldr r3, [sp, #40]
ldr r1, [sp, #48]
ldr r2, [sp, #44]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L263:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #30
uxtb r3, r3
orr r3, r3, #8
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #60]
b .L264
.L265:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #25] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
mov r2, r3
ldr r3, [sp, #56]
add r3, r3, r2
str r3, [sp, #56]
ldr r3, [sp, #60]
add r3, r3, #1
str r3, [sp, #60]
.L264:
ldr r2, [sp, #60]
ldr r3, [sp, #52]
cmp r2, r3
bcc .L265
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
bic r3, r3, #30
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #16]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #36]
add r3, sp, #16
str r3, [sp, #32]
mov r3, #4
str r3, [sp, #28]
ldr r3, [sp, #28]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L266
.L268:
.word .L267
.word .L269
.word .L266
.word .L270
.word .L266
.word .L266
.word .L266
.word .L271
.L267:
ldr r3, [sp, #32]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #36]
strb r2, [r3]
b .L272
.L269:
ldr r3, [sp, #32]
ldrh r2, [r3]
ldr r3, [sp, #36]
strh r2, [r3] @ movhi
b .L272
.L270:
ldr r3, [sp, #32]
ldr r2, [r3]
ldr r3, [sp, #36]
str r2, [r3]
b .L272
.L271:
ldr r3, [sp, #32]
ldrd r2, [r3]
ldr r1, [sp, #36]
strd r2, [r1]
b .L272
.L266:
ldr r3, [sp, #28]
ldr r1, [sp, #36]
ldr r2, [sp, #32]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L272:
ldr r3, [sp, #56]
mov r3, r3, lsr #2
add r3, r3, #1
mov r3, r3, lsr #1
mov r2, r3
movw r3, #:lower16:global_temperature_code
movt r3, #:upper16:global_temperature_code
str r2, [r3]
mov r3, #0
str r3, [sp, #56]
movw r3, #:lower16:global_temperature_code
movt r3, #:upper16:global_temperature_code
ldr r3, [r3]
.L273:
mov r0, r3
add sp, sp, #68
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_ADC_temperature_get, .-mt7570_ADC_temperature_get
.align 2
.global mt7570_ADC_voltage_get
.type mt7570_ADC_voltage_get, %function
mt7570_ADC_voltage_get:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #60
sub sp, sp, #60
mov r3, #0
str r3, [sp, #52]
bl i2c_access_protect
mov r3, r0
cmn r3, #1
bne .L275
movw r0, #:lower16:.LC72
movt r0, #:upper16:.LC72
movw r1, #:lower16:__FUNCTION__.42100
movt r1, #:upper16:__FUNCTION__.42100
movw r2, #2106
bl printk
movw r3, #:lower16:global_vcc_code
movt r3, #:upper16:global_vcc_code
ldr r3, [r3]
b .L291
.L275:
mov r3, #1
str r3, [sp, #20]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #48]
add r3, sp, #20
str r3, [sp, #44]
mov r3, #4
str r3, [sp, #40]
ldr r3, [sp, #40]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L277
.L279:
.word .L278
.word .L280
.word .L277
.word .L281
.word .L277
.word .L277
.word .L277
.word .L282
.L278:
ldr r3, [sp, #44]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #48]
strb r2, [r3]
b .L283
.L280:
ldr r3, [sp, #44]
ldrh r2, [r3]
ldr r3, [sp, #48]
strh r2, [r3] @ movhi
b .L283
.L281:
ldr r3, [sp, #44]
ldr r2, [r3]
ldr r3, [sp, #48]
str r2, [r3]
b .L283
.L282:
ldr r3, [sp, #44]
ldrd r2, [r3]
ldr r1, [sp, #48]
strd r2, [r1]
b .L283
.L277:
ldr r3, [sp, #40]
ldr r1, [sp, #48]
ldr r2, [sp, #44]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L283:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
str r3, [sp, #52]
ldrb r3, [sp, #24] @ zero_extendqisi2
bic r3, r3, #30
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #25] @ zero_extendqisi2
mov r3, r3, asl #8
orr r2, r2, r3
movw r3, #:lower16:global_vcc_code
movt r3, #:upper16:global_vcc_code
str r2, [r3]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
bic r3, r3, #16
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
ldr r3, [sp, #52]
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #16]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #36]
add r3, sp, #16
str r3, [sp, #32]
mov r3, #4
str r3, [sp, #28]
ldr r3, [sp, #28]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L284
.L286:
.word .L285
.word .L287
.word .L284
.word .L288
.word .L284
.word .L284
.word .L284
.word .L289
.L285:
ldr r3, [sp, #32]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #36]
strb r2, [r3]
b .L290
.L287:
ldr r3, [sp, #32]
ldrh r2, [r3]
ldr r3, [sp, #36]
strh r2, [r3] @ movhi
b .L290
.L288:
ldr r3, [sp, #32]
ldr r2, [r3]
ldr r3, [sp, #36]
str r2, [r3]
b .L290
.L289:
ldr r3, [sp, #32]
ldrd r2, [r3]
ldr r1, [sp, #36]
strd r2, [r1]
b .L290
.L284:
ldr r3, [sp, #28]
ldr r1, [sp, #36]
ldr r2, [sp, #32]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L290:
movw r3, #:lower16:global_vcc_code
movt r3, #:upper16:global_vcc_code
ldr r3, [r3]
.L291:
mov r0, r3
add sp, sp, #60
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_ADC_voltage_get, .-mt7570_ADC_voltage_get
.section .rodata.str1.4
.align 2
.LC84:
.ascii "Initial bias/mod current loaded from FLASH\012\000"
.global __aeabi_d2iz
.align 2
.LC85:
.ascii "Initial bias/mod current loaded from LUT\012\000"
.text
.align 2
.global mt7570_load_init_current
.type mt7570_load_init_current, %function
mt7570_load_init_current:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #36
sub sp, sp, #36
mov r3, #0
str r3, [sp, #24]
mov r3, #0
str r3, [sp, #28]
mov r0, #0
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L293
mov r0, #4
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L293
mov r0, #0
bl get_flash_register
mov r3, r0
str r3, [sp, #24]
ldr r3, [sp, #24]
ubfx r3, r3, #0, #12
str r3, [sp, #24]
ldr r3, [sp, #24]
uxtb r3, r3
strb r3, [sp, #20]
ldr r3, [sp, #24]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #21]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #312
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r0, #4
bl get_flash_register
mov r3, r0
str r3, [sp, #24]
ldr r3, [sp, #24]
ubfx r3, r3, #0, #12
str r3, [sp, #24]
ldr r3, [sp, #24]
uxtb r3, r3
strb r3, [sp, #20]
ldr r3, [sp, #24]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #21]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #328
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC84
movt r0, #:upper16:.LC84
bl printk
b .L292
.L293:
bl mt7570_temperature_get
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16388
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2iz
mov r3, r0
str r3, [sp, #28]
ldr r3, [sp, #28]
cmp r3, #0
bge .L295
mov r3, #0
str r3, [sp, #28]
.L295:
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #28]
ldr r3, [r3, r2, asl #3]
str r3, [sp, #24]
ldr r3, [sp, #24]
uxtb r3, r3
strb r3, [sp, #20]
ldr r3, [sp, #24]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #21]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #312
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r2, #:lower16:LUT_Ibias_Imod
movt r2, #:upper16:LUT_Ibias_Imod
ldr r3, [sp, #28]
mov r3, r3, asl #3
add r3, r2, r3
ldr r3, [r3, #4]
str r3, [sp, #24]
ldr r3, [sp, #24]
uxtb r3, r3
strb r3, [sp, #20]
ldr r3, [sp, #24]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #21]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #328
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC85
movt r0, #:upper16:.LC85
bl printk
.L292:
add sp, sp, #36
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_load_init_current, .-mt7570_load_init_current
.align 2
.global mt7570_temperature_get
.type mt7570_temperature_get, %function
mt7570_temperature_get:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
mov r3, #0
str r3, [sp, #4]
mov r3, #0
movt r3, 16544
str r3, [sp, #20] @ float
mov r3, #0
movt r3, 16672
str r3, [sp, #16] @ float
mov r3, #49152
movt r3, 17315
str r3, [sp, #12] @ float
movw r3, #58982
movt r3, 17399
str r3, [sp, #8] @ float
mov r0, #128
bl get_flash_register
mov r3, r0
mov r3, r3, lsr #16
mov r3, r3, asl #16
cmn r3, #65536
beq .L297
mov r0, #128
bl get_flash_register
mov r3, r0
str r3, [sp, #4]
ldr r3, [sp, #4]
mov r3, r3, lsr #16
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #12] @ float
.L297:
mov r0, #128
bl get_flash_register
mov r3, r0
uxth r3, r3
movw r2, #65535
cmp r3, r2
beq .L298
mov r0, #128
bl get_flash_register
mov r3, r0
str r3, [sp, #4]
ldr r3, [sp, #4]
uxth r3, r3
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #8] @ float
.L298:
bl mt7570_ADC_temperature_get
movw r3, #:lower16:global_temperature_code
movt r3, #:upper16:global_temperature_code
ldr r3, [r3]
mov r0, r3
bl __aeabi_i2f
mov r2, r0
movw r3, #:lower16:ADC_slope
movt r3, #:upper16:ADC_slope
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r2, r3
movw r3, #:lower16:ADC_offset
movt r3, #:upper16:ADC_offset
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fadd
mov r3, r0
str r3, [sp] @ float
ldr r0, [sp, #12] @ float
ldr r1, [sp] @ float
bl __aeabi_fmul
mov r3, r0
ldr r0, [sp, #8] @ float
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
str r2, [r3] @ float
mov r0, #132
bl get_flash_register
mov r3, r0
str r3, [sp, #4]
ldr r3, [sp, #4]
uxth r3, r3
movw r2, #65535
cmp r3, r2
beq .L299
ldr r3, [sp, #4]
uxth r3, r3
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
str r3, [sp, #20] @ float
.L299:
ldr r3, [sp, #4]
mov r3, r3, lsr #16
movw r2, #65535
cmp r3, r2
beq .L300
ldr r3, [sp, #4]
mov r3, r3, lsr #16
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #16] @ float
.L300:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #20] @ float
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
str r2, [r3] @ float
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
ldr r1, [sp, #16] @ float
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:Env_temperature
movt r3, #:upper16:Env_temperature
str r2, [r3] @ float
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_temperature_get, .-mt7570_temperature_get
.section .rodata.str1.4
.align 2
.LC86:
.ascii "MPDL/MPDH loaded\012\000"
.text
.align 2
.global mt7570_load_MPDL_MPDH
.type mt7570_load_MPDL_MPDH, %function
mt7570_load_MPDL_MPDH:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #24
sub sp, sp, #24
mov r3, #0
str r3, [sp, #20]
mov r0, #12
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L301
mov r0, #8
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L301
mov r0, #12
bl get_flash_register
mov r3, r0
ubfx r4, r3, #0, #10
mov r0, #8
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
mov r3, r3, asl #16
orr r3, r4, r3
str r3, [sp, #20]
ldr r3, [sp, #20]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #20]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
ldr r3, [sp, #20]
mov r3, r3, lsr #16
uxtb r3, r3
strb r3, [sp, #18]
ldr r3, [sp, #20]
mov r3, r3, lsr #24
uxtb r3, r3
strb r3, [sp, #19]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC86
movt r0, #:upper16:.LC86
bl printk
.L301:
add sp, sp, #24
@ sp needed
ldmfd sp!, {r4, pc}
.fnend
.size mt7570_load_MPDL_MPDH, .-mt7570_load_MPDL_MPDH
.global __aeabi_f2uiz
.section .rodata.str1.4
.align 2
.LC87:
.ascii "[%lu0ms][%s:%d] IC temperature = %d.%dC\012\000"
.text
.align 2
.global mt7570_temperature_get_8472
.type mt7570_temperature_get_8472, %function
mt7570_temperature_get_8472:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
mov r3, #0
str r3, [sp, #20]
mov r3, #0
str r3, [sp, #16]
bl mt7570_temperature_get
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
bl __aeabi_fcmpgt
mov r3, r0
cmp r3, #0
beq .L310
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 17280
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
uxth r2, r3
movw r3, #:lower16:global_IC_temperature_8472
movt r3, #:upper16:global_IC_temperature_8472
strh r2, [r3] @ movhi
b .L306
.L310:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
eor r3, r3, #-2147483648
mov r0, r3
mov r1, #0
movt r1, 17280
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
uxth r3, r3
rsb r3, r3, #0
uxth r2, r3
movw r3, #:lower16:global_IC_temperature_8472
movt r3, #:upper16:global_IC_temperature_8472
strh r2, [r3] @ movhi
.L306:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #20]
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #12]
ldr r3, [sp, #12]
cmp r3, #0
rsblt r3, r3, #0
str r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L307
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #20]
str r3, [sp]
ldr r3, [sp, #16]
str r3, [sp, #4]
movw r0, #:lower16:.LC87
movt r0, #:upper16:.LC87
mov r1, r2
ldr r2, .L311
movw r3, #2350
bl printk
.L307:
movw r3, #:lower16:global_IC_temperature_8472
movt r3, #:upper16:global_IC_temperature_8472
ldrh r3, [r3]
mov r0, r3
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.L312:
.align 2
.L311:
.word .LC39+61
.fnend
.size mt7570_temperature_get_8472, .-mt7570_temperature_get_8472
.align 2
.global mt7570_supply_voltage_get_8472
.type mt7570_supply_voltage_get_8472, %function
mt7570_supply_voltage_get_8472:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
bl mt7570_ADC_voltage_get
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r2, r0
movw r3, #:lower16:ADC_slope
movt r3, #:upper16:ADC_slope
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r2, r3
movw r3, #:lower16:ADC_offset
movt r3, #:upper16:ADC_offset
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #17197
movt r2, 60188
movw r3, #14050
movt r3, 16154
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2uiz
mov r3, r0
uxth r2, r3
movw r3, #:lower16:global_supply_voltage_8472
movt r3, #:upper16:global_supply_voltage_8472
strh r2, [r3] @ movhi
movw r3, #:lower16:global_supply_voltage_8472
movt r3, #:upper16:global_supply_voltage_8472
ldrh r3, [r3]
mov r0, r3
ldmfd sp!, {r3, pc}
.fnend
.size mt7570_supply_voltage_get_8472, .-mt7570_supply_voltage_get_8472
.section .rodata.str1.4
.align 2
.LC88:
.ascii "[%lu0ms][%s:%d] Fiber isn't recovered\012\000"
.align 2
.LC89:
.ascii "[%lu0ms][%s:%d] Fiber plugged\012\000"
.text
.align 2
.global mt7570_bias_current_get_8472
.type mt7570_bias_current_get_8472, %function
mt7570_bias_current_get_8472:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #12
sub sp, sp, #12
mov r3, #0
strh r3, [sp, #6] @ movhi
mov r0, #3
bl mt7570_information_output
mov r3, r0
mov r0, r3
bl __aeabi_i2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #10465
movt r2, 30073
movw r3, #398
movt r3, 16281
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #16384
movt r3, 16527
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #1073741824
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2uiz
mov r3, r0
strh r3, [sp, #6] @ movhi
movw r3, #:lower16:FiberPlug
movt r3, #:upper16:FiberPlug
ldr r3, [r3]
cmp r3, #1
bne .L316
ldrh r3, [sp, #6]
cmp r3, #500
bcs .L316
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L317
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC88
movt r0, #:upper16:.LC88
mov r1, r3
ldr r2, .L322
movw r3, #2440
bl printk
b .L318
.L317:
b .L318
.L316:
movw r3, #:lower16:global_bias_current_8472
movt r3, #:upper16:global_bias_current_8472
ldrh r3, [r3]
mov r2, r3
ldrh r3, [sp, #6]
rsb r3, r3, r2
cmp r3, #500
ble .L319
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L320
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC89
movt r0, #:upper16:.LC89
mov r1, r3
ldr r2, .L322
movw r3, #2446
bl printk
.L320:
movw r3, #:lower16:FiberPlug
movt r3, #:upper16:FiberPlug
mov r2, #1
str r2, [r3]
b .L318
.L319:
movw r3, #:lower16:FiberPlug
movt r3, #:upper16:FiberPlug
mov r2, #0
str r2, [r3]
.L318:
movw r3, #:lower16:global_bias_current_8472
movt r3, #:upper16:global_bias_current_8472
ldrh r2, [sp, #6] @ movhi
strh r2, [r3] @ movhi
movw r3, #:lower16:global_bias_current_8472
movt r3, #:upper16:global_bias_current_8472
ldrh r3, [r3]
mov r0, r3
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.L323:
.align 2
.L322:
.word .LC39+61
.fnend
.size mt7570_bias_current_get_8472, .-mt7570_bias_current_get_8472
.section .rodata.str1.4
.align 2
.LC90:
.ascii "RSSI_Vref = 0x%x\012\000"
.align 2
.LC91:
.ascii "RSSI_V = 0x%x\012\000"
.align 2
.LC92:
.ascii "RSSI calibration fail\012\000"
.text
.align 2
.global mt7570_RSSI_calibration
.type mt7570_RSSI_calibration, %function
mt7570_RSSI_calibration:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
mov r3, #0
str r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #17] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #17] @ zero_extendqisi2
orr r3, r3, #64
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
str r3, [sp, #20]
ldrb r3, [sp, #16] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #30
uxtb r3, r3
orr r3, r3, #2
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #17] @ zero_extendqisi2
mov r3, r3, asl #8
orr r2, r2, r3
movw r3, #:lower16:RSSI_Vref
movt r3, #:upper16:RSSI_Vref
str r2, [r3]
movw r3, #:lower16:RSSI_Vref
movt r3, #:upper16:RSSI_Vref
ldr r3, [r3]
movw r0, #:lower16:.LC90
movt r0, #:upper16:.LC90
mov r1, r3
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #17] @ zero_extendqisi2
bic r3, r3, #64
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #17] @ zero_extendqisi2
mov r3, r3, asl #8
orr r2, r2, r3
movw r3, #:lower16:RSSI_V
movt r3, #:upper16:RSSI_V
str r2, [r3]
movw r3, #:lower16:RSSI_V
movt r3, #:upper16:RSSI_V
ldr r3, [r3]
movw r0, #:lower16:.LC91
movt r0, #:upper16:.LC91
mov r1, r3
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #17] @ zero_extendqisi2
bic r3, r3, #16
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
ldr r3, [sp, #20]
uxtb r3, r3
strb r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:RSSI_V
movt r3, #:upper16:RSSI_V
ldr r2, [r3]
movw r3, #:lower16:RSSI_Vref
movt r3, #:upper16:RSSI_Vref
ldr r3, [r3]
cmp r2, r3
ble .L325
movw r3, #:lower16:RSSI_V
movt r3, #:upper16:RSSI_V
ldr r2, [r3]
movw r3, #:lower16:RSSI_Vref
movt r3, #:upper16:RSSI_Vref
ldr r3, [r3]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r2, r0
movw r3, #:lower16:ADC_slope
movt r3, #:upper16:ADC_slope
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r2, r3
movw r3, #:lower16:ADC_offset
movt r3, #:upper16:ADC_offset
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #26214
movt r2, 26214
movw r3, #26214
movt r3, 16342
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r2, r0
movw r3, #:lower16:RSSI_factor
movt r3, #:upper16:RSSI_factor
str r2, [r3] @ float
b .L324
.L325:
movw r0, #:lower16:.LC92
movt r0, #:upper16:.LC92
bl printk
.L324:
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_RSSI_calibration, .-mt7570_RSSI_calibration
.section .rodata.str1.4
.align 2
.LC93:
.ascii "[%lu0ms][%s:%d] RSSI ADC code lower than 0.5V, not "
.ascii "precise!\012\000"
.align 2
.LC94:
.ascii "[%lu0ms][%s:%d] RSSI GAIN = %d, RSSI_voltage = %x, "
.ascii "\012\000"
.text
.align 2
.global mt7570_RSSI_current
.type mt7570_RSSI_current, %function
mt7570_RSSI_current:
.fnstart
@ args = 0, pretend = 0, frame = 72
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #92
sub sp, sp, #92
mov r3, #0
str r3, [sp, #60]
mov r3, #0
str r3, [sp, #84]
mov r3, #0
str r3, [sp, #80]
mov r3, #0
str r3, [sp, #76]
mov r3, #4
str r3, [sp, #56]
mov r3, #0
str r3, [sp, #72]
mov r3, #0
str r3, [sp, #68]
mov r3, #0
str r3, [sp, #64]
bl i2c_access_protect
mov r3, r0
cmn r3, #1
bne .L328
movw r0, #:lower16:.LC72
movt r0, #:upper16:.LC72
movw r1, #:lower16:__FUNCTION__.42172
movt r1, #:upper16:__FUNCTION__.42172
movw r2, #2551
bl printk
movw r3, #:lower16:global_RSSI_current
movt r3, #:upper16:global_RSSI_current
ldr r3, [r3]
b .L361
.L328:
mov r3, #1
str r3, [sp, #24]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #52]
add r3, sp, #24
str r3, [sp, #48]
mov r3, #4
str r3, [sp, #44]
ldr r3, [sp, #44]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L330
.L332:
.word .L331
.word .L333
.word .L330
.word .L334
.word .L330
.word .L330
.word .L330
.word .L335
.L331:
ldr r3, [sp, #48]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #52]
strb r2, [r3]
b .L336
.L333:
ldr r3, [sp, #48]
ldrh r2, [r3]
ldr r3, [sp, #52]
strh r2, [r3] @ movhi
b .L336
.L334:
ldr r3, [sp, #48]
ldr r2, [r3]
ldr r3, [sp, #52]
str r2, [r3]
b .L336
.L335:
ldr r3, [sp, #48]
ldrd r2, [r3]
ldr r1, [sp, #52]
strd r2, [r1]
b .L336
.L330:
ldr r3, [sp, #44]
ldr r1, [sp, #52]
ldr r2, [sp, #48]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L336:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #28] @ zero_extendqisi2
str r3, [sp, #60]
ldrb r3, [sp, #28] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #30
uxtb r3, r3
orr r3, r3, #2
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #28]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #64]
b .L337
.L342:
ldr r3, [sp, #64]
rsb r3, r3, #5
str r3, [sp, #80]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
bic r3, r3, #7
uxtb r2, r3
ldr r3, [sp, #80]
uxtb r3, r3
orr r3, r2, r3
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #72]
mov r3, #0
str r3, [sp, #68]
b .L338
.L339:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #28] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #28]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #28] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #29] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
mov r2, r3
ldr r3, [sp, #72]
add r3, r3, r2
str r3, [sp, #72]
ldr r3, [sp, #68]
add r3, r3, #1
str r3, [sp, #68]
.L338:
ldr r2, [sp, #68]
ldr r3, [sp, #56]
cmp r2, r3
bcc .L339
ldr r3, [sp, #72]
mov r3, r3, lsr #1
add r3, r3, #1
mov r3, r3, lsr #1
str r3, [sp, #84]
movw r3, #:lower16:RSSI_Vref
movt r3, #:upper16:RSSI_Vref
ldr r3, [r3]
sub r3, r3, #50
mov r2, r3
ldr r3, [sp, #84]
cmp r2, r3
bls .L340
b .L341
.L340:
ldr r3, [sp, #64]
add r3, r3, #1
str r3, [sp, #64]
.L337:
ldr r3, [sp, #64]
cmp r3, #5
ble .L342
.L341:
ldr r3, [sp, #84]
cmp r3, #182
bhi .L343
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L343
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC93
movt r0, #:upper16:.LC93
mov r1, r3
ldr r2, .L362
movw r3, #2587
bl printk
.L343:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L344
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #80]
str r3, [sp]
ldr r3, [sp, #84]
str r3, [sp, #4]
movw r0, #:lower16:.LC94
movt r0, #:upper16:.LC94
mov r1, r2
ldr r2, .L362
movw r3, #2589
bl printk
.L344:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #7
uxtb r3, r3
orr r3, r3, #5
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
ldr r3, [sp, #60]
uxtb r3, r3
strb r3, [sp, #28]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #20]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #40]
add r3, sp, #20
str r3, [sp, #36]
mov r3, #4
str r3, [sp, #32]
ldr r3, [sp, #32]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L345
.L347:
.word .L346
.word .L348
.word .L345
.word .L349
.word .L345
.word .L345
.word .L345
.word .L350
.L346:
ldr r3, [sp, #36]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #40]
strb r2, [r3]
b .L351
.L348:
ldr r3, [sp, #36]
ldrh r2, [r3]
ldr r3, [sp, #40]
strh r2, [r3] @ movhi
b .L351
.L349:
ldr r3, [sp, #36]
ldr r2, [r3]
ldr r3, [sp, #40]
str r2, [r3]
b .L351
.L350:
ldr r3, [sp, #36]
ldrd r2, [r3]
ldr r1, [sp, #40]
strd r2, [r1]
b .L351
.L345:
ldr r3, [sp, #32]
ldr r1, [sp, #40]
ldr r2, [sp, #36]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L351:
ldr r3, [sp, #80]
cmp r3, #5
ldrls pc, [pc, r3, asl #2]
b .L352
.L354:
.word .L353
.word .L355
.word .L356
.word .L357
.word .L358
.word .L359
.L353:
mov r3, #1
str r3, [sp, #76]
b .L352
.L355:
mov r3, #4
str r3, [sp, #76]
b .L352
.L356:
mov r3, #16
str r3, [sp, #76]
b .L352
.L357:
mov r3, #64
str r3, [sp, #76]
b .L352
.L358:
mov r3, #128
str r3, [sp, #76]
b .L352
.L359:
mov r3, #256
str r3, [sp, #76]
mov r0, r0 @ nop
.L352:
movw r3, #:lower16:RSSI_Vref
movt r3, #:upper16:RSSI_Vref
ldr r3, [r3]
mov r2, r3
ldr r3, [sp, #84]
cmp r2, r3
bcc .L360
movw r3, #:lower16:RSSI_Vref
movt r3, #:upper16:RSSI_Vref
ldr r3, [r3]
mov r2, r3
ldr r3, [sp, #84]
rsb r3, r3, r2
ldr r2, [sp, #76]
mul r3, r2, r3
mov r2, r3
movw r3, #:lower16:global_RSSI_current
movt r3, #:upper16:global_RSSI_current
str r2, [r3]
movw r3, #:lower16:global_RSSI_current
movt r3, #:upper16:global_RSSI_current
ldr r3, [r3]
b .L361
.L360:
movw r3, #:lower16:global_RSSI_current
movt r3, #:upper16:global_RSSI_current
mov r2, #0
str r2, [r3]
movw r3, #:lower16:global_RSSI_current
movt r3, #:upper16:global_RSSI_current
ldr r3, [r3]
.L361:
mov r0, r3
add sp, sp, #92
@ sp needed
ldr pc, [sp], #4
.L363:
.align 2
.L362:
.word .LC39+61
.fnend
.size mt7570_RSSI_current, .-mt7570_RSSI_current
.section .rodata.str1.4
.align 2
.LC95:
.ascii "RSSI voltage = %x\012\000"
.text
.align 2
.global mt7570_dark_current
.type mt7570_dark_current, %function
mt7570_dark_current:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #76
sub sp, sp, #76
mov r3, #0
str r3, [sp, #60]
mov r3, #0
str r3, [sp, #68]
mov r3, #0
str r3, [sp, #56]
mov r3, #64
str r3, [sp, #52]
mov r3, #0
str r3, [sp, #64]
bl i2c_access_protect
mov r3, r0
cmn r3, #1
bne .L365
movw r0, #:lower16:.LC72
movt r0, #:upper16:.LC72
movw r1, #:lower16:__FUNCTION__.42205
movt r1, #:upper16:__FUNCTION__.42205
movw r2, #2659
bl printk
b .L366
.L365:
mov r3, #1
str r3, [sp, #20]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #48]
add r3, sp, #20
str r3, [sp, #44]
mov r3, #4
str r3, [sp, #40]
ldr r3, [sp, #40]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L367
.L369:
.word .L368
.word .L370
.word .L367
.word .L371
.word .L367
.word .L367
.word .L367
.word .L372
.L368:
ldr r3, [sp, #44]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #48]
strb r2, [r3]
b .L373
.L370:
ldr r3, [sp, #44]
ldrh r2, [r3]
ldr r3, [sp, #48]
strh r2, [r3] @ movhi
b .L373
.L371:
ldr r3, [sp, #44]
ldr r2, [r3]
ldr r3, [sp, #48]
str r2, [r3]
b .L373
.L372:
ldr r3, [sp, #44]
ldrd r2, [r3]
ldr r1, [sp, #48]
strd r2, [r1]
b .L373
.L367:
ldr r3, [sp, #40]
ldr r1, [sp, #48]
ldr r2, [sp, #44]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L373:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
str r3, [sp, #60]
ldrb r3, [sp, #24] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #30
uxtb r3, r3
orr r3, r3, #2
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #56]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #26] @ zero_extendqisi2
bic r3, r3, #7
uxtb r2, r3
ldr r3, [sp, #56]
uxtb r3, r3
orr r3, r2, r3
uxtb r3, r3
strb r3, [sp, #26]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #64]
b .L374
.L375:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #24] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #25] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
mov r2, r3
ldr r3, [sp, #68]
add r3, r3, r2
str r3, [sp, #68]
ldr r3, [sp, #64]
add r3, r3, #1
str r3, [sp, #64]
.L374:
ldr r2, [sp, #64]
ldr r3, [sp, #52]
cmp r2, r3
bcc .L375
movw r0, #:lower16:.LC95
movt r0, #:upper16:.LC95
ldr r1, [sp, #68]
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #26] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #7
uxtb r3, r3
orr r3, r3, #5
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #26]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #20
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
ldr r3, [sp, #60]
uxtb r3, r3
strb r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #24
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #16]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #36]
add r3, sp, #16
str r3, [sp, #32]
mov r3, #4
str r3, [sp, #28]
ldr r3, [sp, #28]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L376
.L378:
.word .L377
.word .L379
.word .L376
.word .L380
.word .L376
.word .L376
.word .L376
.word .L381
.L377:
ldr r3, [sp, #32]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #36]
strb r2, [r3]
b .L366
.L379:
ldr r3, [sp, #32]
ldrh r2, [r3]
ldr r3, [sp, #36]
strh r2, [r3] @ movhi
b .L366
.L380:
ldr r3, [sp, #32]
ldr r2, [r3]
ldr r3, [sp, #36]
str r2, [r3]
b .L366
.L381:
ldr r3, [sp, #32]
ldrd r2, [r3]
ldr r1, [sp, #36]
strd r2, [r1]
b .L366
.L376:
ldr r3, [sp, #28]
ldr r1, [sp, #36]
ldr r2, [sp, #32]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L366:
mov r3, #0
mov r0, r3
add sp, sp, #76
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_dark_current, .-mt7570_dark_current
.section .rodata.str1.4
.align 2
.LC96:
.ascii "Rogue ONU clear\012\000"
.text
.align 2
.global mt7570_RougeONU_clear
.type mt7570_RougeONU_clear, %function
mt7570_RougeONU_clear:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #361
str r3, [sp]
add r3, sp, #23
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #23]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #361
str r3, [sp]
add r3, sp, #23
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC96
movt r0, #:upper16:.LC96
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_RougeONU_clear, .-mt7570_RougeONU_clear
.section .rodata.str1.4
.align 2
.LC97:
.ascii "MPD Current Offset = 0x%x\012\000"
.text
.align 2
.global mt7570_MPD_current_calibration
.type mt7570_MPD_current_calibration, %function
mt7570_MPD_current_calibration:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #14
uxtb r3, r3
orr r3, r3, #8
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #30
uxtb r3, r3
orr r3, r3, #4
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #23] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
mov r2, r3
movw r3, #:lower16:MPD_current_offset
movt r3, #:upper16:MPD_current_offset
str r2, [r3]
movw r3, #:lower16:MPD_current_offset
movt r3, #:upper16:MPD_current_offset
ldr r3, [r3]
mov r2, r3
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
str r2, [r3]
movw r3, #:lower16:MPD_current_offset
movt r3, #:upper16:MPD_current_offset
ldr r3, [r3]
movw r0, #:lower16:.LC97
movt r0, #:upper16:.LC97
mov r1, r3
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #14
uxtb r3, r3
orr r3, r3, #8
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
bic r3, r3, #30
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #22
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_MPD_current_calibration, .-mt7570_MPD_current_calibration
.section .rodata.str1.4
.align 2
.LC98:
.ascii "[%lu0ms][%s:%d] MPD temp = 0x%x\012\000"
.align 2
.LC99:
.ascii "[%lu0ms][%s:%d] No Tx power, return %x\012\000"
.align 2
.LC100:
.ascii "Invalid content of FLASH 0x88\012\000"
.align 2
.LC101:
.ascii "[%lu0ms][%s:%d] GPON mode\012\000"
.align 2
.LC102:
.ascii "[%lu0ms][%s:%d] EPON mode\012\000"
.align 2
.LC103:
.ascii "[%lu0ms][%s:%d] MPD current var = 0x%x\012\000"
.align 2
.LC104:
.ascii "[%lu0ms][%s:%d] MPD in zone 1, Tx_power_8472 = %d\012"
.ascii "\000"
.align 2
.LC105:
.ascii "[%lu0ms][%s:%d] temp(var) = 0x%x\012\000"
.align 2
.LC106:
.ascii "[%lu0ms][%s:%d] MPD in zone 1a, Tx_power_8472 = %d,"
.ascii " return %x\012\000"
.align 2
.LC107:
.ascii "[%lu0ms][%s:%d] MPD in zone 1b, Tx_power_8472 = %d,"
.ascii " return %x\012\000"
.align 2
.LC108:
.ascii "[%lu0ms][%s:%d] MPD in zone 2, Tx_power_8472 = %d, "
.ascii "return %x\012\000"
.align 2
.LC109:
.ascii "[%lu0ms][%s:%d] MPD in zone 3, Tx_power_8472 = %d, "
.ascii "return %x\012\000"
.text
.align 2
.global mt7570_MPD_current
.type mt7570_MPD_current, %function
mt7570_MPD_current:
.fnstart
@ args = 0, pretend = 0, frame = 96
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #112
sub sp, sp, #112
mov r3, #0
str r3, [sp, #84]
mov r3, #0
str r3, [sp, #108]
mov r3, #0
str r3, [sp, #104]
mov r3, #0
str r3, [sp, #100]
movw r3, #:lower16:vEN7570
movt r3, #:upper16:vEN7570
ldr r3, [r3]
cmp r3, #0
bne .L387
movw r3, #:lower16:TEC_switch
movt r3, #:upper16:TEC_switch
ldr r3, [r3]
cmp r3, #0
beq .L387
mov r3, #10
str r3, [sp, #100]
b .L388
.L387:
mov r3, #1
str r3, [sp, #100]
.L388:
bl i2c_access_protect
mov r3, r0
cmn r3, #1
bne .L389
movw r0, #:lower16:.LC72
movt r0, #:upper16:.LC72
movw r1, #:lower16:__FUNCTION__.42235
movt r1, #:upper16:__FUNCTION__.42235
movw r2, #2803
bl printk
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
b .L430
.L389:
mov r3, #1
str r3, [sp, #24]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #52]
add r3, sp, #24
str r3, [sp, #48]
mov r3, #4
str r3, [sp, #44]
ldr r3, [sp, #44]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L391
.L393:
.word .L392
.word .L394
.word .L391
.word .L395
.word .L391
.word .L391
.word .L391
.word .L396
.L392:
ldr r3, [sp, #48]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #52]
strb r2, [r3]
b .L397
.L394:
ldr r3, [sp, #48]
ldrh r2, [r3]
ldr r3, [sp, #52]
strh r2, [r3] @ movhi
b .L397
.L395:
ldr r3, [sp, #48]
ldr r2, [r3]
ldr r3, [sp, #52]
str r2, [r3]
b .L397
.L396:
ldr r3, [sp, #48]
ldrd r2, [r3]
ldr r1, [sp, #52]
strd r2, [r1]
b .L397
.L391:
ldr r3, [sp, #44]
ldr r1, [sp, #52]
ldr r2, [sp, #48]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L397:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
bic r3, r3, #14
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #30
uxtb r3, r3
orr r3, r3, #4
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #104]
b .L398
.L401:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
orr r3, r3, #16
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
movw r3, #345
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #340
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
mov r2, r3
ldrb r3, [sp, #31] @ zero_extendqisi2
mov r3, r3, asl #8
orr r3, r2, r3
str r3, [sp, #84]
ldr r3, [sp, #108]
cmp r3, #0
bne .L399
ldr r3, [sp, #84]
str r3, [sp, #108]
b .L400
.L399:
ldr r2, [sp, #108]
ldr r3, [sp, #84]
cmp r2, r3
bcs .L400
ldr r3, [sp, #84]
str r3, [sp, #108]
.L400:
ldr r3, [sp, #104]
add r3, r3, #1
str r3, [sp, #104]
.L398:
ldr r2, [sp, #104]
ldr r3, [sp, #100]
cmp r2, r3
blt .L401
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
bic r3, r3, #30
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #30] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #14
uxtb r3, r3
orr r3, r3, #8
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #0
str r3, [sp]
add r3, sp, #30
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
mov r3, #0
str r3, [sp, #20]
movw r3, #:lower16:i2c_protect
movt r3, #:upper16:i2c_protect
str r3, [sp, #40]
add r3, sp, #20
str r3, [sp, #36]
mov r3, #4
str r3, [sp, #32]
ldr r3, [sp, #32]
sub r3, r3, #1
cmp r3, #7
ldrls pc, [pc, r3, asl #2]
b .L402
.L404:
.word .L403
.word .L405
.word .L402
.word .L406
.word .L402
.word .L402
.word .L402
.word .L407
.L403:
ldr r3, [sp, #36]
ldrb r2, [r3] @ zero_extendqisi2
ldr r3, [sp, #40]
strb r2, [r3]
b .L408
.L405:
ldr r3, [sp, #36]
ldrh r2, [r3]
ldr r3, [sp, #40]
strh r2, [r3] @ movhi
b .L408
.L406:
ldr r3, [sp, #36]
ldr r2, [r3]
ldr r3, [sp, #40]
str r2, [r3]
b .L408
.L407:
ldr r3, [sp, #36]
ldrd r2, [r3]
ldr r1, [sp, #40]
strd r2, [r1]
b .L408
.L402:
ldr r3, [sp, #32]
ldr r1, [sp, #40]
ldr r2, [sp, #36]
mov r0, r1
mov r1, r2
mov r2, r3
bl memcpy
.L408:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L409
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #108]
str r3, [sp]
movw r0, #:lower16:.LC98
movt r0, #:upper16:.LC98
mov r1, r2
ldr r2, .L431
movw r3, #2849
bl printk
.L409:
movw r3, #:lower16:MPD_current_offset
movt r3, #:upper16:MPD_current_offset
ldr r3, [r3]
ldr r2, [sp, #108]
cmp r2, r3
bcs .L410
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L411
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
movw r3, #:lower16:MPD_current_offset
movt r3, #:upper16:MPD_current_offset
ldr r3, [r3]
str r3, [sp]
movw r0, #:lower16:.LC99
movt r0, #:upper16:.LC99
mov r1, r2
ldr r2, .L431
movw r3, #2852
bl printk
.L411:
movw r3, #:lower16:MPD_current_offset
movt r3, #:upper16:MPD_current_offset
ldr r3, [r3]
mov r2, r3
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
str r2, [r3]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
b .L430
.L410:
movw r3, #:lower16:vEN7570
movt r3, #:upper16:vEN7570
ldr r3, [r3]
cmp r3, #0
bne .L412
movw r3, #:lower16:TEC_switch
movt r3, #:upper16:TEC_switch
ldr r3, [r3]
cmp r3, #0
beq .L412
mov r3, #0
str r3, [sp, #80]
mov r0, #136
bl get_flash_register
str r0, [sp, #76]
movw r3, #:lower16:MPD_current_offset
movt r3, #:upper16:MPD_current_offset
ldr r3, [r3]
str r3, [sp, #72]
mov r3, #0
str r3, [sp, #68] @ float
mov r3, #0
str r3, [sp, #64] @ float
mov r3, #0
str r3, [sp, #96]
mov r3, #0
str r3, [sp, #60]
mov r3, #0
strh r3, [sp, #58] @ movhi
mov r3, #0
str r3, [sp, #92]
mov r3, #0
str r3, [sp, #88]
ldr r2, [sp, #76]
ldr r3, [sp, #72]
rsb r3, r3, r2
str r3, [sp, #80]
ldr r3, [sp, #80]
cmp r3, #0
bne .L413
movw r0, #:lower16:.LC100
movt r0, #:upper16:.LC100
bl printk
ldr r2, [sp, #108]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
str r2, [r3]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
b .L430
.L413:
movw r3, #:lower16:xPON_mode
movt r3, #:upper16:xPON_mode
ldr r3, [r3]
cmp r3, #1
bne .L414
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L415
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC101
movt r0, #:upper16:.LC101
mov r1, r3
ldr r2, .L431
movw r3, #2881
bl printk
.L415:
mov r3, #177
str r3, [sp, #96]
movw r3, #25118
str r3, [sp, #92]
movw r3, #12589
str r3, [sp, #88]
b .L416
.L414:
movw r3, #:lower16:xPON_mode
movt r3, #:upper16:xPON_mode
ldr r3, [r3]
cmp r3, #0
bne .L416
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L417
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC102
movt r0, #:upper16:.LC102
mov r1, r3
ldr r2, .L431
movw r3, #2888
bl printk
.L417:
mov r3, #158
str r3, [sp, #96]
movw r3, #22387
str r3, [sp, #92]
movw r3, #11220
str r3, [sp, #88]
.L416:
ldr r2, [sp, #96]
ldr r3, [sp, #60]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r4, r0
ldr r2, [sp, #76]
ldr r3, [sp, #72]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #68] @ float
ldr r3, [sp, #72]
ldr r2, [sp, #108]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
ldr r1, [sp, #68] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #60]
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
str r3, [sp, #64] @ float
ldr r0, [sp, #64] @ float
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
mov r0, r3
bl __aeabi_i2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #39322
movt r2, 39321
movw r3, #39321
movt r3, 16313
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2uiz
mov r3, r0
strh r3, [sp, #58] @ movhi
movw r3, #:lower16:global_MPD_current_var
movt r3, #:upper16:global_MPD_current_var
ldr r3, [r3]
cmp r3, #0
bne .L418
ldrh r2, [sp, #58]
ldr r3, [sp, #92]
cmp r2, r3
ble .L418
movw r3, #:lower16:MPD_current_cnt
movt r3, #:upper16:MPD_current_cnt
ldr r3, [r3]
add r2, r3, #1
movw r3, #:lower16:MPD_current_cnt
movt r3, #:upper16:MPD_current_cnt
str r2, [r3]
movw r3, #:lower16:MPD_current_cnt
movt r3, #:upper16:MPD_current_cnt
ldr r3, [r3]
cmp r3, #2
bne .L418
mov r0, #136
bl get_flash_register
mov r3, r0
mov r2, r3
ldr r3, [sp, #108]
rsb r3, r2, r3
mov r2, r3
movw r3, #:lower16:global_MPD_current_var
movt r3, #:upper16:global_MPD_current_var
str r2, [r3]
.L418:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L419
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
movw r3, #:lower16:global_MPD_current_var
movt r3, #:upper16:global_MPD_current_var
ldr r3, [r3]
str r3, [sp]
movw r0, #:lower16:.LC103
movt r0, #:upper16:.LC103
mov r1, r2
ldr r2, .L431
movw r3, #2904
bl printk
.L419:
ldrh r2, [sp, #58]
ldr r3, [sp, #92]
cmp r2, r3
ble .L420
movw r3, #:lower16:global_MPD_current_var
movt r3, #:upper16:global_MPD_current_var
ldr r3, [r3]
cmp r3, #0
beq .L420
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L421
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldrh r3, [sp, #58]
str r3, [sp]
movw r0, #:lower16:.LC104
movt r0, #:upper16:.LC104
mov r1, r2
ldr r2, .L431
movw r3, #2908
bl printk
.L421:
movw r3, #:lower16:global_MPD_current_var
movt r3, #:upper16:global_MPD_current_var
ldr r3, [r3]
mov r2, r3
ldr r3, [sp, #108]
rsb r3, r2, r3
str r3, [sp, #108]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L422
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #108]
str r3, [sp]
movw r0, #:lower16:.LC105
movt r0, #:upper16:.LC105
mov r1, r2
ldr r2, .L431
movw r3, #2910
bl printk
.L422:
ldr r3, [sp, #72]
ldr r2, [sp, #108]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
ldr r1, [sp, #68] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #60]
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
str r3, [sp, #64] @ float
ldr r0, [sp, #64] @ float
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
mov r0, r3
bl __aeabi_i2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #39322
movt r2, 39321
movw r3, #39321
movt r3, 16313
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2uiz
mov r3, r0
strh r3, [sp, #58] @ movhi
ldrh r2, [sp, #58]
ldr r3, [sp, #92]
cmp r2, r3
bgt .L423
ldrh r2, [sp, #58]
ldr r3, [sp, #88]
cmp r2, r3
bge .L424
.L423:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L425
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r1, [r3]
ldrh r2, [sp, #58]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
str r2, [sp]
str r3, [sp, #4]
movw r0, #:lower16:.LC106
movt r0, #:upper16:.LC106
ldr r2, .L431
movw r3, #2915
bl printk
.L425:
movw r3, #:lower16:global_MPD_current_var
movt r3, #:upper16:global_MPD_current_var
mov r2, #0
str r2, [r3]
movw r3, #:lower16:MPD_current_cnt
movt r3, #:upper16:MPD_current_cnt
mov r2, #1
str r2, [r3]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
b .L430
.L424:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L426
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldrh r3, [sp, #58]
str r3, [sp]
ldr r3, [sp, #108]
str r3, [sp, #4]
movw r0, #:lower16:.LC107
movt r0, #:upper16:.LC107
mov r1, r2
ldr r2, .L431
movw r3, #2922
bl printk
.L426:
ldr r2, [sp, #108]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
str r2, [r3]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
b .L430
.L420:
ldrh r2, [sp, #58]
ldr r3, [sp, #92]
cmp r2, r3
ble .L427
movw r3, #:lower16:global_MPD_current_var
movt r3, #:upper16:global_MPD_current_var
ldr r3, [r3]
cmp r3, #0
bne .L427
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L428
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldrh r3, [sp, #58]
str r3, [sp]
ldr r3, [sp, #76]
str r3, [sp, #4]
movw r0, #:lower16:.LC108
movt r0, #:upper16:.LC108
mov r1, r2
ldr r2, .L431
movw r3, #2929
bl printk
.L428:
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r2, [sp, #76]
str r2, [r3]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
b .L430
.L427:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L429
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldrh r3, [sp, #58]
str r3, [sp]
ldr r3, [sp, #108]
str r3, [sp, #4]
movw r0, #:lower16:.LC109
movt r0, #:upper16:.LC109
mov r1, r2
ldr r2, .L431
movw r3, #2935
bl printk
.L429:
ldr r2, [sp, #108]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
str r2, [r3]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
b .L430
.L412:
ldr r2, [sp, #108]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
str r2, [r3]
movw r3, #:lower16:global_MPD_current
movt r3, #:upper16:global_MPD_current
ldr r3, [r3]
.L430:
mov r0, r3
add sp, sp, #112
@ sp needed
ldmfd sp!, {r4, pc}
.L432:
.align 2
.L431:
.word .LC39+61
.fnend
.size mt7570_MPD_current, .-mt7570_MPD_current
.global __aeabi_fcmpeq
.section .rodata.str1.4
.align 2
.LC110:
.ascii "[%lu0ms][%s:%d] Invalid DDMI Rx power-RSSI mapping "
.ascii "curve \012\000"
.align 2
.LC111:
.ascii "[%lu0ms][%s:%d] Rx power in zone 1\012\000"
.align 2
.LC112:
.ascii "[%lu0ms][%s:%d] Invalid Rx power point\012\000"
.align 2
.LC113:
.ascii "[%lu0ms][%s:%d] Rx power in zone 2\012\000"
.align 2
.LC114:
.ascii "[%lu0ms][%s:%d] Rx power in zone 3\012\000"
.align 2
.LC115:
.ascii "[%lu0ms][%s:%d] Rx_power_8472 = %d\012\000"
.text
.align 2
.global mt7570_RxPower_get_8472
.type mt7570_RxPower_get_8472, %function
mt7570_RxPower_get_8472:
.fnstart
@ args = 0, pretend = 0, frame = 72
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #80
sub sp, sp, #80
mov r3, #0
str r3, [sp, #48]
mov r3, #0
str r3, [sp, #44]
mov r3, #0
str r3, [sp, #76]
mov r3, #0
strh r3, [sp, #42] @ movhi
mov r3, #0
str r3, [sp, #36] @ float
mov r3, #0
str r3, [sp, #32] @ float
mov r3, #0
str r3, [sp, #72]
mov r3, #0
str r3, [sp, #68]
mov r3, #0
str r3, [sp, #64]
mov r3, #0
str r3, [sp, #60]
mov r3, #0
str r3, [sp, #56]
mov r3, #0
str r3, [sp, #52]
mov r0, #92
bl get_flash_register
mov r3, r0
and r3, r3, #15
cmp r3, #1
bne .L434
movw r3, #:lower16:global_DDMI_rx_cal_flag
movt r3, #:upper16:global_DDMI_rx_cal_flag
ldr r3, [r3]
cmp r3, #0
bne .L435
mov r0, #80
bl get_flash_register
str r0, [sp, #48]
ldr r3, [sp, #48]
uxth r3, r3
mov r0, r3
bl __aeabi_i2f
mov r3, r0
str r3, [sp, #28] @ float
ldr r3, [sp, #48]
mov r3, r3, lsr #16
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
str r3, [sp, #24] @ float
mov r0, #84
bl get_flash_register
str r0, [sp, #48]
ldr r3, [sp, #48]
uxth r3, r3
mov r0, r3
bl __aeabi_i2f
mov r3, r0
str r3, [sp, #20] @ float
ldr r3, [sp, #48]
mov r3, r3, lsr #16
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
str r3, [sp, #16] @ float
mov r0, #88
bl get_flash_register
str r0, [sp, #48]
ldr r3, [sp, #48]
uxth r3, r3
mov r0, r3
bl __aeabi_i2f
mov r3, r0
str r3, [sp, #12] @ float
ldr r3, [sp, #48]
mov r3, r3, lsr #16
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
str r3, [sp, #8] @ float
ldr r0, [sp, #28] @ float
ldr r1, [sp, #28] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #20] @ float
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #20] @ float
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #28] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:d.42280
movt r3, #:upper16:d.42280
str r2, [r3] @ float
ldr r0, [sp, #24] @ float
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #8] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #16] @ float
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #20] @ float
ldr r1, [sp, #8] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #16] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r4, r3
ldr r0, [sp, #24] @ float
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:e.42281
movt r3, #:upper16:e.42281
str r2, [r3] @ float
ldr r0, [sp, #28] @ float
ldr r1, [sp, #28] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #16] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #24] @ float
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #20] @ float
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #8] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #16] @ float
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r4, r3
ldr r0, [sp, #24] @ float
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #28] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #8] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:f.42282
movt r3, #:upper16:f.42282
str r2, [r3] @ float
ldr r0, [sp, #28] @ float
ldr r1, [sp, #28] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #8] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #16] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #24] @ float
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #24] @ float
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #20] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #8] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r4, r3
ldr r0, [sp, #28] @ float
ldr r1, [sp, #28] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #16] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r2, r3
movw r3, #:lower16:g.42283
movt r3, #:upper16:g.42283
str r2, [r3] @ float
movw r3, #:lower16:d.42280
movt r3, #:upper16:d.42280
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
bl __aeabi_fcmpeq
mov r3, r0
cmp r3, #0
beq .L462
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L439
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC110
movt r0, #:upper16:.LC110
mov r1, r3
ldr r2, .L465
movw r3, #3007
bl printk
b .L439
.L462:
movw r3, #:lower16:e.42281
movt r3, #:upper16:e.42281
ldr r2, [r3] @ float
movw r3, #:lower16:d.42280
movt r3, #:upper16:d.42280
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
mov r2, r3
movw r3, #:lower16:x.42284
movt r3, #:upper16:x.42284
str r2, [r3] @ float
movw r3, #:lower16:f.42282
movt r3, #:upper16:f.42282
ldr r2, [r3] @ float
movw r3, #:lower16:d.42280
movt r3, #:upper16:d.42280
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
mov r2, r3
movw r3, #:lower16:y.42285
movt r3, #:upper16:y.42285
str r2, [r3] @ float
movw r3, #:lower16:g.42283
movt r3, #:upper16:g.42283
ldr r2, [r3] @ float
movw r3, #:lower16:d.42280
movt r3, #:upper16:d.42280
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
mov r2, r3
movw r3, #:lower16:z.42286
movt r3, #:upper16:z.42286
str r2, [r3] @ float
.L439:
movw r3, #:lower16:global_DDMI_rx_cal_flag
movt r3, #:upper16:global_DDMI_rx_cal_flag
mov r2, #1
str r2, [r3]
.L435:
bl mt7570_RSSI_current
str r0, [sp, #44]
ldr r0, [sp, #44]
bl __aeabi_i2f
mov r4, r0
ldr r0, [sp, #44]
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r2, r3
movw r3, #:lower16:x.42284
movt r3, #:upper16:x.42284
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #44]
bl __aeabi_i2f
mov r2, r0
movw r3, #:lower16:y.42285
movt r3, #:upper16:y.42285
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r2, r3
movw r3, #:lower16:z.42286
movt r3, #:upper16:z.42286
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #76]
ldr r3, [sp, #76]
cmp r3, #0
bge .L441
mov r3, #0
str r3, [sp, #76]
b .L441
.L434:
bl mt7570_RSSI_current
str r0, [sp, #44]
mov r0, #80
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L442
mov r0, #80
bl get_flash_register
str r0, [sp, #48]
ldr r3, [sp, #48]
uxth r3, r3
str r3, [sp, #72]
ldr r3, [sp, #48]
mov r3, r3, lsr #16
str r3, [sp, #60]
.L442:
mov r0, #84
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L443
mov r0, #84
bl get_flash_register
str r0, [sp, #48]
ldr r3, [sp, #48]
uxth r3, r3
str r3, [sp, #68]
ldr r3, [sp, #48]
mov r3, r3, lsr #16
str r3, [sp, #56]
.L443:
mov r0, #88
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L444
mov r0, #88
bl get_flash_register
str r0, [sp, #48]
ldr r3, [sp, #48]
uxth r3, r3
str r3, [sp, #64]
ldr r3, [sp, #48]
mov r3, r3, lsr #16
str r3, [sp, #52]
.L444:
ldr r2, [sp, #44]
ldr r3, [sp, #64]
cmp r2, r3
bgt .L445
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L446
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC111
movt r0, #:upper16:.LC111
mov r1, r3
ldr r2, .L465
movw r3, #3051
bl printk
.L446:
ldr r0, [sp, #64]
bl __aeabi_i2f
mov r3, r0
str r3, [sp, #36] @ float
ldr r3, [sp, #64]
cmp r3, #0
beq .L447
ldr r0, [sp, #52]
bl __aeabi_i2f
mov r4, r0
ldr r0, [sp, #64]
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #32] @ float
ldr r0, [sp, #44]
bl __aeabi_i2f
mov r3, r0
mov r0, r3
ldr r1, [sp, #32] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #76]
b .L441
.L447:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L441
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC112
movt r0, #:upper16:.LC112
mov r1, r3
ldr r2, .L465
movw r3, #3060
bl printk
b .L441
.L445:
ldr r2, [sp, #64]
ldr r3, [sp, #44]
cmp r2, r3
bge .L449
ldr r2, [sp, #44]
ldr r3, [sp, #68]
cmp r2, r3
bge .L449
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L450
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC113
movt r0, #:upper16:.LC113
mov r1, r3
ldr r2, .L465
movw r3, #3064
bl printk
.L450:
ldr r2, [sp, #68]
ldr r3, [sp, #64]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
str r3, [sp, #36] @ float
ldr r0, [sp, #36] @ float
mov r1, #0
bl __aeabi_fcmpeq
mov r3, r0
cmp r3, #0
bne .L463
ldr r2, [sp, #56]
ldr r3, [sp, #52]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r4, r0
ldr r2, [sp, #68]
ldr r3, [sp, #64]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #32] @ float
ldr r2, [sp, #44]
ldr r3, [sp, #64]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
ldr r1, [sp, #32] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #52]
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #76]
b .L453
.L463:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L453
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC112
movt r0, #:upper16:.LC112
mov r1, r3
ldr r2, .L465
mov r3, #3072
bl printk
b .L441
.L453:
b .L441
.L449:
ldr r2, [sp, #68]
ldr r3, [sp, #44]
cmp r2, r3
bgt .L441
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L454
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC114
movt r0, #:upper16:.LC114
mov r1, r3
ldr r2, .L465
movw r3, #3076
bl printk
.L454:
ldr r2, [sp, #72]
ldr r3, [sp, #68]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
str r3, [sp, #36] @ float
ldr r0, [sp, #36] @ float
mov r1, #0
bl __aeabi_fcmpeq
mov r3, r0
cmp r3, #0
bne .L464
ldr r2, [sp, #60]
ldr r3, [sp, #56]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r4, r0
ldr r2, [sp, #72]
ldr r3, [sp, #68]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #32] @ float
ldr r2, [sp, #44]
ldr r3, [sp, #68]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
ldr r1, [sp, #32] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #56]
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #76]
b .L441
.L464:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L441
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC112
movt r0, #:upper16:.LC112
mov r1, r3
ldr r2, .L465
movw r3, #3084
bl printk
.L441:
ldr r1, [sp, #76]
movw r3, #26215
movt r3, 26214
smull r2, r3, r1, r3
mov r2, r3, asr #2
mov r3, r1, asr #31
rsb r3, r3, r2
strh r3, [sp, #42] @ movhi
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L457
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldrh r3, [sp, #42]
str r3, [sp]
movw r0, #:lower16:.LC115
movt r0, #:upper16:.LC115
mov r1, r2
ldr r2, .L465
movw r3, #3090
bl printk
.L457:
ldrh r3, [sp, #42]
mov r0, r3
add sp, sp, #80
@ sp needed
ldmfd sp!, {r4, pc}
.L466:
.align 2
.L465:
.word .LC39+61
.fnend
.size mt7570_RxPower_get_8472, .-mt7570_RxPower_get_8472
.align 2
.global mt7570_safe_circuit_reset
.type mt7570_safe_circuit_reset, %function
mt7570_safe_circuit_reset:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #256
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #21] @ zero_extendqisi2
orr r3, r3, #64
uxtb r3, r3
strb r3, [sp, #21]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #256
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_safe_circuit_reset, .-mt7570_safe_circuit_reset
.section .rodata.str1.4
.align 2
.LC116:
.ascii "[%lu0ms][%s:%d] MPD_current = 0x%x\012\000"
.align 2
.LC117:
.ascii "[%lu0ms][%s:%d] Invalid Tx power point\012\000"
.align 2
.LC118:
.ascii "[%lu0ms][%s:%d] Tx_power_8472 = %d\012\000"
.text
.align 2
.global mt7570_TxPower_get_8472
.type mt7570_TxPower_get_8472, %function
mt7570_TxPower_get_8472:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #48
sub sp, sp, #48
mov r3, #0
str r3, [sp, #24]
mov r3, #0
str r3, [sp, #20]
mov r3, #0
str r3, [sp, #16]
mov r3, #0
str r3, [sp, #44]
movw r3, #:lower16:MPD_current_offset
movt r3, #:upper16:MPD_current_offset
ldr r3, [r3]
str r3, [sp, #40]
mov r3, #0
str r3, [sp, #12] @ float
mov r3, #0
str r3, [sp, #36] @ float
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
strh r3, [sp, #10] @ movhi
bl mt7570_MPD_current
str r0, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L469
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #16]
str r3, [sp]
movw r0, #:lower16:.LC116
movt r0, #:upper16:.LC116
mov r1, r2
ldr r2, .L476
movw r3, #3142
bl printk
.L469:
mov r0, #64
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L470
mov r0, #64
bl get_flash_register
str r0, [sp, #20]
ldr r3, [sp, #20]
uxth r3, r3
str r3, [sp, #44]
ldr r3, [sp, #20]
mov r3, r3, lsr #16
str r3, [sp, #32]
.L470:
mov r0, #68
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L471
mov r0, #68
bl get_flash_register
str r0, [sp, #20]
ldr r3, [sp, #20]
uxth r3, r3
str r3, [sp, #40]
ldr r3, [sp, #20]
mov r3, r3, lsr #16
str r3, [sp, #28]
.L471:
ldr r2, [sp, #44]
ldr r3, [sp, #40]
rsb r3, r3, r2
str r3, [sp, #24]
ldr r3, [sp, #24]
cmp r3, #0
beq .L472
ldr r2, [sp, #32]
ldr r3, [sp, #28]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r4, r0
ldr r2, [sp, #44]
ldr r3, [sp, #40]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #12] @ float
ldr r2, [sp, #16]
ldr r3, [sp, #40]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
ldr r1, [sp, #12] @ float
bl __aeabi_fmul
mov r3, r0
mov r4, r3
ldr r0, [sp, #28]
bl __aeabi_i2f
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
str r3, [sp, #36] @ float
b .L473
.L472:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L473
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC117
movt r0, #:upper16:.LC117
mov r1, r3
ldr r2, .L476
movw r3, #3163
bl printk
.L473:
ldr r0, [sp, #36] @ float
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
mov r0, r3
bl __aeabi_i2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #39322
movt r2, 39321
movw r3, #39321
movt r3, 16313
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2uiz
mov r3, r0
strh r3, [sp, #10] @ movhi
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L474
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldrh r3, [sp, #10]
str r3, [sp]
movw r0, #:lower16:.LC118
movt r0, #:upper16:.LC118
mov r1, r2
ldr r2, .L476
movw r3, #3167
bl printk
.L474:
ldrh r3, [sp, #10]
mov r0, r3
add sp, sp, #48
@ sp needed
ldmfd sp!, {r4, pc}
.L477:
.align 2
.L476:
.word .LC39+61
.fnend
.size mt7570_TxPower_get_8472, .-mt7570_TxPower_get_8472
.global __aeabi_uidivmod
.align 2
.global mt7570_internal_clock
.type mt7570_internal_clock, %function
mt7570_internal_clock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
movw r3, #:lower16:internal_DDMI
movt r3, #:upper16:internal_DDMI
ldr r3, [r3]
cmp r3, #1
bne .L479
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r2, [r3]
movw r3, #:lower16:T_APD
movt r3, #:upper16:T_APD
ldr r3, [r3]
mov r0, r2
mov r1, r3
bl __aeabi_uidivmod
mov r3, r1
mov r2, r3
movw r3, #:lower16:T_APD
movt r3, #:upper16:T_APD
ldr r3, [r3]
sub r3, r3, #1
cmp r2, r3
bne .L480
movw r3, #:lower16:xPON_mode
movt r3, #:upper16:xPON_mode
ldr r3, [r3]
cmp r3, #1
bne .L480
bl mt7570_APD_control
.L480:
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r1, [r3]
movw r3, #52429
movt r3, 52428
umull r2, r3, r1, r3
mov r2, r3, lsr #3
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
rsb r2, r3, r1
cmp r2, #0
beq .L481
movw r3, #:lower16:fast_DDMI
movt r3, #:upper16:fast_DDMI
ldr r3, [r3]
cmp r3, #0
beq .L482
.L481:
bl mt7570_supply_voltage_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_voltage
movt r3, #:upper16:DDMI_voltage
strh r2, [r3] @ movhi
.L482:
bl mt7570_bias_current_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_current
movt r3, #:upper16:DDMI_current
strh r2, [r3] @ movhi
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r1, [r3]
movw r3, #52429
movt r3, 52428
umull r2, r3, r1, r3
mov r2, r3, lsr #3
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
rsb r2, r3, r1
cmp r2, #4
beq .L483
movw r3, #:lower16:fast_DDMI
movt r3, #:upper16:fast_DDMI
ldr r3, [r3]
cmp r3, #0
beq .L484
.L483:
bl mt7570_temperature_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_temperature
movt r3, #:upper16:DDMI_temperature
strh r2, [r3] @ movhi
.L484:
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r1, [r3]
movw r3, #52429
movt r3, 52428
umull r2, r3, r1, r3
mov r2, r3, lsr #3
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
rsb r2, r3, r1
cmp r2, #6
beq .L485
movw r3, #:lower16:fast_DDMI
movt r3, #:upper16:fast_DDMI
ldr r3, [r3]
cmp r3, #0
beq .L486
.L485:
bl mt7570_TxPower_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_tx_power
movt r3, #:upper16:DDMI_tx_power
strh r2, [r3] @ movhi
bl mt7570_tx_power_alarm_get
.L486:
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r1, [r3]
movw r3, #52429
movt r3, 52428
umull r2, r3, r1, r3
mov r2, r3, lsr #3
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
rsb r2, r3, r1
cmp r2, #8
beq .L487
movw r3, #:lower16:fast_DDMI
movt r3, #:upper16:fast_DDMI
ldr r3, [r3]
cmp r3, #0
beq .L479
.L487:
bl mt7570_RxPower_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_rx_power
movt r3, #:upper16:DDMI_rx_power
strh r2, [r3] @ movhi
bl mt7570_rx_power_alarm_get
.L479:
movw r3, #:lower16:SCL
movt r3, #:upper16:SCL
ldr r3, [r3]
cmp r3, #1
bne .L488
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r1, [r3]
movw r3, #51977
movt r3, 36157
umull r2, r3, r1, r3
mov r2, r3, lsr #4
mov r3, r2
mov r3, r3, asl #3
rsb r3, r2, r3
mov r3, r3, asl #2
add r3, r3, r2
rsb r2, r3, r1
cmp r2, #0
bne .L490
movw r3, #:lower16:ETC
movt r3, #:upper16:ETC
ldr r3, [r3]
cmp r3, #3
bne .L490
bl mt7570_BiasTracking
b .L490
.L488:
movw r3, #:lower16:DOL
movt r3, #:upper16:DOL
ldr r3, [r3]
cmp r3, #1
bne .L491
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r1, [r3]
movw r3, #52429
movt r3, 52428
umull r2, r3, r1, r3
mov r2, r3, lsr #2
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
rsb r2, r3, r1
cmp r2, #0
bne .L490
bl mt7570_OpenLoopControl
b .L490
.L491:
movw r3, #:lower16:xPON_mode
movt r3, #:upper16:xPON_mode
ldr r3, [r3]
cmn r3, #1
beq .L493
movw r3, #:lower16:FiberPlug
movt r3, #:upper16:FiberPlug
ldr r3, [r3]
cmp r3, #1
bne .L493
movw r3, #:lower16:PatternEnabled
movt r3, #:upper16:PatternEnabled
ldr r3, [r3]
cmp r3, #1
bne .L493
bl mt7570_FiberPlug_Protect
.L493:
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r1, [r3]
movw r3, #34953
movt r3, 34952
umull r2, r3, r1, r3
mov r2, r3, lsr #4
mov r3, r2
mov r3, r3, asl #4
rsb r3, r2, r3
mov r3, r3, asl #1
rsb r2, r3, r1
cmp r2, #29
bne .L494
movw r3, #:lower16:ETC
movt r3, #:upper16:ETC
ldr r3, [r3]
cmp r3, #1
bne .L495
bl mt7570_ERTemperatureCompensation
b .L494
.L495:
movw r3, #:lower16:ETC
movt r3, #:upper16:ETC
ldr r3, [r3]
cmp r3, #2
beq .L494
movw r3, #:lower16:ETC
movt r3, #:upper16:ETC
ldr r3, [r3]
cmp r3, #3
bne .L494
movw r3, #:lower16:PatternEnabled
movt r3, #:upper16:PatternEnabled
ldr r3, [r3]
cmp r3, #0
bne .L496
movw r3, #:lower16:BiasTracking_switch
movt r3, #:upper16:BiasTracking_switch
ldr r3, [r3]
cmp r3, #0
beq .L494
.L496:
bl mt7570_BiasTracking
.L494:
movw r3, #:lower16:TEC
movt r3, #:upper16:TEC
ldr r3, [r3]
cmp r3, #0
beq .L490
movw r3, #:lower16:TEC_switch
movt r3, #:upper16:TEC_switch
ldr r3, [r3]
cmp r3, #1
bne .L490
bl mt7570_TxEyeCorrection
.L490:
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r1, [r3]
movw r3, #34953
movt r3, 34952
umull r2, r3, r1, r3
mov r2, r3, lsr #6
mov r3, r2
mov r3, r3, asl #4
rsb r3, r2, r3
mov r3, r3, asl #3
rsb r2, r3, r1
cmp r2, #119
bne .L497
movw r3, #:lower16:xPON_mode
movt r3, #:upper16:xPON_mode
ldr r3, [r3]
cmn r3, #1
beq .L497
bl mt7570_ADC_calibration
.L497:
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
ldr r3, [r3]
add r2, r3, #1
movw r3, #:lower16:cnt7570
movt r3, #:upper16:cnt7570
str r2, [r3]
ldmfd sp!, {r3, pc}
.fnend
.size mt7570_internal_clock, .-mt7570_internal_clock
.align 2
.global mt7570_param_status_real
.type mt7570_param_status_real, %function
mt7570_param_status_real:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
.pad #8
sub sp, sp, #8
str r0, [sp, #4]
movw r3, #:lower16:DDMI_temperature
movt r3, #:upper16:DDMI_temperature
ldrh r2, [r3]
ldr r3, [sp, #4]
strh r2, [r3] @ movhi
movw r3, #:lower16:DDMI_voltage
movt r3, #:upper16:DDMI_voltage
ldrh r2, [r3]
ldr r3, [sp, #4]
strh r2, [r3, #2] @ movhi
movw r3, #:lower16:DDMI_current
movt r3, #:upper16:DDMI_current
ldrh r2, [r3]
ldr r3, [sp, #4]
strh r2, [r3, #4] @ movhi
movw r3, #:lower16:DDMI_tx_power
movt r3, #:upper16:DDMI_tx_power
ldrh r2, [r3]
ldr r3, [sp, #4]
strh r2, [r3, #6] @ movhi
movw r3, #:lower16:DDMI_rx_power
movt r3, #:upper16:DDMI_rx_power
ldrh r2, [r3]
ldr r3, [sp, #4]
strh r2, [r3, #8] @ movhi
add sp, sp, #8
@ sp needed
bx lr
.fnend
.size mt7570_param_status_real, .-mt7570_param_status_real
.section .rodata.str1.4
.align 2
.LC119:
.ascii "Supply Voltage = %05d\012\000"
.align 2
.LC120:
.ascii "Tx Bias Current = %05d\012\000"
.align 2
.LC121:
.ascii "Temperature = %05d\012\000"
.align 2
.LC122:
.ascii "Tx power = %05d\012\000"
.align 2
.LC123:
.ascii "Rx Power = %05d\012\000"
.text
.align 2
.global DDMI_check_8472
.type DDMI_check_8472, %function
DDMI_check_8472:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
bl mt7570_supply_voltage_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_voltage
movt r3, #:upper16:DDMI_voltage
strh r2, [r3] @ movhi
bl mt7570_bias_current_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_current
movt r3, #:upper16:DDMI_current
strh r2, [r3] @ movhi
bl mt7570_temperature_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_temperature
movt r3, #:upper16:DDMI_temperature
strh r2, [r3] @ movhi
bl mt7570_TxPower_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_tx_power
movt r3, #:upper16:DDMI_tx_power
strh r2, [r3] @ movhi
bl mt7570_RxPower_get_8472
mov r3, r0
mov r2, r3
movw r3, #:lower16:DDMI_rx_power
movt r3, #:upper16:DDMI_rx_power
strh r2, [r3] @ movhi
movw r3, #:lower16:DDMI_voltage
movt r3, #:upper16:DDMI_voltage
ldrh r3, [r3]
movw r0, #:lower16:.LC119
movt r0, #:upper16:.LC119
mov r1, r3
bl printk
movw r3, #:lower16:DDMI_current
movt r3, #:upper16:DDMI_current
ldrh r3, [r3]
movw r0, #:lower16:.LC120
movt r0, #:upper16:.LC120
mov r1, r3
bl printk
movw r3, #:lower16:DDMI_temperature
movt r3, #:upper16:DDMI_temperature
ldrh r3, [r3]
movw r0, #:lower16:.LC121
movt r0, #:upper16:.LC121
mov r1, r3
bl printk
movw r3, #:lower16:DDMI_tx_power
movt r3, #:upper16:DDMI_tx_power
ldrh r3, [r3]
movw r0, #:lower16:.LC122
movt r0, #:upper16:.LC122
mov r1, r3
bl printk
movw r3, #:lower16:DDMI_rx_power
movt r3, #:upper16:DDMI_rx_power
ldrh r3, [r3]
movw r0, #:lower16:.LC123
movt r0, #:upper16:.LC123
mov r1, r3
bl printk
ldmfd sp!, {r3, pc}
.fnend
.size DDMI_check_8472, .-DDMI_check_8472
.align 2
.global mt7570_trans_model_setting
.type mt7570_trans_model_setting, %function
mt7570_trans_model_setting:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #12
sub sp, sp, #12
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
movw r2, #271
str r2, [r3, #208]
movw r3, #:lower16:i2c_access_queue
movt r3, #:upper16:i2c_access_queue
ldr r3, [r3]
cmp r3, #0
beq .L500
movw r3, #:lower16:i2c_access_queue
movt r3, #:upper16:i2c_access_queue
ldr r3, [r3]
str r3, [sp, #4]
movw r3, #:lower16:work_mt7570_safe_circuit_reset
movt r3, #:upper16:work_mt7570_safe_circuit_reset
str r3, [sp]
mov r0, #2
ldr r1, [sp, #4]
ldr r2, [sp]
bl queue_work_on
.L500:
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_trans_model_setting, .-mt7570_trans_model_setting
.section .rodata.str1.4
.align 2
.LC124:
.ascii "[%lu0ms][%s:%d] rx power high alarm threshold: %.8x"
.ascii "\012\000"
.align 2
.LC125:
.ascii "[%lu0ms][%s:%d] rx power low alarm threshold: %.8x\012"
.ascii "\000"
.align 2
.LC126:
.ascii "[%lu0ms][%s:%d] tx power high alarm threshold: %.8x"
.ascii "\012\000"
.text
.align 2
.global mt7570_trans_alarm_getting
.type mt7570_trans_alarm_getting, %function
mt7570_trans_alarm_getting:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #20
sub sp, sp, #20
str r0, [sp, #12]
ldr r3, [sp, #12]
mov r2, #0
strh r2, [r3] @ movhi
ldr r3, [sp, #12]
mov r2, #0
strh r2, [r3, #2] @ movhi
ldr r3, [sp, #12]
mov r2, #0
strh r2, [r3, #4] @ movhi
ldr r3, [sp, #12]
mov r2, #0
strh r2, [r3, #6] @ movhi
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L504
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #12]
ldrh r3, [r3]
str r3, [sp]
movw r0, #:lower16:.LC124
movt r0, #:upper16:.LC124
mov r1, r2
ldr r2, .L508
movw r3, #3375
bl printk
.L504:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L505
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #12]
ldrh r3, [r3, #2]
str r3, [sp]
movw r0, #:lower16:.LC125
movt r0, #:upper16:.LC125
mov r1, r2
ldr r2, .L508
mov r3, #3376
bl printk
.L505:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L506
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #12]
ldrh r3, [r3, #4]
str r3, [sp]
movw r0, #:lower16:.LC126
movt r0, #:upper16:.LC126
mov r1, r2
ldr r2, .L508
movw r3, #3377
bl printk
.L506:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L503
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #12]
ldrh r3, [r3, #6]
str r3, [sp]
movw r0, #:lower16:.LC125
movt r0, #:upper16:.LC125
mov r1, r2
ldr r2, .L508
movw r3, #3378
bl printk
.L503:
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L509:
.align 2
.L508:
.word .LC39+61
.fnend
.size mt7570_trans_alarm_getting, .-mt7570_trans_alarm_getting
.align 2
.global mt7570_tx_power_alarm_get
.type mt7570_tx_power_alarm_get, %function
mt7570_tx_power_alarm_get:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
movw r3, #:lower16:DDMI_tx_power
movt r3, #:upper16:DDMI_tx_power
ldrh r3, [r3]
movw r2, #9999
cmp r3, r2
bhi .L511
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
orr r2, r3, #2
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
b .L512
.L511:
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
bic r2, r3, #2
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
.L512:
movw r3, #:lower16:DDMI_tx_power
movt r3, #:upper16:DDMI_tx_power
ldrh r3, [r3]
movw r2, #35481
cmp r3, r2
bls .L513
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
orr r2, r3, #1
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
b .L514
.L513:
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
bic r2, r3, #1
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
.L514:
movw r3, #:lower16:DDMI_current
movt r3, #:upper16:DDMI_current
ldrh r3, [r3]
cmp r3, #500
bcs .L515
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
orr r2, r3, #8
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
b .L516
.L515:
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
bic r2, r3, #8
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
.L516:
movw r3, #:lower16:DDMI_current
movt r3, #:upper16:DDMI_current
ldrh r3, [r3]
movw r2, #50000
cmp r3, r2
bls .L517
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
orr r2, r3, #4
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
b .L510
.L517:
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
bic r2, r3, #4
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
.L510:
bx lr
.fnend
.size mt7570_tx_power_alarm_get, .-mt7570_tx_power_alarm_get
.align 2
.global mt7570_rx_power_alarm_get
.type mt7570_rx_power_alarm_get, %function
mt7570_rx_power_alarm_get:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
movw r3, #:lower16:DDMI_rx_power
movt r3, #:upper16:DDMI_rx_power
ldrh r3, [r3]
cmp r3, #9
bhi .L520
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
orr r2, r3, #32
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
b .L521
.L520:
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
bic r2, r3, #32
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
.L521:
movw r3, #:lower16:DDMI_rx_power
movt r3, #:upper16:DDMI_rx_power
ldrh r3, [r3]
cmp r3, #2512
bcc .L522
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
orr r2, r3, #16
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
b .L519
.L522:
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
ldr r3, [r3]
bic r2, r3, #16
movw r3, #:lower16:mt7570_alarm
movt r3, #:upper16:mt7570_alarm
str r2, [r3]
.L519:
bx lr
.fnend
.size mt7570_rx_power_alarm_get, .-mt7570_rx_power_alarm_get
.align 2
.global mt7570_EN7570_detection
.type mt7570_EN7570_detection, %function
mt7570_EN7570_detection:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #368
str r3, [sp]
add r3, sp, #23
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
cmp r3, #3
bne .L525
movw r3, #:lower16:mt7570_select
movt r3, #:upper16:mt7570_select
mov r2, #1
str r2, [r3]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #348
str r3, [sp]
add r3, sp, #23
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
mov r2, r3
movw r3, #:lower16:vEN7570
movt r3, #:upper16:vEN7570
str r2, [r3]
mov r3, #1
b .L527
.L525:
movw r3, #:lower16:mt7570_select
movt r3, #:upper16:mt7570_select
mov r2, #0
str r2, [r3]
mov r3, #0
.L527:
mov r0, r3
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_EN7570_detection, .-mt7570_EN7570_detection
.section .rodata.str1.4
.align 2
.LC127:
.ascii "%s done\012\000"
.text
.align 2
.global LOS_calibration
.type LOS_calibration, %function
LOS_calibration:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #36
sub sp, sp, #36
str r0, [sp, #20]
str r1, [sp, #16]
bl mt7570_LOS_init
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #31] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #127
uxtb r2, r3
ldr r3, [sp, #16]
uxtb r3, r3
orr r3, r2, r3
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #31]
ldrb r3, [sp, #30] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #127
uxtb r2, r3
ldr r3, [sp, #20]
uxtb r3, r3
orr r3, r2, r3
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #30]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #28
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC127
movt r0, #:upper16:.LC127
movw r1, #:lower16:__FUNCTION__.42335
movt r1, #:upper16:__FUNCTION__.42335
bl printk
add sp, sp, #36
@ sp needed
ldr pc, [sp], #4
.fnend
.size LOS_calibration, .-LOS_calibration
.section .rodata.str1.4
.align 2
.LC128:
.ascii "ERC filter set\012\000"
.text
.align 2
.global mt7570_ERC_filter
.type mt7570_ERC_filter, %function
mt7570_ERC_filter:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #364
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
mov r3, #88
strb r3, [sp, #22]
mvn r3, #88
strb r3, [sp, #21]
mvn r3, #0
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #364
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #364
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #23]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #364
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC128
movt r0, #:upper16:.LC128
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_ERC_filter, .-mt7570_ERC_filter
.section .rodata.str1.4
.align 2
.LC129:
.ascii "TIAGAIN set 0x%x\012\000"
.text
.align 2
.global mt7570_TIAGAIN_set
.type mt7570_TIAGAIN_set, %function
mt7570_TIAGAIN_set:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
mov r3, #0
str r3, [sp, #20]
mov r0, #40
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L530
mov r0, #40
bl get_flash_register
mov r3, r0
and r3, r3, #3
str r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #1
str r3, [sp]
add r3, sp, #19
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #19] @ zero_extendqisi2
and r3, r3, #63
uxtb r2, r3
ldr r3, [sp, #20]
uxtb r3, r3
mov r3, r3, asl #6
uxtb r3, r3
orr r3, r2, r3
uxtb r3, r3
strb r3, [sp, #19]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #1
str r3, [sp]
add r3, sp, #19
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC129
movt r0, #:upper16:.LC129
ldr r1, [sp, #20]
bl printk
.L530:
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_TIAGAIN_set, .-mt7570_TIAGAIN_set
.section .rodata.str1.4
.align 2
.LC130:
.ascii "LOS status = %d\012\000"
.align 2
.LC131:
.ascii "Rouge ONU status = %d\012\000"
.align 2
.LC132:
.ascii "Tx SD status = %d\012\000"
.align 2
.LC133:
.ascii "Tx fault status = %d\012\000"
.align 2
.LC134:
.ascii "I bias = %d.%.2dmA\012\000"
.align 2
.LC135:
.ascii "I mod = %d.%.2dmA\012\000"
.align 2
.LC136:
.ascii "IC temperature = %d.%dC\012\000"
.align 2
.LC137:
.ascii "BOSA temperature = %d.%dC\012\000"
.align 2
.LC138:
.ascii "Enviroment temperature = %d.%dC\012\000"
.align 2
.LC139:
.ascii "APD Voltage = %d.%dV\012\000"
.align 2
.LC140:
.ascii "VCC = %d.%.4dV\012\000"
.align 2
.LC141:
.ascii "Tx power = -40 dBm\012\000"
.align 2
.LC142:
.ascii "Tx power = %d.%.2d dBm\012\000"
.global __aeabi_fcmpge
.align 2
.LC143:
.ascii "Rx power = -40 dBm\012\000"
.align 2
.LC144:
.ascii "Rx power = %d.%.2d dBm\012\000"
.text
.align 2
.global show_BoB_information
.type show_BoB_information, %function
show_BoB_information:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #56
sub sp, sp, #56
mov r3, #0
str r3, [sp, #52] @ float
mov r3, #0
str r3, [sp, #44]
mov r3, #0
str r3, [sp, #40]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #304
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
and r3, r3, #1
uxtb r3, r3
strb r3, [sp, #23]
ldrb r3, [sp, #23] @ zero_extendqisi2
movw r0, #:lower16:.LC130
movt r0, #:upper16:.LC130
mov r1, r3
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #360
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #21] @ zero_extendqisi2
mov r3, r3, lsr #2
uxtb r3, r3
and r3, r3, #1
uxtb r3, r3
strb r3, [sp, #21]
ldrb r3, [sp, #21] @ zero_extendqisi2
movw r0, #:lower16:.LC131
movt r0, #:upper16:.LC131
mov r1, r3
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #360
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #21] @ zero_extendqisi2
mov r3, r3, lsr #3
uxtb r3, r3
and r3, r3, #1
uxtb r3, r3
strb r3, [sp, #21]
ldrb r3, [sp, #21] @ zero_extendqisi2
movw r0, #:lower16:.LC132
movt r0, #:upper16:.LC132
mov r1, r3
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #256
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #21] @ zero_extendqisi2
mov r3, r3, lsr #7
uxtb r3, r3
strb r3, [sp, #21]
ldrb r3, [sp, #21] @ zero_extendqisi2
movw r0, #:lower16:.LC133
movt r0, #:upper16:.LC133
mov r1, r3
bl printk
mov r0, #3
bl mt7570_information_output
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #10465
movt r2, 30073
movw r3, #398
movt r3, 16281
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
ldr r0, [sp, #52] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #40]
movw r0, #:lower16:.LC134
movt r0, #:upper16:.LC134
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
mov r0, #4
bl mt7570_information_output
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #4320
movt r2, 54442
movw r3, #33260
movt r3, 16278
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
ldr r0, [sp, #52] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #40]
movw r0, #:lower16:.LC135
movt r0, #:upper16:.LC135
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #36]
ldr r3, [sp, #36]
cmp r3, #0
rsblt r3, r3, #0
str r3, [sp, #40]
movw r0, #:lower16:.LC136
movt r0, #:upper16:.LC136
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
movw r3, #:lower16:BOSA_temperature
movt r3, #:upper16:BOSA_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
movw r0, #:lower16:.LC137
movt r0, #:upper16:.LC137
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
movw r3, #:lower16:Env_temperature
movt r3, #:upper16:Env_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
movw r3, #:lower16:Env_temperature
movt r3, #:upper16:Env_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #32]
ldr r3, [sp, #32]
cmp r3, #0
rsblt r3, r3, #0
str r3, [sp, #40]
movw r0, #:lower16:.LC138
movt r0, #:upper16:.LC138
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
movw r3, #:lower16:APD_voltage
movt r3, #:upper16:APD_voltage
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #40]
movw r0, #:lower16:.LC139
movt r0, #:upper16:.LC139
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
movw r3, #:lower16:global_supply_voltage_8472
movt r3, #:upper16:global_supply_voltage_8472
ldrh r2, [r3]
movw r3, #5977
movt r3, 53687
umull r2, r3, r2, r3
mov r3, r3, lsr #13
uxth r3, r3
str r3, [sp, #44]
movw r3, #:lower16:global_supply_voltage_8472
movt r3, #:upper16:global_supply_voltage_8472
ldrh r1, [r3]
movw r3, #5977
movt r3, 53687
umull r2, r3, r1, r3
mov r3, r3, lsr #13
movw r2, #10000
mul r3, r2, r3
rsb r3, r3, r1
uxth r3, r3
str r3, [sp, #40]
movw r0, #:lower16:.LC140
movt r0, #:upper16:.LC140
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
movw r3, #:lower16:DDMI_tx_power
movt r3, #:upper16:DDMI_tx_power
ldrh r3, [r3]
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 17530
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
mov r1, #0
bl __aeabi_fcmpeq
mov r3, r0
cmp r3, #0
beq .L548
movw r0, #:lower16:.LC141
movt r0, #:upper16:.LC141
bl printk
b .L535
.L548:
ldr r0, [sp, #52] @ float
mov r1, #1065353216
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #1073741824
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16448
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16512
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16544
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16576
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #35189
movt r2, 48053
movw r3, #27569
movt r3, 16386
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
ldr r0, [sp, #52] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #28]
ldr r3, [sp, #28]
cmp r3, #0
rsblt r3, r3, #0
str r3, [sp, #40]
movw r0, #:lower16:.LC142
movt r0, #:upper16:.LC142
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
.L535:
movw r3, #:lower16:DDMI_rx_power
movt r3, #:upper16:DDMI_rx_power
ldrh r3, [r3]
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
str r3, [sp, #52] @ float
mov r3, #0
str r3, [sp, #48]
b .L536
.L541:
ldr r0, [sp, #52] @ float
mov r1, #0
movt r1, 16544
bl __aeabi_fcmpge
mov r3, r0
cmp r3, #0
bne .L546
b .L540
.L546:
ldr r0, [sp, #52] @ float
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #52] @ float
ldr r3, [sp, #48]
add r3, r3, #1
str r3, [sp, #48]
.L536:
ldr r3, [sp, #48]
cmp r3, #6
ble .L541
.L540:
ldr r0, [sp, #52] @ float
mov r1, #0
bl __aeabi_fcmpeq
mov r3, r0
cmp r3, #0
beq .L549
movw r0, #:lower16:.LC143
movt r0, #:upper16:.LC143
bl printk
b .L532
.L549:
ldr r0, [sp, #52] @ float
mov r1, #1065353216
bl __aeabi_fsub
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #1073741824
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16448
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16512
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16544
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16576
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16608
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r4, r3
ldr r0, [sp, #52] @ float
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
ldr r1, [sp, #52] @ float
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #1090519040
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #35189
movt r2, 48053
movw r3, #27569
movt r3, 16386
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #52] @ float
ldr r3, [sp, #48]
rsb r3, r3, #4
mov r0, r3
bl __aeabi_i2f
mov r3, r0
ldr r0, [sp, #52] @ float
mov r1, r3
bl __aeabi_fsub
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
str r3, [sp, #52] @ float
ldr r0, [sp, #52] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
ldr r0, [sp, #52] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #24]
ldr r3, [sp, #24]
cmp r3, #0
rsblt r3, r3, #0
str r3, [sp, #40]
movw r0, #:lower16:.LC144
movt r0, #:upper16:.LC144
ldr r1, [sp, #44]
ldr r2, [sp, #40]
bl printk
.L532:
add sp, sp, #56
@ sp needed
ldmfd sp!, {r4, pc}
.fnend
.size show_BoB_information, .-show_BoB_information
.section .rodata.str1.4
.align 2
.LC145:
.ascii "TEC done\012\000"
.text
.align 2
.global mt7570_TxEyeCorrection
.type mt7570_TxEyeCorrection, %function
mt7570_TxEyeCorrection:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
mov r3, #0
str r3, [sp, #20]
movw r3, #:lower16:TEC_cnt.42409
movt r3, #:upper16:TEC_cnt.42409
ldr r3, [r3]
cmp r3, #7
bgt .L550
movw r3, #:lower16:global_bias_current_8472
movt r3, #:upper16:global_bias_current_8472
ldrh r3, [r3]
mov r3, r3, asl #1
mov r2, r3
movw r3, #:lower16:BOSA_Ith
movt r3, #:upper16:BOSA_Ith
ldr r3, [r3]
cmp r2, r3
bcs .L550
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
and r3, r3, #15
cmp r3, #5
bne .L550
mov r0, #5
bl mt7570_information_output
mov r3, r0
add r3, r3, #4
str r3, [sp, #20]
ldr r3, [sp, #20]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #20]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #6
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
bl mt7570_restart_ERC_P0
movw r0, #:lower16:.LC145
movt r0, #:upper16:.LC145
bl printk
movw r3, #:lower16:TEC_cnt.42409
movt r3, #:upper16:TEC_cnt.42409
ldr r3, [r3]
add r2, r3, #1
movw r3, #:lower16:TEC_cnt.42409
movt r3, #:upper16:TEC_cnt.42409
str r2, [r3]
.L550:
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_TxEyeCorrection, .-mt7570_TxEyeCorrection
.section .rodata.str1.4
.align 2
.LC146:
.ascii "Switch to Open-Loop Mode\012\000"
.text
.align 2
.global mt7570_OpenLoopMode
.type mt7570_OpenLoopMode, %function
mt7570_OpenLoopMode:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #3
uxtb r3, r3
orr r3, r3, #2
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #3
uxtb r3, r3
orr r3, r3, #2
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC146
movt r0, #:upper16:.LC146
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_OpenLoopMode, .-mt7570_OpenLoopMode
.section .rodata.str1.4
.align 2
.LC147:
.ascii "tempature %d degree save done\012\000"
.align 2
.LC148:
.ascii "Ibias current = %d.%.2dmA \012\000"
.text
.align 2
.global Ibias_temperature_set
.type Ibias_temperature_set, %function
Ibias_temperature_set:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #44
sub sp, sp, #44
mov r3, #0
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #24] @ float
bl mt7570_temperature_get
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #36]
mov r0, #96
bl get_flash_register
str r0, [sp, #28]
ldr r3, [sp, #28]
mov r3, r3, lsr #16
mov r3, r3, asl #16
ldr r2, [sp, #36]
orr r3, r3, r2
str r3, [sp, #28]
ldr r3, [sp, #28]
mov r0, r3
mov r1, #96
bl set_flash_register
movw r0, #:lower16:.LC147
movt r0, #:upper16:.LC147
ldr r1, [sp, #36]
bl printk
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #312
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
mov r0, #96
bl get_flash_register
str r0, [sp, #28]
ldr r3, [sp, #28]
uxth r2, r3
ldrb r3, [sp, #20] @ zero_extendqisi2
mov r3, r3, asl #16
orr r2, r2, r3
ldrb r3, [sp, #21] @ zero_extendqisi2
mov r3, r3, asl #24
orr r3, r2, r3
str r3, [sp, #28]
ldr r3, [sp, #28]
mov r0, r3
mov r1, #96
bl set_flash_register
mov r0, #3
bl mt7570_information_output
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #10465
movt r2, 30073
movw r3, #398
movt r3, 16281
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #24] @ float
ldr r0, [sp, #24] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #36]
ldr r0, [sp, #24] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #32]
movw r0, #:lower16:.LC148
movt r0, #:upper16:.LC148
ldr r1, [sp, #36]
ldr r2, [sp, #32]
bl printk
add sp, sp, #44
@ sp needed
ldr pc, [sp], #4
.fnend
.size Ibias_temperature_set, .-Ibias_temperature_set
.section .rodata.str1.4
.align 2
.LC149:
.ascii "Switch to Dual Closed-Loop Mode\012\000"
.text
.align 2
.global mt7570_DualClosedLoopMode
.type mt7570_DualClosedLoopMode, %function
mt7570_DualClosedLoopMode:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #3
uxtb r3, r3
orr r3, r3, #1
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #3
uxtb r3, r3
orr r3, r3, #1
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC149
movt r0, #:upper16:.LC149
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_DualClosedLoopMode, .-mt7570_DualClosedLoopMode
.section .rodata.str1.4
.align 2
.LC150:
.ascii "V_ADC = 0x%x\012\000"
.text
.align 2
.global mt7570_Vtemp_ADC_get
.type mt7570_Vtemp_ADC_get, %function
mt7570_Vtemp_ADC_get:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #12
sub sp, sp, #12
bl mt7570_ADC_temperature_get
movw r3, #:lower16:global_temperature_code
movt r3, #:upper16:global_temperature_code
ldr r3, [r3]
mov r0, r3
bl __aeabi_i2f
mov r2, r0
movw r3, #:lower16:ADC_slope
movt r3, #:upper16:ADC_slope
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r2, r3
movw r3, #:lower16:ADC_offset
movt r3, #:upper16:ADC_offset
ldr r3, [r3] @ float
mov r0, r2
mov r1, r3
bl __aeabi_fadd
mov r3, r0
str r3, [sp, #4] @ float
ldr r0, [sp, #4] @ float
mov r1, #16384
movt r1, 17948
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
movw r0, #:lower16:.LC150
movt r0, #:upper16:.LC150
mov r1, r3
bl printk
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_Vtemp_ADC_get, .-mt7570_Vtemp_ADC_get
.section .rodata.str1.4
.align 2
.LC151:
.ascii "Ibias output lower\012\000"
.align 2
.LC152:
.ascii "ETC\012\000"
.text
.align 2
.global mt7570_ERTemperatureCompensation
.type mt7570_ERTemperatureCompensation, %function
mt7570_ERTemperatureCompensation:
.fnstart
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
.pad #52
sub sp, sp, #52
mov r3, #0
str r3, [sp, #20]
mov r3, #40
str r3, [sp, #44]
mov r3, #0
str r3, [sp, #40]
mov r3, #0
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #24]
movw r3, #:lower16:SCL
movt r3, #:upper16:SCL
ldr r3, [r3]
cmp r3, #1
beq .L559
movw r3, #:lower16:DOL
movt r3, #:upper16:DOL
ldr r3, [r3]
cmp r3, #1
bne .L560
.L559:
b .L558
.L560:
movw r3, #:lower16:TEC
movt r3, #:upper16:TEC
ldr r3, [r3]
cmp r3, #0
beq .L562
movw r3, #:lower16:TEC_switch
movt r3, #:upper16:TEC_switch
ldr r3, [r3]
cmp r3, #1
bne .L562
movw r3, #:lower16:Ibias_outputlow_flag
movt r3, #:upper16:Ibias_outputlow_flag
ldr r3, [r3]
cmp r3, #1
bne .L563
movw r0, #:lower16:.LC151
movt r0, #:upper16:.LC151
bl printk
b .L558
.L563:
b .L564
.L562:
movw r3, #:lower16:Ibias_outputlow_flag
movt r3, #:upper16:Ibias_outputlow_flag
mov r2, #0
str r2, [r3]
.L564:
movw r0, #:lower16:.LC152
movt r0, #:upper16:.LC152
bl printk
mov r0, #96
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L565
mov r0, #96
bl get_flash_register
mov r3, r0
uxtb r3, r3
str r3, [sp, #44]
.L565:
mov r0, #100
bl get_flash_register
mov r3, r0
uxtb r3, r3
cmp r3, #255
beq .L566
mov r0, #100
bl get_flash_register
mov r3, r0
uxtb r3, r3
str r3, [sp, #36]
.L566:
mov r0, #100
bl get_flash_register
mov r3, r0
mov r3, r3, asr #8
uxtb r3, r3
cmp r3, #255
beq .L567
mov r0, #100
bl get_flash_register
mov r3, r0
mov r3, r3, asr #8
uxtb r3, r3
str r3, [sp, #32]
.L567:
mov r0, #100
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
uxtb r3, r3
cmp r3, #255
beq .L568
mov r0, #100
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
uxtb r3, r3
str r3, [sp, #28]
.L568:
mov r0, #100
bl get_flash_register
mov r3, r0
mov r3, r3, lsr #24
cmp r3, #255
beq .L569
mov r0, #100
bl get_flash_register
mov r3, r0
mov r3, r3, lsr #24
str r3, [sp, #24]
.L569:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
cmp r2, r3
ble .L570
ldr r2, [sp, #36]
ldr r3, [sp, #32]
add r3, r2, r3
cmp r3, #0
beq .L570
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
add r3, r3, #25
cmp r2, r3
ble .L571
ldr r3, [sp, #36]
str r3, [sp, #40]
b .L572
.L571:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2d
mov r4, r0
mov r5, r1
ldr r0, [sp, #36]
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16441
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r4
mov r1, r5
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2iz
mov r3, r0
str r3, [sp, #40]
.L572:
mov r0, #8
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
str r3, [sp, #20]
ldr r3, [sp, #40]
ldr r2, [sp, #20]
add r3, r2, r3
str r3, [sp, #20]
ldr r3, [sp, #20]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #20]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #6
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
add r3, r3, #25
cmp r2, r3
ble .L573
ldr r3, [sp, #32]
str r3, [sp, #40]
b .L574
.L573:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2d
mov r4, r0
mov r5, r1
ldr r0, [sp, #32]
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16441
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r4
mov r1, r5
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2iz
mov r3, r0
str r3, [sp, #40]
.L574:
mov r0, #12
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
str r3, [sp, #20]
ldr r3, [sp, #40]
ldr r2, [sp, #20]
add r3, r2, r3
str r3, [sp, #20]
ldr r3, [sp, #20]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #20]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
bl mt7570_TxSD_level_set
b .L575
.L570:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
sub r3, r3, #20
cmp r2, r3
bge .L576
ldr r2, [sp, #28]
ldr r3, [sp, #24]
add r3, r2, r3
cmp r3, #0
beq .L576
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
sub r3, r3, #30
cmp r2, r3
bge .L577
ldr r3, [sp, #28]
rsb r3, r3, #0
str r3, [sp, #40]
b .L578
.L577:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
rsb r3, r3, #20
add r3, r2, r3
mov r0, r3
bl __aeabi_i2d
mov r4, r0
mov r5, r1
ldr r0, [sp, #28]
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16420
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r4
mov r1, r5
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2iz
mov r3, r0
str r3, [sp, #40]
.L578:
mov r0, #8
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
str r3, [sp, #20]
ldr r3, [sp, #40]
ldr r2, [sp, #20]
add r3, r2, r3
str r3, [sp, #20]
ldr r3, [sp, #20]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #20]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #6
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
sub r3, r3, #30
cmp r2, r3
bge .L579
ldr r3, [sp, #24]
rsb r3, r3, #0
str r3, [sp, #40]
b .L580
.L579:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #44]
rsb r3, r3, #20
add r3, r2, r3
mov r0, r3
bl __aeabi_i2d
mov r4, r0
mov r5, r1
ldr r0, [sp, #24]
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16420
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r4
mov r1, r5
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2iz
mov r3, r0
str r3, [sp, #40]
.L580:
mov r0, #12
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
str r3, [sp, #20]
ldr r3, [sp, #40]
ldr r2, [sp, #20]
add r3, r2, r3
str r3, [sp, #20]
ldr r3, [sp, #20]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #20]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
bl mt7570_TxSD_level_set
b .L575
.L576:
mov r0, #12
bl get_flash_register
mov r3, r0
ubfx r4, r3, #0, #10
mov r0, #8
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
mov r3, r3, asl #16
orr r3, r4, r3
str r3, [sp, #20]
ldr r3, [sp, #20]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #20]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #6
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
ldr r3, [sp, #20]
mov r3, r3, lsr #16
uxtb r3, r3
strb r3, [sp, #18]
ldr r3, [sp, #20]
mov r3, r3, lsr #24
uxtb r3, r3
strb r3, [sp, #19]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
bl mt7570_TxSD_level_set
b .L558
.L575:
.L558:
add sp, sp, #52
@ sp needed
ldmfd sp!, {r4, r5, pc}
.fnend
.size mt7570_ERTemperatureCompensation, .-mt7570_ERTemperatureCompensation
.section .rodata.str1.4
.align 2
.LC153:
.ascii "SOL wrong flash setting \012\000"
.align 2
.LC154:
.ascii "SOL Ibias equal to 0 , not correct \012\000"
.align 2
.LC155:
.ascii "turning point range error\012\000"
.align 2
.LC156:
.ascii "Calibration tempature too lower , Wrong setting \012"
.ascii "\000"
.align 2
.LC157:
.ascii "SOL mode, Ibias = %d.%.2dmA\000"
.text
.align 2
.global SOL_mt7570_ERTemperatureCompensation
.type SOL_mt7570_ERTemperatureCompensation, %function
SOL_mt7570_ERTemperatureCompensation:
.fnstart
@ args = 0, pretend = 0, frame = 96
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
.pad #116
sub sp, sp, #116
mov r3, #0
str r3, [sp, #108]
mov r3, #40
str r3, [sp, #104]
mov r3, #0
str r3, [sp, #100]
mov r3, #0
str r3, [sp, #44] @ float
mov r3, #0
str r3, [sp, #96]
mov r3, #0
str r3, [sp, #92]
mov r3, #0
str r3, [sp, #88]
mov r3, #0
str r3, [sp, #84]
mov r3, #0
str r3, [sp, #80]
mov r3, #0
str r3, [sp, #76]
mov r3, #0
str r3, [sp, #40]
mov r3, #0
str r3, [sp, #72]
mov r3, #0
str r3, [sp, #68]
mov r3, #0
str r3, [sp, #64]
mov r3, #0
str r3, [sp, #60]
mov r3, #0
str r3, [sp, #56]
mov r3, #0
str r3, [sp, #52]
mov r3, #0
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #48]
mov r0, #96
bl get_flash_register
mov r4, r0
mov r0, #112
bl get_flash_register
mov r3, r0
orr r4, r4, r3
mov r0, #116
bl get_flash_register
mov r3, r0
orr r4, r4, r3
mov r0, #12
bl get_flash_register
mov r3, r0
orr r3, r4, r3
cmn r3, #1
bne .L583
movw r0, #:lower16:.LC153
movt r0, #:upper16:.LC153
bl printk
b .L582
.L583:
mov r0, #96
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L585
mov r0, #96
bl get_flash_register
mov r3, r0
uxtb r3, r3
str r3, [sp, #104]
.L585:
mov r0, #112
bl get_flash_register
mov r3, r0
uxtb r3, r3
cmp r3, #255
beq .L586
mov r0, #112
bl get_flash_register
mov r3, r0
uxtb r3, r3
str r3, [sp, #96]
.L586:
mov r0, #112
bl get_flash_register
mov r3, r0
mov r3, r3, asr #8
uxtb r3, r3
cmp r3, #255
beq .L587
mov r0, #112
bl get_flash_register
mov r3, r0
mov r3, r3, asr #8
uxtb r3, r3
str r3, [sp, #92]
.L587:
mov r0, #112
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
uxtb r3, r3
cmp r3, #255
beq .L588
mov r0, #112
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
uxtb r3, r3
str r3, [sp, #88]
.L588:
mov r0, #116
bl get_flash_register
mov r3, r0
uxtb r3, r3
cmp r3, #255
beq .L589
mov r0, #116
bl get_flash_register
mov r3, r0
uxtb r3, r3
str r3, [sp, #72]
.L589:
mov r0, #116
bl get_flash_register
mov r3, r0
mov r3, r3, asr #8
uxtb r3, r3
cmp r3, #255
beq .L590
mov r0, #116
bl get_flash_register
mov r3, r0
mov r3, r3, asr #8
uxtb r3, r3
str r3, [sp, #68]
.L590:
mov r0, #116
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
uxtb r3, r3
cmp r3, #255
beq .L591
mov r0, #116
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
uxtb r3, r3
str r3, [sp, #64]
.L591:
mov r0, #116
bl get_flash_register
mov r3, r0
mov r3, r3, lsr #24
cmp r3, #255
beq .L592
mov r0, #116
bl get_flash_register
mov r3, r0
mov r3, r3, lsr #24
str r3, [sp, #60]
.L592:
mov r0, #96
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
ubfx r3, r3, #0, #12
movw r2, #4095
cmp r3, r2
beq .L593
mov r0, #96
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
ubfx r3, r3, #0, #12
str r3, [sp, #40]
mov r0, #120
bl get_flash_register
mov r3, r0
uxtb r3, r3
cmp r3, #255
beq .L596
b .L621
.L593:
movw r0, #:lower16:.LC154
movt r0, #:upper16:.LC154
bl printk
b .L582
.L621:
mov r0, #120
bl get_flash_register
mov r3, r0
uxtb r3, r3
str r3, [sp, #52]
.L596:
mov r0, #120
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
uxtb r3, r3
cmp r3, #255
beq .L597
mov r0, #120
bl get_flash_register
mov r3, r0
mov r3, r3, asr #16
uxtb r3, r3
str r3, [sp, #56]
.L597:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #104]
cmp r2, r3
ble .L598
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
cmp r3, #60
ble .L599
ldr r3, [sp, #56]
str r3, [sp, #100]
b .L600
.L599:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #104]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r4, r0
ldr r0, [sp, #56]
bl __aeabi_ui2f
mov r5, r0
ldr r3, [sp, #104]
rsb r3, r3, #60
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #100]
.L600:
mov r0, #12
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
str r3, [sp, #108]
ldr r3, [sp, #100]
ldr r2, [sp, #108]
add r3, r2, r3
str r3, [sp, #108]
ldr r3, [sp, #108]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #108]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
bl mt7570_TxSD_level_set
b .L601
.L598:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #104]
cmp r2, r3
bge .L602
mov r0, #12
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
str r3, [sp, #108]
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
cmn r3, #10
bge .L603
ldr r3, [sp, #52]
str r3, [sp, #100]
ldr r3, [sp, #100]
ldr r2, [sp, #108]
rsb r3, r3, r2
str r3, [sp, #108]
b .L604
.L603:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
cmp r3, #0
bge .L605
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #28]
ldr r3, [sp, #28]
eor r2, r3, r3, asr #31
sub r2, r2, r3, asr #31
ldr r3, [sp, #104]
add r3, r2, r3
mov r0, r3
bl __aeabi_i2f
mov r4, r0
ldr r0, [sp, #52]
bl __aeabi_ui2f
mov r5, r0
ldr r3, [sp, #104]
add r3, r3, #10
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #100]
ldr r3, [sp, #100]
ldr r2, [sp, #108]
rsb r3, r3, r2
str r3, [sp, #108]
b .L604
.L605:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #104]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_i2f
mov r4, r0
ldr r0, [sp, #52]
bl __aeabi_ui2f
mov r5, r0
ldr r3, [sp, #104]
add r3, r3, #10
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #100]
ldr r3, [sp, #100]
ldr r2, [sp, #108]
add r3, r2, r3
str r3, [sp, #108]
.L604:
ldr r3, [sp, #108]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #108]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
bl mt7570_TxSD_level_set
b .L601
.L602:
mov r0, #12
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #10
str r3, [sp, #108]
ldr r3, [sp, #108]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #108]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #4
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
bl mt7570_TxSD_level_set
.L601:
ldr r2, [sp, #92]
ldr r3, [sp, #96]
cmp r2, r3
blt .L606
ldr r2, [sp, #92]
ldr r3, [sp, #88]
cmp r2, r3
ble .L607
.L606:
movw r0, #:lower16:.LC155
movt r0, #:upper16:.LC155
bl printk
b .L582
.L607:
ldr r2, [sp, #104]
ldr r3, [sp, #92]
cmp r2, r3
ble .L608
ldr r2, [sp, #104]
ldr r3, [sp, #88]
cmp r2, r3
bge .L608
ldr r2, [sp, #104]
ldr r3, [sp, #92]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #64]
mul r3, r3, r2
ldr r2, [sp, #40]
rsb r3, r3, r2
str r3, [sp, #80]
ldr r2, [sp, #88]
ldr r3, [sp, #104]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #64]
mul r2, r3, r2
ldr r3, [sp, #40]
add r3, r2, r3
str r3, [sp, #76]
ldr r2, [sp, #80]
ldr r1, [sp, #92]
ldr r3, [sp, #96]
rsb r3, r3, r1
mov r1, r3
ldr r3, [sp, #68]
mul r3, r3, r1
rsb r3, r3, r2
str r3, [sp, #84]
b .L609
.L608:
ldr r2, [sp, #92]
ldr r3, [sp, #104]
cmp r2, r3
ble .L610
ldr r2, [sp, #104]
ldr r3, [sp, #96]
cmp r2, r3
ble .L610
ldr r2, [sp, #92]
ldr r3, [sp, #104]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #68]
mul r2, r3, r2
ldr r3, [sp, #40]
add r3, r2, r3
str r3, [sp, #80]
ldr r2, [sp, #104]
ldr r3, [sp, #96]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #68]
mul r3, r3, r2
ldr r2, [sp, #40]
rsb r3, r3, r2
str r3, [sp, #84]
ldr r2, [sp, #88]
ldr r3, [sp, #92]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #64]
mul r2, r3, r2
ldr r3, [sp, #80]
add r3, r2, r3
str r3, [sp, #76]
b .L609
.L610:
ldr r2, [sp, #92]
ldr r3, [sp, #104]
cmp r2, r3
bne .L611
ldr r3, [sp, #40]
str r3, [sp, #80]
ldr r2, [sp, #80]
ldr r1, [sp, #92]
ldr r3, [sp, #96]
rsb r3, r3, r1
mov r1, r3
ldr r3, [sp, #68]
mul r3, r3, r1
rsb r3, r3, r2
str r3, [sp, #84]
ldr r2, [sp, #88]
ldr r3, [sp, #92]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #64]
mul r2, r3, r2
ldr r3, [sp, #80]
add r3, r2, r3
str r3, [sp, #76]
b .L609
.L611:
ldr r2, [sp, #88]
ldr r3, [sp, #104]
cmp r2, r3
bne .L612
ldr r3, [sp, #40]
str r3, [sp, #76]
ldr r2, [sp, #88]
ldr r3, [sp, #92]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #64]
mul r3, r3, r2
ldr r2, [sp, #40]
rsb r3, r3, r2
str r3, [sp, #80]
ldr r2, [sp, #80]
ldr r1, [sp, #92]
ldr r3, [sp, #96]
rsb r3, r3, r1
mov r1, r3
ldr r3, [sp, #68]
mul r3, r3, r1
rsb r3, r3, r2
str r3, [sp, #84]
b .L609
.L612:
ldr r2, [sp, #104]
ldr r3, [sp, #88]
cmp r2, r3
ble .L613
ldr r2, [sp, #104]
ldr r3, [sp, #88]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #60]
mul r3, r3, r2
ldr r2, [sp, #40]
rsb r3, r3, r2
str r3, [sp, #76]
ldr r2, [sp, #88]
ldr r3, [sp, #92]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #64]
mul r3, r3, r2
ldr r2, [sp, #40]
rsb r3, r3, r2
str r3, [sp, #80]
ldr r2, [sp, #80]
ldr r1, [sp, #92]
ldr r3, [sp, #96]
rsb r3, r3, r1
mov r1, r3
ldr r3, [sp, #68]
mul r3, r3, r1
rsb r3, r3, r2
str r3, [sp, #84]
b .L609
.L613:
ldr r2, [sp, #104]
ldr r3, [sp, #96]
cmp r2, r3
bgt .L609
movw r0, #:lower16:.LC156
movt r0, #:upper16:.LC156
bl printk
b .L582
.L609:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #88]
cmp r2, r3
blt .L614
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #88]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #60]
mul r2, r3, r2
ldr r3, [sp, #76]
add r3, r2, r3
str r3, [sp, #48]
b .L615
.L614:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #92]
cmp r2, r3
movge r3, #1
movlt r3, #0
uxtb r4, r3
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #88]
cmp r2, r3
movlt r3, #1
movge r3, #0
uxtb r3, r3
and r3, r3, r4
uxtb r3, r3
cmp r3, #0
beq .L616
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #92]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #64]
mul r2, r3, r2
ldr r3, [sp, #80]
add r3, r2, r3
str r3, [sp, #48]
b .L615
.L616:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #92]
cmp r2, r3
movlt r3, #1
movge r3, #0
uxtb r4, r3
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #96]
cmp r2, r3
movge r3, #1
movlt r3, #0
uxtb r3, r3
and r3, r3, r4
uxtb r3, r3
cmp r3, #0
beq .L617
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #96]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #68]
mul r2, r3, r2
ldr r3, [sp, #84]
add r3, r2, r3
str r3, [sp, #48]
b .L615
.L617:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #96]
cmp r2, r3
bge .L615
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
cmp r3, #0
bge .L618
ldr r4, [sp, #84]
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #24]
ldr r3, [sp, #24]
eor r2, r3, r3, asr #31
sub r2, r2, r3, asr #31
ldr r3, [sp, #96]
add r3, r2, r3
mov r2, r3
ldr r3, [sp, #72]
mul r3, r3, r2
rsb r3, r3, r4
str r3, [sp, #48]
b .L615
.L618:
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
ldr r3, [sp, #96]
rsb r3, r3, r2
mov r2, r3
ldr r3, [sp, #72]
mul r2, r3, r2
ldr r3, [sp, #84]
add r3, r2, r3
str r3, [sp, #48]
.L615:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #3
uxtb r3, r3
orr r3, r3, #2
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
ldr r3, [sp, #48]
cmp r3, #36
bgt .L619
mov r3, #37
str r3, [sp, #48]
.L619:
ldr r3, [sp, #48]
str r3, [sp, #108]
ldr r3, [sp, #108]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #108]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #312
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:global_bias_current
movt r3, #:upper16:global_bias_current
ldr r3, [r3]
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #10465
movt r2, 30073
movw r3, #398
movt r3, 16281
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #44] @ float
ldr r0, [sp, #44] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #36]
ldr r0, [sp, #44] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #32]
movw r0, #:lower16:.LC157
movt r0, #:upper16:.LC157
ldr r1, [sp, #36]
ldr r2, [sp, #32]
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #36]
movw r3, #:lower16:IC_temperature
movt r3, #:upper16:IC_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #1
rsb r3, r3, r2
str r3, [sp, #20]
ldr r3, [sp, #20]
cmp r3, #0
rsblt r3, r3, #0
str r3, [sp, #32]
movw r0, #:lower16:.LC136
movt r0, #:upper16:.LC136
ldr r1, [sp, #36]
ldr r2, [sp, #32]
bl printk
.L582:
add sp, sp, #116
@ sp needed
ldmfd sp!, {r4, r5, pc}
.fnend
.size SOL_mt7570_ERTemperatureCompensation, .-SOL_mt7570_ERTemperatureCompensation
.align 2
.global mt7570_FiberPlug_Protect
.type mt7570_FiberPlug_Protect, %function
mt7570_FiberPlug_Protect:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
bl mt7570_restart_ERC
ldmfd sp!, {r3, pc}
.fnend
.size mt7570_FiberPlug_Protect, .-mt7570_FiberPlug_Protect
.section .rodata.str1.4
.align 2
.LC158:
.ascii "[%lu0ms][%s:%d] P0 ERC restarted\012\000"
.text
.align 2
.global mt7570_restart_ERC_P0
.type mt7570_restart_ERC_P0, %function
mt7570_restart_ERC_P0:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
bic r3, r3, #1
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L623
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC158
movt r0, #:upper16:.LC158
mov r1, r3
ldr r2, .L625
movw r3, #4367
bl printk
.L623:
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.L626:
.align 2
.L625:
.word .LC39+61
.fnend
.size mt7570_restart_ERC_P0, .-mt7570_restart_ERC_P0
.section .rodata.str1.4
.align 2
.LC159:
.ascii "[%lu0ms][%s:%d] Target bias loaded, 0x%x\012\000"
.align 2
.LC160:
.ascii "[%lu0ms][%s:%d] Target Ibias = %d.%.2dmA\012\000"
.align 2
.LC161:
.ascii "[%lu0ms][%s:%d] Bias tracking done\012\000"
.text
.align 2
.global mt7570_BiasTracking
.type mt7570_BiasTracking, %function
mt7570_BiasTracking:
.fnstart
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #52
sub sp, sp, #52
mov r3, #0
str r3, [sp, #40]
mov r3, #0
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #44]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #24]
mov r3, #0
str r3, [sp, #20] @ float
movw r3, #:lower16:Env_temperature
movt r3, #:upper16:Env_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16388
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2iz
mov r3, r0
str r3, [sp, #44]
ldr r3, [sp, #44]
cmp r3, #0
bge .L628
mov r3, #0
str r3, [sp, #44]
.L628:
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #44]
ldr r3, [r3, r2, asl #3]
str r3, [sp, #40]
ldr r3, [sp, #40]
movw r2, #4095
cmp r3, r2
beq .L627
ldr r3, [sp, #40]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #40]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #312
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L631
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #40]
str r3, [sp]
movw r0, #:lower16:.LC159
movt r0, #:upper16:.LC159
mov r1, r2
ldr r2, .L636
movw r3, #4412
bl printk
.L631:
ldr r0, [sp, #40]
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #10465
movt r2, 30073
movw r3, #398
movt r3, 16281
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #20] @ float
ldr r0, [sp, #20] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #28]
ldr r0, [sp, #20] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L632
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #28]
str r3, [sp]
ldr r3, [sp, #24]
str r3, [sp, #4]
movw r0, #:lower16:.LC160
movt r0, #:upper16:.LC160
mov r1, r2
ldr r2, .L636
mov r3, #4416
bl printk
.L632:
movw r3, #:lower16:global_bias_current
movt r3, #:upper16:global_bias_current
ldr r3, [r3]
str r3, [sp, #32]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #16] @ zero_extendqisi2
and r3, r3, #15
cmp r3, #5
bne .L627
ldr r2, [sp, #40]
ldr r3, [sp, #32]
cmp r2, r3
bls .L634
ldr r2, [sp, #40]
ldr r3, [sp, #32]
rsb r3, r3, r2
cmp r3, #20
bls .L627
mov r0, #5
bl mt7570_information_output
mov r3, r0
add r3, r3, #4
str r3, [sp, #36]
ldr r3, [sp, #36]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #36]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #6
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L627
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC161
movt r0, #:upper16:.LC161
mov r1, r3
ldr r2, .L636
movw r3, #4433
bl printk
b .L627
.L634:
ldr r2, [sp, #40]
ldr r3, [sp, #32]
cmp r2, r3
bcs .L627
ldr r2, [sp, #32]
ldr r3, [sp, #40]
rsb r3, r3, r2
cmp r3, #20
bls .L627
mov r0, #5
bl mt7570_information_output
mov r3, r0
sub r3, r3, #4
str r3, [sp, #36]
ldr r3, [sp, #36]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #36]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #6
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L627
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC161
movt r0, #:upper16:.LC161
mov r1, r3
ldr r2, .L636
movw r3, #4444
bl printk
.L627:
add sp, sp, #52
@ sp needed
ldr pc, [sp], #4
.L637:
.align 2
.L636:
.word .LC39+61
.fnend
.size mt7570_BiasTracking, .-mt7570_BiasTracking
.section .rodata.str1.4
.align 2
.LC162:
.ascii "EnvTemp error\012\000"
.align 2
.LC163:
.ascii "Lack of bias-current table\012\000"
.align 2
.LC164:
.ascii "Bias offset = 0x%x\012\000"
.align 2
.LC165:
.ascii "LUT recover failed\012\000"
.text
.align 2
.global mt7570_LUT_recover
.type mt7570_LUT_recover, %function
mt7570_LUT_recover:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
.pad #60
sub sp, sp, #60
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #24]
mov r3, #0
str r3, [sp, #20]
mov r3, #0
str r3, [sp, #16]
mov r3, #0
str r3, [sp, #12]
mov r3, #0
str r3, [sp, #52]
mov r3, #0
str r3, [sp, #48]
mov r3, #0
str r3, [sp, #8]
mov r3, #0
str r3, [sp, #44]
mov r3, #0
str r3, [sp, #40]
mov r3, #0
movt r3, 16840
str r3, [sp, #36] @ float
mov r3, #0
str r3, [sp, #4] @ float
movw r3, #:lower16:DOL
movt r3, #:upper16:DOL
ldr r3, [r3]
cmp r3, #1
bne .L639
mov r3, #0
str r3, [sp, #40]
b .L640
.L653:
ldr r0, [sp, #40]
bl __aeabi_i2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16388
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16452
bl __aeabi_dsub
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #4] @ float
ldr r0, [sp, #4] @ float
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
ldr r3, [sp, #44]
cmp r3, #0
bge .L641
mov r3, #0
str r3, [sp, #44]
b .L642
.L641:
ldr r3, [sp, #44]
cmp r3, #15
ble .L642
mov r3, #15
str r3, [sp, #44]
.L642:
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
str r3, [sp, #28]
ldr r3, [sp, #44]
add r3, r3, #41
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
str r3, [sp, #24]
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #12
str r3, [sp, #20]
ldr r3, [sp, #44]
add r3, r3, #41
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #12
str r3, [sp, #16]
ldr r3, [sp, #28]
movw r2, #4095
cmp r3, r2
beq .L643
ldr r3, [sp, #24]
movw r2, #4095
cmp r3, r2
bne .L644
.L643:
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #40]
movw r1, #4095
str r1, [r3, r2, asl #3]
b .L645
.L644:
ldr r3, [sp, #44]
cmp r3, #3
bgt .L646
ldr r0, [sp, #28]
bl __aeabi_ui2f
mov r4, r0
ldr r0, [sp, #4] @ float
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r5, r3
ldr r2, [sp, #44]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r5, r3
ldr r2, [sp, #24]
ldr r3, [sp, #28]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
str r3, [sp, #52]
b .L647
.L646:
ldr r0, [sp, #28]
bl __aeabi_ui2f
mov r4, r0
ldr r2, [sp, #44]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
sub r3, r3, #40
mov r0, r3
bl __aeabi_i2f
mov r3, r0
ldr r0, [sp, #4] @ float
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r5, r3
ldr r2, [sp, #24]
ldr r3, [sp, #28]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
str r3, [sp, #52]
.L647:
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #40]
ldr r1, [sp, #52]
str r1, [r3, r2, asl #3]
.L645:
ldr r3, [sp, #20]
movw r2, #4095
cmp r3, r2
beq .L648
ldr r3, [sp, #16]
movw r2, #4095
cmp r3, r2
bne .L649
.L648:
movw r2, #:lower16:LUT_Ibias_Imod
movt r2, #:upper16:LUT_Ibias_Imod
ldr r3, [sp, #40]
mov r3, r3, asl #3
add r3, r2, r3
movw r2, #4095
str r2, [r3, #4]
b .L650
.L649:
ldr r3, [sp, #44]
cmp r3, #3
bgt .L651
ldr r0, [sp, #20]
bl __aeabi_ui2f
mov r4, r0
ldr r0, [sp, #4] @ float
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r5, r3
ldr r2, [sp, #44]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r5, r3
ldr r2, [sp, #16]
ldr r3, [sp, #20]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
str r3, [sp, #48]
b .L652
.L651:
ldr r0, [sp, #20]
bl __aeabi_ui2f
mov r4, r0
ldr r2, [sp, #44]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
sub r3, r3, #40
mov r0, r3
bl __aeabi_i2f
mov r3, r0
ldr r0, [sp, #4] @ float
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r5, r3
ldr r2, [sp, #16]
ldr r3, [sp, #20]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
str r3, [sp, #48]
.L652:
movw r2, #:lower16:LUT_Ibias_Imod
movt r2, #:upper16:LUT_Ibias_Imod
ldr r3, [sp, #40]
mov r3, r3, asl #3
add r3, r2, r3
ldr r2, [sp, #48]
str r2, [r3, #4]
.L650:
ldr r3, [sp, #40]
add r3, r3, #1
str r3, [sp, #40]
.L640:
ldr r3, [sp, #40]
cmp r3, #63
ble .L653
mov r3, #0
str r3, [sp, #44]
b .L654
.L657:
ldr r3, [sp, #44]
mov r3, r3, asl #2
str r3, [sp, #40]
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
movw r2, #4095
cmp r3, r2
beq .L655
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
mov r1, r3
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #40]
str r1, [r3, r2, asl #3]
.L655:
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r3, r0
ubfx r3, r3, #0, #12
movw r2, #4095
cmp r3, r2
beq .L656
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r3, r0
ubfx r1, r3, #0, #12
movw r2, #:lower16:LUT_Ibias_Imod
movt r2, #:upper16:LUT_Ibias_Imod
ldr r3, [sp, #40]
mov r3, r3, asl #3
add r3, r2, r3
str r1, [r3, #4]
.L656:
ldr r3, [sp, #44]
add r3, r3, #1
str r3, [sp, #44]
.L654:
ldr r3, [sp, #44]
cmp r3, #15
ble .L657
b .L638
.L639:
mov r0, #96
bl get_flash_register
mov r3, r0
cmn r3, #1
beq .L659
mov r0, #96
bl get_flash_register
mov r3, r0
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
str r3, [sp, #36] @ float
ldr r0, [sp, #36] @ float
mov r1, #0
bl __aeabi_fcmplt
mov r3, r0
cmp r3, #0
bne .L660
ldr r0, [sp, #36] @ float
mov r1, #0
movt r1, 16928
bl __aeabi_fcmpgt
mov r3, r0
cmp r3, #0
beq .L659
.L660:
movw r0, #:lower16:.LC162
movt r0, #:upper16:.LC162
bl printk
b .L638
.L659:
ldr r0, [sp, #36] @ float
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r3, r0
cmn r3, #1
bne .L662
movw r0, #:lower16:.LC163
movt r0, #:upper16:.LC163
bl printk
b .L638
.L662:
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
str r3, [sp, #28]
ldr r3, [sp, #44]
add r3, r3, #41
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
str r3, [sp, #24]
ldr r0, [sp, #28]
bl __aeabi_ui2f
mov r4, r0
ldr r2, [sp, #44]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
sub r3, r3, #40
mov r0, r3
bl __aeabi_i2f
mov r3, r0
ldr r0, [sp, #36] @ float
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r5, r3
ldr r2, [sp, #24]
ldr r3, [sp, #28]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
str r3, [sp, #8]
mov r0, #0
bl get_flash_register
mov r3, r0
str r3, [sp, #32]
ldr r2, [sp, #32]
ldr r3, [sp, #8]
rsb r3, r3, r2
str r3, [sp, #12]
movw r0, #:lower16:.LC164
movt r0, #:upper16:.LC164
ldr r1, [sp, #12]
bl printk
mov r3, #0
str r3, [sp, #40]
b .L663
.L672:
ldr r0, [sp, #40]
bl __aeabi_i2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16388
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16452
bl __aeabi_dsub
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #4] @ float
ldr r0, [sp, #4] @ float
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #44]
ldr r3, [sp, #44]
cmp r3, #0
bge .L664
mov r3, #0
str r3, [sp, #44]
b .L665
.L664:
ldr r3, [sp, #44]
cmp r3, #15
ble .L665
mov r3, #15
str r3, [sp, #44]
.L665:
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
str r3, [sp, #28]
ldr r3, [sp, #44]
add r3, r3, #41
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
str r3, [sp, #24]
ldr r3, [sp, #28]
movw r2, #4095
cmp r3, r2
beq .L666
ldr r3, [sp, #24]
movw r2, #4095
cmp r3, r2
bne .L667
.L666:
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #40]
movw r1, #4095
str r1, [r3, r2, asl #3]
b .L668
.L667:
ldr r3, [sp, #44]
cmp r3, #3
bgt .L669
ldr r0, [sp, #28]
bl __aeabi_ui2f
mov r4, r0
ldr r0, [sp, #4] @ float
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r5, r3
ldr r2, [sp, #44]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
mov r0, r3
bl __aeabi_i2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r5, r3
ldr r2, [sp, #24]
ldr r3, [sp, #28]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
str r3, [sp, #52]
b .L670
.L669:
ldr r0, [sp, #28]
bl __aeabi_ui2f
mov r4, r0
ldr r2, [sp, #44]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #1
sub r3, r3, #40
mov r0, r3
bl __aeabi_i2f
mov r3, r0
ldr r0, [sp, #4] @ float
mov r1, r3
bl __aeabi_fsub
mov r3, r0
mov r5, r3
ldr r2, [sp, #24]
ldr r3, [sp, #28]
rsb r3, r3, r2
mov r0, r3
bl __aeabi_ui2f
mov r3, r0
mov r0, r5
mov r1, r3
bl __aeabi_fmul
mov r3, r0
mov r0, r3
mov r1, #0
movt r1, 16672
bl __aeabi_fdiv
mov r3, r0
mov r0, r4
mov r1, r3
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2uiz
mov r3, r0
str r3, [sp, #52]
.L670:
ldr r2, [sp, #52]
ldr r3, [sp, #12]
add r1, r2, r3
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #40]
str r1, [r3, r2, asl #3]
.L668:
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #40]
ldr r3, [r3, r2, asl #3]
cmp r3, #0
bne .L671
movw r0, #:lower16:.LC165
movt r0, #:upper16:.LC165
bl printk
b .L638
.L671:
ldr r3, [sp, #40]
add r3, r3, #1
str r3, [sp, #40]
.L663:
ldr r3, [sp, #40]
cmp r3, #63
ble .L672
mov r3, #0
str r3, [sp, #44]
b .L673
.L675:
ldr r3, [sp, #44]
mov r3, r3, asl #2
str r3, [sp, #40]
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
movw r2, #4095
cmp r3, r2
beq .L674
ldr r3, [sp, #44]
add r3, r3, #40
mov r3, r3, asl #2
mov r0, r3
bl get_flash_register
mov r2, r0
mov r3, #0
movt r3, 4095
and r3, r3, r2
mov r3, r3, asr #16
mov r2, r3
ldr r3, [sp, #12]
add r1, r2, r3
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #40]
str r1, [r3, r2, asl #3]
.L674:
ldr r3, [sp, #44]
add r3, r3, #1
str r3, [sp, #44]
.L673:
ldr r3, [sp, #44]
cmp r3, #15
ble .L675
.L638:
add sp, sp, #60
@ sp needed
ldmfd sp!, {r4, r5, pc}
.fnend
.size mt7570_LUT_recover, .-mt7570_LUT_recover
.section .rodata.str1.4
.align 2
.LC166:
.ascii "Temperature\000"
.align 2
.LC167:
.ascii "Ibias\000"
.align 2
.LC168:
.ascii "Imod\012\000"
.align 2
.LC169:
.ascii "%03d.%01d\011\0110x%03x\0110x%03x\012\000"
.text
.align 2
.global mt7570_show_LUT
.type mt7570_show_LUT, %function
mt7570_show_LUT:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
.pad #16
sub sp, sp, #16
mov r3, #0
str r3, [sp, #12]
movw r0, #:lower16:.LC166
movt r0, #:upper16:.LC166
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
movw r0, #:lower16:.LC167
movt r0, #:upper16:.LC167
bl printk
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
bl printk
movw r0, #:lower16:.LC168
movt r0, #:upper16:.LC168
bl printk
mov r3, #0
str r3, [sp, #12]
b .L677
.L678:
ldr r2, [sp, #12]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r2, r3, asl #2
add r3, r3, r2
sub r1, r3, #400
movw r3, #26215
movt r3, 26214
smull r2, r3, r1, r3
mov r2, r3, asr #2
mov r3, r1, asr #31
rsb r4, r3, r2
ldr r2, [sp, #12]
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r2, r3, asl #2
add r3, r3, r2
sub r3, r3, #400
str r3, [sp, #8]
ldr r3, [sp, #8]
eor r2, r3, r3, asr #31
sub r2, r2, r3, asr #31
movw r3, #26215
movt r3, 26214
smull r0, r1, r2, r3
mov r1, r1, asr #2
mov r3, r2, asr #31
rsb ip, r3, r1
mov r3, ip
mov r3, r3, asl #2
add r3, r3, ip
mov r3, r3, asl #1
rsb ip, r3, r2
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #12]
ldr lr, [r3, r2, asl #3]
movw r2, #:lower16:LUT_Ibias_Imod
movt r2, #:upper16:LUT_Ibias_Imod
ldr r3, [sp, #12]
mov r3, r3, asl #3
add r3, r2, r3
ldr r3, [r3, #4]
str r3, [sp]
movw r0, #:lower16:.LC169
movt r0, #:upper16:.LC169
mov r1, r4
mov r2, ip
mov r3, lr
bl printk
ldr r3, [sp, #12]
add r3, r3, #1
str r3, [sp, #12]
.L677:
ldr r3, [sp, #12]
cmp r3, #63
ble .L678
add sp, sp, #16
@ sp needed
ldmfd sp!, {r4, pc}
.fnend
.size mt7570_show_LUT, .-mt7570_show_LUT
.section .rodata.str1.4
.align 2
.LC170:
.ascii "Switch to Single-closed Loop Mode\012\000"
.text
.align 2
.global mt7570_SingleClosedLoopMode
.type mt7570_SingleClosedLoopMode, %function
mt7570_SingleClosedLoopMode:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #3
uxtb r3, r3
orr r3, r3, #2
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #316
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #3
uxtb r3, r3
orr r3, r3, #1
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #332
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r0, #:lower16:.LC170
movt r0, #:upper16:.LC170
bl printk
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_SingleClosedLoopMode, .-mt7570_SingleClosedLoopMode
.section .rodata.str1.4
.align 2
.LC171:
.ascii "[%lu0ms][%s:%d] Target mod loaded, 0x%x\012\000"
.align 2
.LC172:
.ascii "[%lu0ms][%s:%d] Target Imod = %d.%.2dmA\012\000"
.text
.align 2
.global mt7570_OpenLoopControl
.type mt7570_OpenLoopControl, %function
mt7570_OpenLoopControl:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #44
sub sp, sp, #44
mov r3, #0
str r3, [sp, #32]
mov r3, #0
str r3, [sp, #36]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #24]
mov r3, #0
str r3, [sp, #20] @ float
movw r3, #:lower16:Env_temperature
movt r3, #:upper16:Env_temperature
ldr r3, [r3] @ float
mov r0, r3
mov r1, #0
movt r1, 16928
bl __aeabi_fadd
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
mov r2, #0
mov r3, #0
movt r3, 16388
bl __aeabi_ddiv
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2iz
mov r3, r0
str r3, [sp, #36]
ldr r3, [sp, #36]
cmp r3, #0
bge .L681
mov r3, #0
str r3, [sp, #36]
.L681:
movw r3, #:lower16:LUT_Ibias_Imod
movt r3, #:upper16:LUT_Ibias_Imod
ldr r2, [sp, #36]
ldr r3, [r3, r2, asl #3]
str r3, [sp, #32]
ldr r3, [sp, #32]
movw r2, #4095
cmp r3, r2
bne .L682
b .L680
.L682:
ldr r3, [sp, #32]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #32]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #312
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L684
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #32]
str r3, [sp]
movw r0, #:lower16:.LC159
movt r0, #:upper16:.LC159
mov r1, r2
ldr r2, .L690
mov r3, #4736
bl printk
.L684:
ldr r0, [sp, #32]
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #10465
movt r2, 30073
movw r3, #398
movt r3, 16281
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #20] @ float
ldr r0, [sp, #20] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #28]
ldr r0, [sp, #20] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L685
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #28]
str r3, [sp]
ldr r3, [sp, #24]
str r3, [sp, #4]
movw r0, #:lower16:.LC160
movt r0, #:upper16:.LC160
mov r1, r2
ldr r2, .L690
movw r3, #4740
bl printk
.L685:
movw r2, #:lower16:LUT_Ibias_Imod
movt r2, #:upper16:LUT_Ibias_Imod
ldr r3, [sp, #36]
mov r3, r3, asl #3
add r3, r2, r3
ldr r3, [r3, #4]
str r3, [sp, #32]
ldr r3, [sp, #32]
movw r2, #4095
cmp r3, r2
bne .L686
b .L680
.L686:
ldr r3, [sp, #32]
uxtb r3, r3
strb r3, [sp, #16]
ldr r3, [sp, #32]
mov r3, r3, lsr #8
uxtb r3, r3
strb r3, [sp, #17]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #328
str r3, [sp]
add r3, sp, #16
str r3, [sp, #4]
mov r3, #2
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L687
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #32]
str r3, [sp]
movw r0, #:lower16:.LC171
movt r0, #:upper16:.LC171
mov r1, r2
ldr r2, .L690
movw r3, #4753
bl printk
.L687:
ldr r0, [sp, #32]
bl __aeabi_ui2f
mov r3, r0
mov r0, r3
bl __aeabi_f2d
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
movw r2, #4320
movt r2, 54442
movw r3, #33260
movt r3, 16278
bl __aeabi_dmul
mov r2, r0
mov r3, r1
mov r0, r2
mov r1, r3
bl __aeabi_d2f
mov r3, r0
str r3, [sp, #20] @ float
ldr r0, [sp, #20] @ float
bl __aeabi_f2iz
mov r3, r0
str r3, [sp, #28]
ldr r0, [sp, #20] @ float
mov r1, #0
movt r1, 17096
bl __aeabi_fmul
mov r3, r0
mov r0, r3
bl __aeabi_f2iz
mov r2, r0
movw r3, #34079
movt r3, 20971
smull r0, r1, r2, r3
mov r1, r1, asr #5
mov r3, r2, asr #31
rsb r1, r3, r1
mov r3, r1
mov r3, r3, asl #2
add r3, r3, r1
mov r1, r3, asl #2
add r3, r3, r1
mov r3, r3, asl #2
rsb r3, r3, r2
str r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L680
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #28]
str r3, [sp]
ldr r3, [sp, #24]
str r3, [sp, #4]
movw r0, #:lower16:.LC172
movt r0, #:upper16:.LC172
mov r1, r2
ldr r2, .L690
movw r3, #4757
bl printk
.L680:
add sp, sp, #44
@ sp needed
ldr pc, [sp], #4
.L691:
.align 2
.L690:
.word .LC39+61
.fnend
.size mt7570_OpenLoopControl, .-mt7570_OpenLoopControl
.align 2
.global mt7570_LOS_init
.type mt7570_LOS_init, %function
mt7570_LOS_init:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #20] @ zero_extendqisi2
orr r3, r3, #1
uxtb r3, r3
strb r3, [sp, #20]
ldrb r3, [sp, #21] @ zero_extendqisi2
orr r3, r3, #31
uxtb r3, r3
strb r3, [sp, #21]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #284
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
orr r3, r3, #4
uxtb r3, r3
strb r3, [sp, #23]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #22] @ zero_extendqisi2
orr r3, r3, #64
uxtb r3, r3
strb r3, [sp, #22]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #36
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #288
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_read
ldrb r3, [sp, #21] @ zero_extendqisi2
orr r3, r3, #31
uxtb r3, r3
strb r3, [sp, #21]
ldrb r3, [sp, #20] @ zero_extendqisi2
uxtb r3, r3
bic r3, r3, #127
uxtb r3, r3
orr r3, r3, #5
uxtb r3, r3
uxtb r3, r3
strb r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #288
str r3, [sp]
add r3, sp, #20
str r3, [sp, #4]
mov r3, #4
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #112
mov r3, #2
bl phy_I2C_write
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_LOS_init, .-mt7570_LOS_init
.section .rodata
.align 2
.type __FUNCTION__.41326, %object
.size __FUNCTION__.41326, 20
__FUNCTION__.41326:
.ascii "REPORT_EVENT_TO_MAC\000"
.align 2
.type __FUNCTION__.41999, %object
.size __FUNCTION__.41999, 23
__FUNCTION__.41999:
.ascii "mt7570_ADC_calibration\000"
.align 2
.type __FUNCTION__.42081, %object
.size __FUNCTION__.42081, 27
__FUNCTION__.42081:
.ascii "mt7570_ADC_temperature_get\000"
.align 2
.type __FUNCTION__.42100, %object
.size __FUNCTION__.42100, 23
__FUNCTION__.42100:
.ascii "mt7570_ADC_voltage_get\000"
.align 2
.type __FUNCTION__.42172, %object
.size __FUNCTION__.42172, 20
__FUNCTION__.42172:
.ascii "mt7570_RSSI_current\000"
.align 2
.type __FUNCTION__.42205, %object
.size __FUNCTION__.42205, 20
__FUNCTION__.42205:
.ascii "mt7570_dark_current\000"
.align 2
.type __FUNCTION__.42235, %object
.size __FUNCTION__.42235, 19
__FUNCTION__.42235:
.ascii "mt7570_MPD_current\000"
.local d.42280
.comm d.42280,4,4
.local e.42281
.comm e.42281,4,4
.local f.42282
.comm f.42282,4,4
.local g.42283
.comm g.42283,4,4
.local x.42284
.comm x.42284,4,4
.local y.42285
.comm y.42285,4,4
.local z.42286
.comm z.42286,4,4
.align 2
.type __FUNCTION__.42335, %object
.size __FUNCTION__.42335, 16
__FUNCTION__.42335:
.ascii "LOS_calibration\000"
.local TEC_cnt.42409
.comm TEC_cnt.42409,4,4
.ident "GCC: (Buildroot 2015.08.1-gd814875) 4.9.3"
.section .note.GNU-stack,"",%progbits