4698 lines
86 KiB
ArmAsm
Executable File
4698 lines
86 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 "phy_init.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 phy_date_version
|
|
.data
|
|
.align 2
|
|
.type phy_date_version, %object
|
|
.size phy_date_version, 4
|
|
phy_date_version:
|
|
.word 230921
|
|
.global gpPhyPriv
|
|
.bss
|
|
.align 2
|
|
.type gpPhyPriv, %object
|
|
.size gpPhyPriv, 4
|
|
gpPhyPriv:
|
|
.space 4
|
|
.global i2c_access_queue
|
|
.align 2
|
|
.type i2c_access_queue, %object
|
|
.size i2c_access_queue, 4
|
|
i2c_access_queue:
|
|
.space 4
|
|
.global los_status
|
|
.align 2
|
|
.type los_status, %object
|
|
.size los_status, 4
|
|
los_status:
|
|
.space 4
|
|
.global a_tdc_setting
|
|
.data
|
|
.align 2
|
|
.type a_tdc_setting, %object
|
|
.size a_tdc_setting, 4
|
|
a_tdc_setting:
|
|
.word 45
|
|
.global phy_api_en
|
|
.type phy_api_en, %object
|
|
.size phy_api_en, 1
|
|
phy_api_en:
|
|
.byte 1
|
|
.global ana_power_saving_en
|
|
.bss
|
|
.type ana_power_saving_en, %object
|
|
.size ana_power_saving_en, 1
|
|
ana_power_saving_en:
|
|
.space 1
|
|
.text
|
|
.align 2
|
|
.global gpio_tx_dis_reset
|
|
.type gpio_tx_dis_reset, %function
|
|
gpio_tx_dis_reset:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
mov r0, #0
|
|
bl phy_tx_ctl
|
|
bl phy_tx_fault_reset
|
|
ldmfd sp!, {r3, pc}
|
|
.fnend
|
|
.size gpio_tx_dis_reset, .-gpio_tx_dis_reset
|
|
.section .rodata.str1.4,"aMS",%progbits,1
|
|
.align 2
|
|
.LC0:
|
|
.ascii "[%lu0ms][%s:%d] turn on TX BOSA VCC success. \012\000"
|
|
.align 2
|
|
.LC1:
|
|
.ascii "/home/work/XX530vUS1/sdk/en7529/modules/private/xpo"
|
|
.ascii "n_phy/src/phy_init.c\000"
|
|
.align 2
|
|
.LC2:
|
|
.ascii "[%lu0ms][%s:%d] turn off TX BOSA VCC success. \012\000"
|
|
.align 2
|
|
.LC3:
|
|
.ascii "[%lu0ms][%s:%d] setting TX BOSA VCC fail. \012\000"
|
|
.text
|
|
.align 2
|
|
.global gpio_BOSA_Tx_power_switch
|
|
.type gpio_BOSA_Tx_power_switch, %function
|
|
gpio_BOSA_Tx_power_switch:
|
|
.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, r0
|
|
strb r3, [sp, #7]
|
|
ldrb r3, [sp, #7] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L3
|
|
mov r0, #102
|
|
bl ledTurnOff
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L4
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC0
|
|
movt r0, #:upper16:.LC0
|
|
mov r1, r3
|
|
ldr r2, .L9
|
|
mov r3, #154
|
|
bl printk
|
|
.L4:
|
|
mov r3, #0
|
|
b .L5
|
|
.L3:
|
|
ldrb r3, [sp, #7] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L6
|
|
mov r0, #102
|
|
bl ledTurnOn
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L7
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC2
|
|
movt r0, #:upper16:.LC2
|
|
mov r1, r3
|
|
ldr r2, .L9
|
|
mov r3, #162
|
|
bl printk
|
|
.L7:
|
|
mov r3, #0
|
|
b .L5
|
|
.L6:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L8
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC3
|
|
movt r0, #:upper16:.LC3
|
|
mov r1, r3
|
|
ldr r2, .L9
|
|
mov r3, #169
|
|
bl printk
|
|
.L8:
|
|
mov r3, #1
|
|
.L5:
|
|
mov r0, r3
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L10:
|
|
.align 2
|
|
.L9:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size gpio_BOSA_Tx_power_switch, .-gpio_BOSA_Tx_power_switch
|
|
.align 2
|
|
.global xPON_Phy_Reset
|
|
.type xPON_Phy_Reset, %function
|
|
xPON_Phy_Reset:
|
|
.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]
|
|
bl GET_SCU_RST_RG
|
|
mov r3, r0
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
orr r3, r3, #1
|
|
str r3, [sp, #4]
|
|
ldr r0, [sp, #4]
|
|
bl SET_SCU_RST_RG
|
|
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, #4]
|
|
bic r3, r3, #1
|
|
str r3, [sp, #4]
|
|
ldr r0, [sp, #4]
|
|
bl SET_SCU_RST_RG
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #112]
|
|
ubfx r3, r3, #3, #4
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl Mode_Config_7523
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size xPON_Phy_Reset, .-xPON_Phy_Reset
|
|
.align 2
|
|
.global xPON_Pll_Reset
|
|
.type xPON_Pll_Reset, %function
|
|
xPON_Pll_Reset:
|
|
.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
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
mov r0, r3
|
|
bl _raw_spin_lock_irqsave
|
|
str r0, [sp, #28]
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
orr r3, r3, #-2013265920
|
|
str r3, [sp, #36]
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #36]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #32]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #28]
|
|
str r3, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
mov r0, r3
|
|
ldr r1, [sp, #16]
|
|
bl _raw_spin_unlock_irqrestore
|
|
add sp, sp, #44
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size xPON_Pll_Reset, .-xPON_Pll_Reset
|
|
.align 2
|
|
.global xPON_Logic_Reset
|
|
.type xPON_Logic_Reset, %function
|
|
xPON_Logic_Reset:
|
|
.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 r0, #264
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp]
|
|
ldr r3, [sp]
|
|
orr r3, r3, #-2013265920
|
|
str r3, [sp, #4]
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #4]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #41838
|
|
movt r0, 1
|
|
blx r3
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #41838
|
|
movt r0, 1
|
|
blx r3
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size xPON_Logic_Reset, .-xPON_Logic_Reset
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC4:
|
|
.ascii "===== xPON PHY Power_Saving Mode: ENABLE =====\012\000"
|
|
.align 2
|
|
.LC5:
|
|
.ascii "===== xPON PHY Power_Saving Mode: DISABLE =====\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC6:
|
|
.ascii "===== xPON PHY Power_Saving wrong_mode: mode_sel = "
|
|
.ascii "%d =====\012\000"
|
|
.text
|
|
.align 2
|
|
.global Ana_Power_Saving
|
|
.type Ana_Power_Saving, %function
|
|
Ana_Power_Saving:
|
|
.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]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #1
|
|
bne .L16
|
|
mov r0, #336
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
orr r3, r3, #256
|
|
str r3, [sp, #12]
|
|
mov r0, #336
|
|
movt r0, 49071
|
|
ldr r1, [sp, #12]
|
|
bl set_pon_phy_data
|
|
mov r0, #416
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
bic r3, r3, #983040
|
|
str r3, [sp, #12]
|
|
mov r0, #416
|
|
movt r0, 49071
|
|
ldr r1, [sp, #12]
|
|
bl set_pon_phy_data
|
|
movw r0, #:lower16:.LC4
|
|
movt r0, #:upper16:.LC4
|
|
bl printk
|
|
b .L15
|
|
.L16:
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #0
|
|
bne .L18
|
|
mov r0, #336
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
bic r3, r3, #256
|
|
str r3, [sp, #12]
|
|
mov r0, #336
|
|
movt r0, 49071
|
|
ldr r1, [sp, #12]
|
|
bl set_pon_phy_data
|
|
mov r0, #416
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
bic r3, r3, #983040
|
|
orr r3, r3, #589824
|
|
str r3, [sp, #12]
|
|
mov r0, #416
|
|
movt r0, 49071
|
|
ldr r1, [sp, #12]
|
|
bl set_pon_phy_data
|
|
movw r0, #:lower16:.LC5
|
|
movt r0, #:upper16:.LC5
|
|
bl printk
|
|
b .L15
|
|
.L18:
|
|
movw r0, #:lower16:.LC6
|
|
movt r0, #:upper16:.LC6
|
|
ldr r1, [sp, #4]
|
|
bl printk
|
|
.L15:
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size Ana_Power_Saving, .-Ana_Power_Saving
|
|
.align 2
|
|
.type phy_int_recover_expires, %function
|
|
phy_int_recover_expires:
|
|
.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
|
|
str r0, [sp, #4]
|
|
mov r0, #99
|
|
mov r1, #0
|
|
bl phy_int_config
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size phy_int_recover_expires, .-phy_int_recover_expires
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC7:
|
|
.ascii "[%lu0ms][%s:%d] %s\012\000"
|
|
.align 2
|
|
.LC8:
|
|
.ascii "[%lu0ms][%s:%d] Reset RX PLL when LOS=0 && PHY_READ"
|
|
.ascii "Y=0.\012\000"
|
|
.text
|
|
.align 2
|
|
.type phy_ready_recover_expires, %function
|
|
phy_ready_recover_expires:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 48
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #60
|
|
sub sp, sp, #60
|
|
str r0, [sp, #12]
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L21
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:__FUNCTION__.41874
|
|
movt r3, #:upper16:__FUNCTION__.41874
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC7
|
|
movt r0, #:upper16:.LC7
|
|
mov r1, r2
|
|
ldr r2, .L24
|
|
mov r3, #380
|
|
bl printk
|
|
.L21:
|
|
mov r0, #304
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #48]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L22
|
|
ldr r3, [sp, #48]
|
|
mov r3, r3, lsr #18
|
|
and r3, r3, #7
|
|
cmp r3, #2
|
|
bne .L22
|
|
bl phy_los_status
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L22
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
mov r0, r3
|
|
bl _raw_spin_lock_irqsave
|
|
str r0, [sp, #44]
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #48]
|
|
ldr r3, [sp, #48]
|
|
orr r3, r3, #-2013265920
|
|
str r3, [sp, #52]
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #52]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #48]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #36]
|
|
ldr r3, [sp, #44]
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #36]
|
|
mov r0, r3
|
|
ldr r1, [sp, #32]
|
|
bl _raw_spin_unlock_irqrestore
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L22
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC8
|
|
movt r0, #:upper16:.LC8
|
|
mov r1, r3
|
|
ldr r2, .L24
|
|
movw r3, #410
|
|
bl printk
|
|
.L22:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
str r3, [r2, #12]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r1, r3, #4
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #12]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r2, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #2
|
|
mov r2, r3
|
|
movw r3, #19923
|
|
movt r3, 4194
|
|
umull r2, r3, r2, r3
|
|
mov r2, r3, lsr #6
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
add r3, r2, r3
|
|
mov r0, r1
|
|
mov r1, r3
|
|
bl mod_timer
|
|
add sp, sp, #60
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L25:
|
|
.align 2
|
|
.L24:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size phy_ready_recover_expires, .-phy_ready_recover_expires
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC9:
|
|
.ascii "[%lu0ms][%s:%d] LDDLA_task_wait\012\000"
|
|
.text
|
|
.align 2
|
|
.global LDDLA_task_wait
|
|
.type LDDLA_task_wait, %function
|
|
LDDLA_task_wait:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L27
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC9
|
|
movt r0, #:upper16:.LC9
|
|
mov r1, r3
|
|
ldr r2, .L33
|
|
mov r3, #420
|
|
bl printk
|
|
.L27:
|
|
b .L28
|
|
.L31:
|
|
movw r3, #:lower16:en7571_select
|
|
movt r3, #:upper16:en7571_select
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L29
|
|
bl en7571_internal_clock
|
|
b .L30
|
|
.L29:
|
|
movw r3, #:lower16:mt7570_select
|
|
movt r3, #:upper16:mt7570_select
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L30
|
|
bl mt7570_internal_clock
|
|
.L30:
|
|
mov r0, #1000
|
|
bl msleep
|
|
.L28:
|
|
bl kthread_should_stop
|
|
mov r3, r0
|
|
eor r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
bne .L31
|
|
mov r3, #0
|
|
mov r0, r3
|
|
ldmfd sp!, {r3, pc}
|
|
.L34:
|
|
.align 2
|
|
.L33:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size LDDLA_task_wait, .-LDDLA_task_wait
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC10:
|
|
.ascii "xPON PHY initialization done\012\000"
|
|
.text
|
|
.align 2
|
|
.global phy_dev_init
|
|
.type phy_dev_init, %function
|
|
phy_dev_init:
|
|
.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
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
bl GET_IOMUX_CTRL_3
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
orr r3, r3, #1
|
|
str r3, [sp, #8]
|
|
ldr r0, [sp, #8]
|
|
bl SET_IOMUX_CTRL_3
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
bic r3, r3, #4
|
|
str r3, [sp, #12]
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #12]
|
|
bl set_pon_phy_data
|
|
bl GET_SCU_RST_ACC_CHK_BMA
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
bic r3, r3, #4
|
|
str r3, [sp, #12]
|
|
ldr r0, [sp, #12]
|
|
bl SET_SCU_RST_ACC_CHK_BMA
|
|
bl GET_GPIO_SSR
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
bic r3, r3, #1024
|
|
str r3, [sp, #12]
|
|
ldr r0, [sp, #12]
|
|
bl SET_GPIO_SSR
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L36
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L36
|
|
mov r0, #99
|
|
mov r1, #0
|
|
bl phy_int_config
|
|
.L36:
|
|
mov r0, #1
|
|
mov r1, #1
|
|
mov r2, #1
|
|
bl phy_cnt_enable
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #22915
|
|
movt r3, 43691
|
|
str r3, [r2, #164]
|
|
movw r0, #1028
|
|
movt r0, 49071
|
|
movw r1, #22915
|
|
movt r1, 43691
|
|
bl set_pon_phy_data
|
|
bl phy_reset_counter
|
|
bl GET_IS_FPGA
|
|
movw r0, #:lower16:.LC10
|
|
movt r0, #:upper16:.LC10
|
|
bl printk
|
|
mov r3, #0
|
|
mov r0, r3
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size phy_dev_init, .-phy_dev_init
|
|
.align 2
|
|
.global phy_los_handler
|
|
.type phy_los_handler, %function
|
|
phy_los_handler:
|
|
.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
|
|
movw r0, #1528
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
movw r0, #1524
|
|
movt r0, 49071
|
|
ldr r1, [sp, #12]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:mt7570_select
|
|
movt r3, #:upper16:mt7570_select
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L39
|
|
movw r3, #:lower16:TEC_switch
|
|
movt r3, #:upper16:TEC_switch
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
movw r3, #:lower16:BiasTracking_switch
|
|
movt r3, #:upper16:BiasTracking_switch
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
.L39:
|
|
mov r0, #0
|
|
bl phy_bit_delay
|
|
bl phy_reset_counter
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L38
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:__FUNCTION__.41917
|
|
movt r3, #:upper16:__FUNCTION__.41917
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC7
|
|
movt r0, #:upper16:.LC7
|
|
mov r1, r2
|
|
ldr r2, .L41
|
|
movw r3, #669
|
|
bl printk
|
|
.L38:
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L42:
|
|
.align 2
|
|
.L41:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size phy_los_handler, .-phy_los_handler
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC11:
|
|
.ascii "[%lu0ms][%s:%d] PON_SYS_CTRL_1_ADDR[0x%x] read_data"
|
|
.ascii " = 0x%x , write_data = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global phy_ready_handler
|
|
.type phy_ready_handler, %function
|
|
phy_ready_handler:
|
|
.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 r0, #16656
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
bic r3, r3, #1
|
|
str r3, [sp, #16]
|
|
movw r0, #16656
|
|
movt r0, 8111
|
|
ldr r1, [sp, #16]
|
|
bl set_pon_phy_data
|
|
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, #16]
|
|
orr r3, r3, #1
|
|
str r3, [sp, #16]
|
|
movw r0, #16656
|
|
movt r0, 8111
|
|
ldr r1, [sp, #16]
|
|
bl set_pon_phy_data
|
|
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 r0, #17156
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
bic r3, r3, #256
|
|
str r3, [sp, #16]
|
|
movw r0, #17156
|
|
movt r0, 8111
|
|
ldr r1, [sp, #16]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L44
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #17156
|
|
movt r3, 8111
|
|
str r3, [sp]
|
|
ldr r3, [sp, #20]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #16]
|
|
str r3, [sp, #8]
|
|
movw r0, #:lower16:.LC11
|
|
movt r0, #:upper16:.LC11
|
|
mov r1, r2
|
|
ldr r2, .L49
|
|
movw r3, #715
|
|
bl printk
|
|
.L44:
|
|
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, #16]
|
|
orr r3, r3, #256
|
|
str r3, [sp, #16]
|
|
movw r0, #17156
|
|
movt r0, 8111
|
|
ldr r1, [sp, #16]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L48
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #17156
|
|
movt r3, 8111
|
|
str r3, [sp]
|
|
ldr r3, [sp, #20]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #16]
|
|
str r3, [sp, #8]
|
|
movw r0, #:lower16:.LC11
|
|
movt r0, #:upper16:.LC11
|
|
mov r1, r2
|
|
ldr r2, .L49
|
|
movw r3, #719
|
|
bl printk
|
|
.L48:
|
|
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:mt7570_select
|
|
movt r3, #:upper16:mt7570_select
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L46
|
|
movw r3, #:lower16:TEC_switch
|
|
movt r3, #:upper16:TEC_switch
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
movw r3, #:lower16:BiasTracking_switch
|
|
movt r3, #:upper16:BiasTracking_switch
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
.L46:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L43
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:__FUNCTION__.41935
|
|
movt r3, #:upper16:__FUNCTION__.41935
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC7
|
|
movt r0, #:upper16:.LC7
|
|
mov r1, r2
|
|
ldr r2, .L49
|
|
movw r3, #730
|
|
bl printk
|
|
.L43:
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L50:
|
|
.align 2
|
|
.L49:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size phy_ready_handler, .-phy_ready_handler
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC12:
|
|
.ascii "[%lu0ms][%s:%d] phyIntStatus = 0x%x, phyIntStatus_7"
|
|
.ascii "523=0x%x\012\000"
|
|
.align 2
|
|
.LC13:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: TRANS_LOS(%d)|PHY_ILLG(%d)"
|
|
.ascii " interrupt.\012\000"
|
|
.align 2
|
|
.LC14:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: transceiver LOF interrupt."
|
|
.ascii "\012\000"
|
|
.align 2
|
|
.LC15:
|
|
.ascii "[%lu0ms][%s:%d] turn off power.\012\000"
|
|
.align 2
|
|
.LC16:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: transceiver TF interrupt.\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC17:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: transceiver interrupt.\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC18:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: transceiver TX_SD fail int"
|
|
.ascii "errupt.\012\000"
|
|
.align 2
|
|
.LC19:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: transceiver SIGDET interru"
|
|
.ascii "pt.\012\000"
|
|
.align 2
|
|
.LC20:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: phy ready interrupt.\012\000"
|
|
.align 2
|
|
.LC21:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: FALSE phy ready interrupt."
|
|
.ascii "\012\000"
|
|
.align 2
|
|
.LC22:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: I2C master interrupt.\012\000"
|
|
.align 2
|
|
.LC23:
|
|
.ascii "[%lu0ms][%s:%d] PHY IRQ: ROGUE ENABLE & DETECT.\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC24:
|
|
.ascii "[%lu0ms][%s:%d] rogue onu DISABLE(0x480C) %x\012\000"
|
|
.align 2
|
|
.LC25:
|
|
.ascii "[%lu0ms][%s:%d] rogue onu CLR(0x4808) %x\012\000"
|
|
.align 2
|
|
.LC26:
|
|
.ascii "[%lu0ms][%s:%d] PHY detect interrupt error. phyIntS"
|
|
.ascii "tatus = 0x%x, phyIntStatus_7523=0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global phy_isr
|
|
.type phy_isr, %function
|
|
phy_isr:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 224
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #236
|
|
sub sp, sp, #236
|
|
mov r3, #0
|
|
str r3, [sp, #228]
|
|
mov r3, #0
|
|
str r3, [sp, #224]
|
|
mov r3, #0
|
|
str r3, [sp, #220]
|
|
mov r3, #0
|
|
str r3, [sp, #216]
|
|
add r3, sp, #133
|
|
str r3, [sp, #212]
|
|
mov r3, #0
|
|
str r3, [sp, #124]
|
|
mov r3, #0
|
|
str r3, [sp, #128]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #152
|
|
str r3, [sp, #196]
|
|
ldr r3, [sp, #196]
|
|
mov r0, r3
|
|
bl _raw_spin_lock_irqsave
|
|
str r0, [sp, #208]
|
|
movw r0, #1528
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #228]
|
|
movw r0, #1524
|
|
movt r0, 49071
|
|
ldr r1, [sp, #228]
|
|
bl set_pon_phy_data
|
|
mov r0, #18432
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #224]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L53
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #228]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #224]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC12
|
|
movt r0, #:upper16:.LC12
|
|
mov r1, r2
|
|
ldr r2, .L93
|
|
movw r3, #815
|
|
bl printk
|
|
.L53:
|
|
movw r0, #18440
|
|
movt r0, 8111
|
|
ldr r1, [sp, #224]
|
|
bl set_pon_phy_data
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
bne .L54
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #64
|
|
cmp r3, #0
|
|
beq .L55
|
|
.L54:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L56
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
uxtb r3, r3
|
|
mov r1, r3
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #64
|
|
cmp r3, #0
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
uxtb r3, r3
|
|
str r1, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC13
|
|
movt r0, #:upper16:.LC13
|
|
mov r1, r2
|
|
ldr r2, .L93
|
|
movw r3, #821
|
|
bl printk
|
|
.L56:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #160]
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L57
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #64
|
|
cmp r3, #0
|
|
beq .L57
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #32
|
|
cmp r3, #0
|
|
beq .L58
|
|
mov r3, #8
|
|
str r3, [sp, #192]
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #192]
|
|
str r3, [sp, #24]
|
|
add r3, sp, #20
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
b .L60
|
|
.L58:
|
|
mov r3, #8
|
|
str r3, [sp, #188]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #188]
|
|
str r3, [sp, #32]
|
|
add r3, sp, #28
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
b .L60
|
|
.L57:
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L61
|
|
mov r3, #0
|
|
str r3, [sp, #184]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #184]
|
|
str r3, [sp, #40]
|
|
add r3, sp, #36
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
b .L60
|
|
.L61:
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #64
|
|
cmp r3, #0
|
|
beq .L60
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #112] @ zero_extendqisi2
|
|
and r3, r3, #120
|
|
uxtb r3, r3
|
|
cmp r3, #8
|
|
bne .L62
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #112] @ zero_extendqisi2
|
|
bic r3, r3, #127
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
bne .L60
|
|
.L62:
|
|
mov r3, #6
|
|
str r3, [sp, #180]
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
ldr r3, [sp, #180]
|
|
str r3, [sp, #48]
|
|
add r3, sp, #44
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
.L60:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
str r3, [r2, #12]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r1, r3, #4
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #12]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r2, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #2
|
|
mov r2, r3
|
|
movw r3, #19923
|
|
movt r3, 4194
|
|
umull r2, r3, r2, r3
|
|
mov r2, r3, lsr #6
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
add r3, r2, r3
|
|
mov r0, r1
|
|
mov r1, r3
|
|
bl mod_timer
|
|
.L55:
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L63
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L64
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC14
|
|
movt r0, #:upper16:.LC14
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
mov r3, #860
|
|
bl printk
|
|
.L64:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #160]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #10
|
|
str r2, [r3, #120]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #120]
|
|
str r3, [r2, #132]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r1, r3, #124
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #132]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r2, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #2
|
|
mov r2, r3
|
|
movw r3, #19923
|
|
movt r3, 4194
|
|
umull r2, r3, r2, r3
|
|
mov r2, r3, lsr #6
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
add r3, r2, r3
|
|
mov r0, r1
|
|
mov r1, r3
|
|
bl mod_timer
|
|
mov r3, #1
|
|
str r3, [sp, #176]
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #56]
|
|
ldr r3, [sp, #176]
|
|
str r3, [sp, #56]
|
|
add r3, sp, #52
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
.L63:
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #4
|
|
cmp r3, #0
|
|
beq .L65
|
|
ldr r0, [sp, #212]
|
|
bl phy_trans_tx_getting
|
|
ldr r3, [sp, #212]
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L66
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L67
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC15
|
|
movt r0, #:upper16:.LC15
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
mov r3, #872
|
|
bl printk
|
|
.L67:
|
|
mov r3, #2
|
|
str r3, [sp, #172]
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
ldr r3, [sp, #172]
|
|
str r3, [sp, #64]
|
|
add r3, sp, #60
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
.L66:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L65
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC16
|
|
movt r0, #:upper16:.LC16
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
movw r3, #875
|
|
bl printk
|
|
.L65:
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L68
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L69
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC17
|
|
movt r0, #:upper16:.LC17
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
movw r3, #879
|
|
bl printk
|
|
.L69:
|
|
mov r3, #3
|
|
str r3, [sp, #168]
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
mov r3, #0
|
|
str r3, [sp, #72]
|
|
ldr r3, [sp, #168]
|
|
str r3, [sp, #72]
|
|
add r3, sp, #68
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
.L68:
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L70
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L71
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC18
|
|
movt r0, #:upper16:.LC18
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
mov r3, #884
|
|
bl printk
|
|
.L71:
|
|
mov r3, #4
|
|
str r3, [sp, #164]
|
|
mov r3, #0
|
|
str r3, [sp, #76]
|
|
mov r3, #0
|
|
str r3, [sp, #80]
|
|
ldr r3, [sp, #164]
|
|
str r3, [sp, #80]
|
|
add r3, sp, #76
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
.L70:
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #32
|
|
cmp r3, #0
|
|
beq .L72
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #160]
|
|
cmp r3, #1
|
|
bne .L73
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #512
|
|
cmp r3, #0
|
|
beq .L73
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L74
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC19
|
|
movt r0, #:upper16:.LC19
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
movw r3, #893
|
|
bl printk
|
|
.L74:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #160]
|
|
mov r3, #0
|
|
str r3, [sp, #160]
|
|
mov r3, #0
|
|
str r3, [sp, #84]
|
|
mov r3, #0
|
|
str r3, [sp, #88]
|
|
ldr r3, [sp, #160]
|
|
str r3, [sp, #88]
|
|
add r3, sp, #84
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
str r3, [r2, #12]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r1, r3, #4
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #12]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r2, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #2
|
|
mov r2, r3
|
|
movw r3, #19923
|
|
movt r3, 4194
|
|
umull r2, r3, r2, r3
|
|
mov r2, r3, lsr #6
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
add r3, r2, r3
|
|
mov r0, r1
|
|
mov r1, r3
|
|
bl mod_timer
|
|
.L73:
|
|
ldr r3, [sp, #228]
|
|
str r3, [sp, #156]
|
|
ldr r3, [sp, #156]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L75
|
|
ldr r3, [sp, #156]
|
|
and r3, r3, #64
|
|
cmp r3, #0
|
|
bne .L76
|
|
.L75:
|
|
mov r3, #1
|
|
b .L78
|
|
.L76:
|
|
mov r3, #0
|
|
.L78:
|
|
cmp r3, #0
|
|
beq .L79
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #1
|
|
str r2, [r3, #160]
|
|
mov r3, #5
|
|
str r3, [sp, #152]
|
|
mov r3, #0
|
|
str r3, [sp, #92]
|
|
mov r3, #0
|
|
str r3, [sp, #96]
|
|
ldr r3, [sp, #152]
|
|
str r3, [sp, #96]
|
|
add r3, sp, #92
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
ldr r3, [r3, #4]
|
|
mov r2, r3
|
|
mov r3, #65280
|
|
movt r3, 31
|
|
and r3, r3, r2
|
|
cmp r3, #0
|
|
beq .L82
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #4
|
|
mov r0, r3
|
|
bl del_timer
|
|
b .L83
|
|
.L82:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #4
|
|
mov r0, r3
|
|
bl del_timer_sync
|
|
.L83:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L72
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC20
|
|
movt r0, #:upper16:.LC20
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
movw r3, #907
|
|
bl printk
|
|
b .L72
|
|
.L79:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L72
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC21
|
|
movt r0, #:upper16:.LC21
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
movw r3, #909
|
|
bl printk
|
|
.L72:
|
|
ldr r3, [sp, #228]
|
|
and r3, r3, #128
|
|
cmp r3, #0
|
|
beq .L85
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #2
|
|
cmp r3, #0
|
|
beq .L86
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC22
|
|
movt r0, #:upper16:.LC22
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
movw r3, #914
|
|
bl printk
|
|
.L86:
|
|
mov r3, #7
|
|
str r3, [sp, #148]
|
|
mov r3, #0
|
|
str r3, [sp, #100]
|
|
mov r3, #0
|
|
str r3, [sp, #104]
|
|
ldr r3, [sp, #148]
|
|
str r3, [sp, #104]
|
|
add r3, sp, #100
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
.L85:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #220]
|
|
cmp r3, #0
|
|
beq .L87
|
|
movw r0, #18444
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
mov r3, r3, asr #12
|
|
and r3, r3, #1
|
|
str r3, [sp, #204]
|
|
ldr r3, [sp, #224]
|
|
mov r3, r3, lsr #7
|
|
and r3, r3, #1
|
|
str r3, [sp, #200]
|
|
ldr r3, [sp, #204]
|
|
cmp r3, #1
|
|
bne .L87
|
|
ldr r3, [sp, #200]
|
|
cmp r3, #1
|
|
bne .L87
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L88
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC23
|
|
movt r0, #:upper16:.LC23
|
|
mov r1, r3
|
|
ldr r2, .L93
|
|
movw r3, #931
|
|
bl printk
|
|
.L88:
|
|
movw r0, #18444
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #220]
|
|
ldr r3, [sp, #220]
|
|
bic r3, r3, #4096
|
|
str r3, [sp, #216]
|
|
movw r0, #18444
|
|
movt r0, 8111
|
|
ldr r1, [sp, #216]
|
|
bl set_pon_phy_data
|
|
movw r0, #18440
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #220]
|
|
ldr r3, [sp, #220]
|
|
orr r3, r3, #128
|
|
str r3, [sp, #216]
|
|
movw r0, #18440
|
|
movt r0, 8111
|
|
ldr r1, [sp, #216]
|
|
bl set_pon_phy_data
|
|
movw r0, #18444
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #220]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L89
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #220]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC24
|
|
movt r0, #:upper16:.LC24
|
|
mov r1, r2
|
|
ldr r2, .L93
|
|
movw r3, #942
|
|
bl printk
|
|
.L89:
|
|
movw r0, #18440
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #220]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L90
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #220]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC25
|
|
movt r0, #:upper16:.LC25
|
|
mov r1, r2
|
|
ldr r2, .L93
|
|
movw r3, #946
|
|
bl printk
|
|
.L90:
|
|
mov r3, #2
|
|
str r3, [sp, #144]
|
|
mov r3, #0
|
|
str r3, [sp, #108]
|
|
mov r3, #0
|
|
str r3, [sp, #112]
|
|
ldr r3, [sp, #144]
|
|
str r3, [sp, #112]
|
|
add r3, sp, #108
|
|
mov r0, r3
|
|
bl phy_event_handler
|
|
mov r0, #0
|
|
bl phy_trans_power_switch
|
|
.L87:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #106]
|
|
cmp r3, #0
|
|
bne .L91
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
str r3, [r2, #108]
|
|
.L91:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #106]
|
|
add r2, r2, #1
|
|
uxth r2, r2
|
|
strh r2, [r3, #106] @ movhi
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #106]
|
|
cmp r3, #10
|
|
bne .L92
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
strh r2, [r3, #106] @ movhi
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #108]
|
|
rsb r3, r3, r2
|
|
cmp r3, #49
|
|
bhi .L92
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L92
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #228]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #224]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
mov r1, r2
|
|
ldr r2, .L93
|
|
mov r3, #972
|
|
bl printk
|
|
.L92:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #152
|
|
str r3, [sp, #140]
|
|
ldr r3, [sp, #208]
|
|
str r3, [sp, #136]
|
|
ldr r3, [sp, #140]
|
|
mov r0, r3
|
|
ldr r1, [sp, #136]
|
|
bl _raw_spin_unlock_irqrestore
|
|
add sp, sp, #236
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L94:
|
|
.align 2
|
|
.L93:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size phy_isr, .-phy_isr
|
|
.align 2
|
|
.type phy_isr_request, %function
|
|
phy_isr_request:
|
|
.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
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
bl phy_isr
|
|
mov r3, #1
|
|
mov r0, r3
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size phy_isr_request, .-phy_isr_request
|
|
.align 2
|
|
.global phy_register_cb_handler
|
|
.type phy_register_cb_handler, %function
|
|
phy_register_cb_handler:
|
|
.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]
|
|
cmp r3, #0
|
|
bne .L98
|
|
mvn r3, #0
|
|
b .L99
|
|
.L98:
|
|
mvn r3, #0
|
|
.L99:
|
|
mov r0, r3
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
bx lr
|
|
.fnend
|
|
.size phy_register_cb_handler, .-phy_register_cb_handler
|
|
.align 2
|
|
.global phy_unregister_cb_handler
|
|
.type phy_unregister_cb_handler, %function
|
|
phy_unregister_cb_handler:
|
|
.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]
|
|
mvn r3, #13
|
|
mov r0, r3
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
bx lr
|
|
.fnend
|
|
.size phy_unregister_cb_handler, .-phy_unregister_cb_handler
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC27:
|
|
.ascii "[%lu0ms][%s:%d] __2__xpon_phy_start__ [1]is_config_"
|
|
.ascii "mode=%d [2]phy_start irq=%d\012\000"
|
|
.text
|
|
.align 2
|
|
.global xpon_phy_start
|
|
.type xpon_phy_start, %function
|
|
xpon_phy_start:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ 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]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L103
|
|
mov r3, #0
|
|
b .L104
|
|
.L103:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L105
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
mov r1, r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
str r1, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC27
|
|
movt r0, #:upper16:.LC27
|
|
mov r1, r2
|
|
ldr r2, .L106
|
|
movw r3, #1054
|
|
bl printk
|
|
.L105:
|
|
movw r0, #1524
|
|
movt r0, 49071
|
|
mov r1, #255
|
|
bl set_pon_phy_data
|
|
movw r0, #18440
|
|
movt r0, 8111
|
|
mov r1, #255
|
|
bl set_pon_phy_data
|
|
mov r0, #99
|
|
mov r1, #0
|
|
bl phy_int_config
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #120]
|
|
str r3, [r2, #132]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r1, r3, #124
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #132]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r2, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #2
|
|
mov r2, r3
|
|
movw r3, #19923
|
|
movt r3, 4194
|
|
umull r2, r3, r2, r3
|
|
mov r2, r3, lsr #6
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
add r3, r2, r3
|
|
mov r0, r1
|
|
mov r1, r3
|
|
bl mod_timer
|
|
mov r3, #0
|
|
.L104:
|
|
mov r0, r3
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L107:
|
|
.align 2
|
|
.L106:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size xpon_phy_start, .-xpon_phy_start
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC28:
|
|
.ascii "[%lu0ms][%s:%d] ___PON_SET_PHY_STOP___ [1]is_config"
|
|
.ascii "_mode=%d [2]phy_start irq=%d\012\000"
|
|
.text
|
|
.align 2
|
|
.global xpon_phy_stop
|
|
.type xpon_phy_stop, %function
|
|
xpon_phy_stop:
|
|
.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
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L109
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
mov r1, r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
str r1, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC28
|
|
movt r0, #:upper16:.LC28
|
|
mov r1, r2
|
|
ldr r2, .L119
|
|
movw r3, #1086
|
|
bl printk
|
|
.L109:
|
|
mov r0, #0
|
|
mov r1, #0
|
|
bl phy_int_config
|
|
mov r0, #0
|
|
bl phy_fw_ready
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
ldr r3, [r3, #4]
|
|
mov r2, r3
|
|
mov r3, #65280
|
|
movt r3, 31
|
|
and r3, r3, r2
|
|
cmp r3, #0
|
|
beq .L112
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #124
|
|
mov r0, r3
|
|
bl del_timer
|
|
b .L113
|
|
.L112:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #124
|
|
mov r0, r3
|
|
bl del_timer_sync
|
|
.L113:
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
ldr r3, [r3, #4]
|
|
mov r2, r3
|
|
mov r3, #65280
|
|
movt r3, 31
|
|
and r3, r3, r2
|
|
cmp r3, #0
|
|
beq .L116
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #4
|
|
mov r0, r3
|
|
bl del_timer
|
|
b .L117
|
|
.L116:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #4
|
|
mov r0, r3
|
|
bl del_timer_sync
|
|
.L117:
|
|
mov r3, #0
|
|
mov r0, r3
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L120:
|
|
.align 2
|
|
.L119:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size xpon_phy_stop, .-xpon_phy_stop
|
|
.global gphy_rx_test_timer_value
|
|
.bss
|
|
.align 2
|
|
.type gphy_rx_test_timer_value, %object
|
|
.size gphy_rx_test_timer_value, 4
|
|
gphy_rx_test_timer_value:
|
|
.space 4
|
|
.global gphy_rx_test_timer
|
|
.align 2
|
|
.type gphy_rx_test_timer, %object
|
|
.size gphy_rx_test_timer, 28
|
|
gphy_rx_test_timer:
|
|
.space 28
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC29:
|
|
.ascii "Rx_Sensitivity_Test PRBS error counter: 0x%x\012\000"
|
|
.align 2
|
|
.LC30:
|
|
.ascii "Rx_Sensitivity_Test BER: %u\012\000"
|
|
.text
|
|
.align 2
|
|
.global phy_rx_sens_timer
|
|
.type phy_rx_sens_timer, %function
|
|
phy_rx_sens_timer:
|
|
.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]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
mov r0, #704
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #0
|
|
bl set_pon_phy_data
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #0
|
|
bl set_pon_phy_data
|
|
movw r0, #:lower16:.LC29
|
|
movt r0, #:upper16:.LC29
|
|
ldr r1, [sp, #12]
|
|
bl printk
|
|
ldr r3, [sp, #12]
|
|
movw r2, #3743
|
|
mul r3, r2, r3
|
|
str r3, [sp, #8]
|
|
ldr r2, [sp, #8]
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
umull r2, r3, r2, r3
|
|
mov r3, r3, lsr #5
|
|
str r3, [sp, #12]
|
|
movw r3, #:lower16:gphy_test_rx_ber
|
|
movt r3, #:upper16:gphy_test_rx_ber
|
|
ldr r2, [sp, #12]
|
|
str r2, [r3]
|
|
movw r0, #:lower16:.LC30
|
|
movt r0, #:upper16:.LC30
|
|
ldr r1, [sp, #12]
|
|
bl printk
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size phy_rx_sens_timer, .-phy_rx_sens_timer
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC31:
|
|
.ascii "Rx_Sensitivity_Test start: 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global phy_rx_sensitivity_test
|
|
.type phy_rx_sensitivity_test, %function
|
|
phy_rx_sensitivity_test:
|
|
.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 r3, #0
|
|
str r3, [sp, #28]
|
|
movw r3, #:lower16:gphy_test_rx_ber
|
|
movt r3, #:upper16:gphy_test_rx_ber
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
add r2, r3, #1000
|
|
movw r3, #:lower16:gphy_rx_test_timer
|
|
movt r3, #:upper16:gphy_rx_test_timer
|
|
str r2, [r3, #8]
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #0
|
|
bl set_pon_phy_data
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #0
|
|
bl set_pon_phy_data
|
|
mov r0, #292
|
|
movt r0, 49071
|
|
mov r1, #0
|
|
movt r1, 65312
|
|
bl set_pon_phy_data
|
|
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, #:lower16:gphy_rx_test_timer
|
|
movt r0, #:upper16:gphy_rx_test_timer
|
|
bl add_timer
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #1
|
|
bl set_pon_phy_data
|
|
mov r0, #708
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #28]
|
|
movw r0, #:lower16:.LC31
|
|
movt r0, #:upper16:.LC31
|
|
ldr r1, [sp, #28]
|
|
bl printk
|
|
add sp, sp, #36
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size phy_rx_sensitivity_test, .-phy_rx_sensitivity_test
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC32:
|
|
.ascii "unknown command id!\012\000"
|
|
.text
|
|
.align 2
|
|
.type pon_phy_get_api_dispatch, %function
|
|
pon_phy_get_api_dispatch:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 48
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, r5, lr}
|
|
.save {r4, r5, lr}
|
|
.pad #52
|
|
sub sp, sp, #52
|
|
str r0, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
mov r2, #0
|
|
str r2, [r3, #8]
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #4]
|
|
movw r2, #32796
|
|
cmp r3, r2
|
|
bne .L124
|
|
movw r3, #:lower16:en7571_select
|
|
movt r3, #:upper16:en7571_select
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L125
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl en7571_param_status_real
|
|
ldr r3, [sp, #4]
|
|
ldr r2, [r3, #12]
|
|
movw r3, #:lower16:en7571_alarm
|
|
movt r3, #:upper16:en7571_alarm
|
|
ldr r3, [r3]
|
|
str r3, [r2, #12]
|
|
b .L126
|
|
.L125:
|
|
movw r3, #:lower16:mt7570_select
|
|
movt r3, #:upper16:mt7570_select
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L127
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl mt7570_param_status_real
|
|
ldr r3, [sp, #4]
|
|
ldr r2, [r3, #12]
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
str r3, [r2, #12]
|
|
b .L126
|
|
.L127:
|
|
bl GET_IS_FPGA
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L128
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
str r3, [sp, #44]
|
|
mov r3, #10
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
cmp r3, #0
|
|
beq .L129
|
|
ldr r0, [sp, #44]
|
|
ldr r1, [sp, #40]
|
|
bl __memzero
|
|
.L129:
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
mov r2, #0
|
|
str r2, [r3, #12]
|
|
b .L126
|
|
.L128:
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl phy_trans_param_status_real
|
|
ldr r3, [sp, #4]
|
|
ldr r4, [r3, #12]
|
|
bl phy_tx_alarm
|
|
mov r5, r0
|
|
bl phy_rx_power_alarm
|
|
mov r3, r0
|
|
orr r3, r5, r3
|
|
str r3, [r4, #12]
|
|
b .L123
|
|
.L126:
|
|
b .L123
|
|
.L124:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
mov r0, r3
|
|
bl _raw_spin_lock_irqsave
|
|
str r0, [sp, #36]
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #4]
|
|
sub r3, r3, #32768
|
|
sub r3, r3, #1
|
|
cmp r3, #37
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L132
|
|
.L134:
|
|
.word .L133
|
|
.word .L135
|
|
.word .L132
|
|
.word .L132
|
|
.word .L132
|
|
.word .L132
|
|
.word .L132
|
|
.word .L136
|
|
.word .L137
|
|
.word .L138
|
|
.word .L132
|
|
.word .L132
|
|
.word .L139
|
|
.word .L132
|
|
.word .L132
|
|
.word .L132
|
|
.word .L132
|
|
.word .L140
|
|
.word .L141
|
|
.word .L132
|
|
.word .L132
|
|
.word .L142
|
|
.word .L143
|
|
.word .L144
|
|
.word .L145
|
|
.word .L146
|
|
.word .L147
|
|
.word .L132
|
|
.word .L148
|
|
.word .L149
|
|
.word .L150
|
|
.word .L132
|
|
.word .L132
|
|
.word .L132
|
|
.word .L132
|
|
.word .L151
|
|
.word .L152
|
|
.word .L153
|
|
.L133:
|
|
bl phy_los_status
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L135:
|
|
bl phy_ready_status
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L145:
|
|
bl phy_ready_status
|
|
mov r3, r0
|
|
cmp r3, #1
|
|
bne .L155
|
|
bl phy_los_status
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L155
|
|
mov r2, #1
|
|
b .L157
|
|
.L155:
|
|
mov r2, #0
|
|
.L157:
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L146:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #112]
|
|
ubfx r3, r3, #3, #4
|
|
uxtb r3, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L147:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #112]
|
|
ubfx r3, r3, #1, #1
|
|
uxtb r3, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L148:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #112]
|
|
ubfx r3, r3, #0, #1
|
|
uxtb r3, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L140:
|
|
bl phy_bip_counter
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L139:
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl phy_rx_fec_counter
|
|
b .L154
|
|
.L141:
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl phy_rx_frame_counter
|
|
b .L154
|
|
.L143:
|
|
bl phy_rx_fec_getting
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L142:
|
|
bl phy_rx_fec_status
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L136:
|
|
bl phy_tx_fec_status
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L137:
|
|
bl phy_tx_burst_getting
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L138:
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl phy_trans_tx_getting
|
|
b .L154
|
|
.L144:
|
|
bl phy_trans_rx_getting
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L149:
|
|
bl phy_round_trip_delay_sof
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L150:
|
|
movw r3, #:lower16:en7571_ver
|
|
movt r3, #:upper16:en7571_ver
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L151:
|
|
ldr r3, [sp, #4]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl get_pon_phy_data
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L152:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #216]
|
|
mov r2, r3
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L153:
|
|
mov r0, #704
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r2, r0
|
|
ldr r3, [sp, #4]
|
|
str r2, [r3, #8]
|
|
b .L154
|
|
.L132:
|
|
bl dump_stack
|
|
movw r0, #:lower16:.LC32
|
|
movt r0, #:upper16:.LC32
|
|
bl printk
|
|
ldr r3, [sp, #4]
|
|
mvn r2, #0
|
|
str r2, [r3, #8]
|
|
mov r0, r0 @ nop
|
|
.L154:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
mov r0, r3
|
|
ldr r1, [sp, #24]
|
|
bl _raw_spin_unlock_irqrestore
|
|
.L123:
|
|
add sp, sp, #52
|
|
@ sp needed
|
|
ldmfd sp!, {r4, r5, pc}
|
|
.fnend
|
|
.size pon_phy_get_api_dispatch, .-pon_phy_get_api_dispatch
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC33:
|
|
.ascii "[%lu0ms][%s:%d] __2__PON_SET_PHY_START__ [1]is_conf"
|
|
.ascii "ig_mode=%d [2]phy_start irq=%d\012\000"
|
|
.align 2
|
|
.LC34:
|
|
.ascii "[%lu0ms][%s:%d] __2__PON_SET_PHY_START__1st__ [1]is"
|
|
.ascii "_config_mode=%d [2]phy_start irq=%d\012\000"
|
|
.align 2
|
|
.LC35:
|
|
.ascii "[%lu0ms][%s:%d] Get device failed.\012\000"
|
|
.align 2
|
|
.LC36:
|
|
.ascii "phy_isr\000"
|
|
.align 2
|
|
.LC37:
|
|
.ascii "\015\012 xpon_phy NOT start yet!! [%s:%d] gpPhyPriv"
|
|
.ascii "->is_phy_start = %d\015\012\000"
|
|
.align 2
|
|
.LC38:
|
|
.ascii "[%lu0ms][%s:%d] __1__phy_mode_config__req_isr__ [1]"
|
|
.ascii "is_config_mode=%d [2]phy_start irq 2 ==> %d\012\000"
|
|
.text
|
|
.align 2
|
|
.type pon_phy_set_api_dispatch, %function
|
|
pon_phy_set_api_dispatch:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 88
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #100
|
|
sub sp, sp, #100
|
|
str r0, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
mov r2, #0
|
|
str r2, [r3, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #92]
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r3, #8
|
|
bne .L161
|
|
bl phy_trans_model_setting
|
|
.L161:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r3, #1
|
|
bne .L162
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L163
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
mov r1, r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
str r1, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC33
|
|
movt r0, #:upper16:.LC33
|
|
mov r1, r2
|
|
ldr r2, .L208
|
|
movw r3, #1362
|
|
bl printk
|
|
.L163:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L164
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L165
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
mov r1, r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
str r1, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC34
|
|
movt r0, #:upper16:.LC34
|
|
mov r1, r2
|
|
ldr r2, .L208
|
|
movw r3, #1369
|
|
bl printk
|
|
.L165:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #1
|
|
strb r2, [r3, #118]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L166
|
|
bl get_pon_phy_dev
|
|
str r0, [sp, #92]
|
|
ldr r3, [sp, #92]
|
|
cmp r3, #0
|
|
bne .L167
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L168
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC35
|
|
movt r0, #:upper16:.LC35
|
|
mov r1, r3
|
|
ldr r2, .L208
|
|
movw r3, #1375
|
|
bl printk
|
|
b .L160
|
|
.L168:
|
|
b .L160
|
|
.L167:
|
|
bl get_pon_phy_irq
|
|
mov r3, r0
|
|
str r3, [sp, #84]
|
|
movw r3, #:lower16:phy_isr_request
|
|
movt r3, #:upper16:phy_isr_request
|
|
str r3, [sp, #80]
|
|
mov r3, #0
|
|
str r3, [sp, #76]
|
|
movw r3, #:lower16:.LC36
|
|
movt r3, #:upper16:.LC36
|
|
str r3, [sp, #72]
|
|
ldr r3, [sp, #92]
|
|
str r3, [sp, #68]
|
|
ldr r3, [sp, #72]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #68]
|
|
str r3, [sp, #4]
|
|
ldr r0, [sp, #84]
|
|
ldr r1, [sp, #80]
|
|
mov r2, #0
|
|
ldr r3, [sp, #76]
|
|
bl request_threaded_irq
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L162
|
|
.L166:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #2
|
|
strb r2, [r3, #118]
|
|
b .L160
|
|
.L164:
|
|
ldr r3, [sp, #12]
|
|
mov r2, #0
|
|
str r2, [r3, #8]
|
|
.L162:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r3, #2
|
|
bne .L171
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L172
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
mov r1, r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
str r1, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC28
|
|
movt r0, #:upper16:.LC28
|
|
mov r1, r2
|
|
ldr r2, .L208
|
|
movw r3, #1409
|
|
bl printk
|
|
.L172:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
beq .L171
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC37
|
|
movt r0, #:upper16:.LC37
|
|
movw r1, #:lower16:__FUNCTION__.42051
|
|
movt r1, #:upper16:__FUNCTION__.42051
|
|
movw r2, #1417
|
|
bl printk
|
|
.L171:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #64]
|
|
ldr r3, [sp, #64]
|
|
mov r0, r3
|
|
bl _raw_spin_lock_irqsave
|
|
str r0, [sp, #88]
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #4]
|
|
sub r3, r3, #1
|
|
cmp r3, #35
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L174
|
|
.L176:
|
|
.word .L175
|
|
.word .L177
|
|
.word .L174
|
|
.word .L178
|
|
.word .L179
|
|
.word .L180
|
|
.word .L181
|
|
.word .L182
|
|
.word .L183
|
|
.word .L184
|
|
.word .L185
|
|
.word .L186
|
|
.word .L187
|
|
.word .L188
|
|
.word .L174
|
|
.word .L189
|
|
.word .L190
|
|
.word .L191
|
|
.word .L192
|
|
.word .L193
|
|
.word .L194
|
|
.word .L195
|
|
.word .L196
|
|
.word .L174
|
|
.word .L197
|
|
.word .L174
|
|
.word .L198
|
|
.word .L199
|
|
.word .L174
|
|
.word .L174
|
|
.word .L174
|
|
.word .L200
|
|
.word .L201
|
|
.word .L174
|
|
.word .L174
|
|
.word .L202
|
|
.L181:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3, #4]
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl phy_mode_config_for_mac
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L201:
|
|
bl pon_phy_scu_reset_init
|
|
b .L203
|
|
.L200:
|
|
bl xPON_Logic_Reset
|
|
b .L203
|
|
.L195:
|
|
bl phy_reset_counter
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L175:
|
|
bl xpon_phy_start
|
|
b .L203
|
|
.L177:
|
|
bl xpon_phy_stop
|
|
b .L203
|
|
.L179:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_fw_ready
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L183:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_counter_clear
|
|
b .L203
|
|
.L180:
|
|
bl eponMode_phy_reset
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L184:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_bit_delay
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L185:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_tx_power_config
|
|
b .L203
|
|
.L192:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_rogue_prbs_config
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L178:
|
|
bl phy_dev_init
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L186:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_trans_power_switch
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L197:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #168]
|
|
mov r0, #1024
|
|
movt r0, 49071
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #164]
|
|
movw r0, #1028
|
|
movt r0, 49071
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #172]
|
|
movw r0, #1032
|
|
movt r0, 49071
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
b .L203
|
|
.L182:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #208]
|
|
mov r0, #312
|
|
movt r0, 49071
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
b .L203
|
|
.L193:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_rx_fec_setting
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L187:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_tx_burst_config
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L188:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldrb r3, [r3, #4] @ zero_extendqisi2
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl phy_gpon_delimiter_guard
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L189:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl phy_trans_tx_setting
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L194:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_trans_rx_setting
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L190:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl phy_gpon_preamble
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L191:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
mov r0, r3
|
|
bl phy_gpon_extend_preamble
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L196:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl phy_set_epon_ts_continue_mode
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L198:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl phy_set_traffic_status
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L199:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl gpio_BOSA_Tx_power_switch
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L202:
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl phy_tx_Mode
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
b .L203
|
|
.L174:
|
|
movw r0, #:lower16:.LC32
|
|
movt r0, #:upper16:.LC32
|
|
bl printk
|
|
ldr r3, [sp, #12]
|
|
mvn r2, #0
|
|
str r2, [r3, #8]
|
|
mov r0, r0 @ nop
|
|
.L203:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #60]
|
|
ldr r3, [sp, #88]
|
|
str r3, [sp, #56]
|
|
ldr r3, [sp, #60]
|
|
mov r0, r3
|
|
ldr r1, [sp, #56]
|
|
bl _raw_spin_unlock_irqrestore
|
|
ldr r3, [sp, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r3, #7
|
|
bne .L160
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
bne .L160
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #1
|
|
strb r2, [r3, #118]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L204
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
mov r1, r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
str r1, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC38
|
|
movt r0, #:upper16:.LC38
|
|
mov r1, r2
|
|
ldr r2, .L208
|
|
movw r3, #1566
|
|
bl printk
|
|
.L204:
|
|
bl get_pon_phy_dev
|
|
str r0, [sp, #92]
|
|
ldr r3, [sp, #92]
|
|
cmp r3, #0
|
|
bne .L205
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L206
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC35
|
|
movt r0, #:upper16:.LC35
|
|
mov r1, r3
|
|
ldr r2, .L208
|
|
mov r3, #1568
|
|
bl printk
|
|
b .L160
|
|
.L206:
|
|
b .L160
|
|
.L205:
|
|
bl get_pon_phy_irq
|
|
mov r3, r0
|
|
str r3, [sp, #52]
|
|
movw r3, #:lower16:phy_isr_request
|
|
movt r3, #:upper16:phy_isr_request
|
|
str r3, [sp, #48]
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
movw r3, #:lower16:.LC36
|
|
movt r3, #:upper16:.LC36
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #92]
|
|
str r3, [sp, #36]
|
|
ldr r3, [sp, #40]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp, #4]
|
|
ldr r0, [sp, #52]
|
|
ldr r1, [sp, #48]
|
|
mov r2, #0
|
|
ldr r3, [sp, #44]
|
|
bl request_threaded_irq
|
|
mov r2, r0
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3, #8]
|
|
.L160:
|
|
add sp, sp, #100
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L209:
|
|
.align 2
|
|
.L208:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size pon_phy_set_api_dispatch, .-pon_phy_set_api_dispatch
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC39:
|
|
.ascii "unknown api_data->api_type: %d\012\000"
|
|
.align 2
|
|
.LC40:
|
|
.ascii "set\000"
|
|
.align 2
|
|
.LC41:
|
|
.ascii "get\000"
|
|
.align 2
|
|
.LC42:
|
|
.ascii "[%lu0ms][%s:%d] bypass %s API 0x%x \012\000"
|
|
.text
|
|
.align 2
|
|
.global pon_phy_api_dispatch
|
|
.type pon_phy_api_dispatch, %function
|
|
pon_phy_api_dispatch:
|
|
.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
|
|
str r0, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:phy_api_en
|
|
movt r3, #:upper16:phy_api_en
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L211
|
|
ldr r3, [sp, #20]
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L213
|
|
cmp r3, #1
|
|
beq .L214
|
|
b .L220
|
|
.L213:
|
|
ldr r0, [sp, #20]
|
|
bl pon_phy_get_api_dispatch
|
|
b .L215
|
|
.L214:
|
|
ldr r0, [sp, #20]
|
|
bl pon_phy_set_api_dispatch
|
|
b .L215
|
|
.L220:
|
|
bl dump_stack
|
|
ldr r3, [sp, #20]
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC39
|
|
movt r0, #:upper16:.LC39
|
|
mov r1, r3
|
|
bl printk
|
|
ldr r3, [sp, #20]
|
|
mvn r2, #0
|
|
str r2, [r3, #8]
|
|
mov r0, r0 @ nop
|
|
.L215:
|
|
b .L216
|
|
.L211:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L216
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r1, [r3]
|
|
ldr r3, [sp, #20]
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L217
|
|
movw r3, #:lower16:.LC40
|
|
movt r3, #:upper16:.LC40
|
|
b .L218
|
|
.L217:
|
|
movw r3, #:lower16:.LC41
|
|
movt r3, #:upper16:.LC41
|
|
.L218:
|
|
ldr r2, [sp, #20]
|
|
ldr r2, [r2, #4]
|
|
str r3, [sp]
|
|
str r2, [sp, #4]
|
|
movw r0, #:lower16:.LC42
|
|
movt r0, #:upper16:.LC42
|
|
ldr r2, .L221
|
|
movw r3, #1607
|
|
bl printk
|
|
.L216:
|
|
mov r3, #2
|
|
mov r0, r3
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L222:
|
|
.align 2
|
|
.L221:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size pon_phy_api_dispatch, .-pon_phy_api_dispatch
|
|
.global phy_api_dispatch_hook_ops
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC43:
|
|
.ascii "pon_phy_api_dispatch\000"
|
|
.data
|
|
.align 2
|
|
.type phy_api_dispatch_hook_ops, %object
|
|
.size phy_api_dispatch_hook_ops, 40
|
|
phy_api_dispatch_hook_ops:
|
|
.space 16
|
|
.word .LC43
|
|
.word 1
|
|
.word pon_phy_api_dispatch
|
|
.word 26
|
|
.word 0
|
|
.word 1
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC44:
|
|
.ascii "\015\012\015\012______ XPON_PHY init ______\015\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC45:
|
|
.ascii "little endian\012\000"
|
|
.align 2
|
|
.LC46:
|
|
.ascii "Alloc data struct memory failed\012\000"
|
|
.align 2
|
|
.LC47:
|
|
.ascii "NCPO_RECOVER %d, PHY_TX_TDC_HOLD_EN %d, NCPO_RECOVE"
|
|
.ascii "R_DBG_MSG %d\012\000"
|
|
.align 2
|
|
.LC48:
|
|
.ascii "[%lu0ms][%s:%d] phy debug initialization failed.\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC49:
|
|
.ascii "[%lu0ms][%s:%d] phy los status initialization faile"
|
|
.ascii "d.\012\000"
|
|
.align 2
|
|
.LC50:
|
|
.ascii "[%lu0ms][%s:%d] phy device initialization failed.\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC51:
|
|
.ascii "EN7571 found!\012\000"
|
|
.align 2
|
|
.LC52:
|
|
.ascii "[%lu0ms][%s:%d] 7571 initialization failed.\012\000"
|
|
.align 2
|
|
.LC53:
|
|
.ascii "LDDLA_task_wait\000"
|
|
.align 2
|
|
.LC54:
|
|
.ascii "EN7570 found!\012\000"
|
|
.align 2
|
|
.LC55:
|
|
.ascii "[%lu0ms][%s:%d] 7570 initialization failed.\012\000"
|
|
.align 2
|
|
.LC56:
|
|
.ascii "EN757x not found!\012\000"
|
|
.align 2
|
|
.LC57:
|
|
.ascii "PON PHY driver version is %d.%d.%d\012\000"
|
|
.align 2
|
|
.LC58:
|
|
.ascii "Register hook function failed! %s:%d\000"
|
|
.text
|
|
.align 2
|
|
.global pon_phy_init
|
|
.type pon_phy_init, %function
|
|
pon_phy_init:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 64
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #64
|
|
sub sp, sp, #64
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mvn r3, #0
|
|
str r3, [sp, #56]
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
movw r0, #:lower16:.LC44
|
|
movt r0, #:upper16:.LC44
|
|
bl printk
|
|
movw r0, #:lower16:.LC45
|
|
movt r0, #:upper16:.LC45
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L224
|
|
mov r3, #224
|
|
str r3, [sp, #28]
|
|
mov r3, #192
|
|
movt r3, 576
|
|
str r3, [sp, #24]
|
|
ldr r0, [sp, #28]
|
|
ldr r1, [sp, #24]
|
|
bl __kmalloc
|
|
mov r2, r0
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
str r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L224
|
|
movw r0, #:lower16:.LC46
|
|
movt r0, #:upper16:.LC46
|
|
bl printk
|
|
ldr r3, [sp, #60]
|
|
b .L248
|
|
.L224:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #96
|
|
strh r2, [r3, #96] @ movhi
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
strb r2, [r3, #118]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
strb r2, [r3, #119]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #104
|
|
str r3, [sp, #44]
|
|
mov r3, #12
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
cmp r3, #0
|
|
beq .L227
|
|
ldr r0, [sp, #44]
|
|
ldr r1, [sp, #40]
|
|
bl __memzero
|
|
.L227:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
ldrb r3, [r2, #112]
|
|
bfc r3, #7, #1
|
|
strb r3, [r2, #112]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
ldrb r3, [r2, #112]
|
|
mov r1, #10
|
|
bfi r3, r1, #3, #4
|
|
strb r3, [r2, #112]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #212]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #4
|
|
str r2, [r3, #216]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #1
|
|
strh r2, [r3, #116] @ movhi
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #152
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #152]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #156
|
|
str r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #156]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
movw r2, #271
|
|
str r2, [r3, #208]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #220]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #2
|
|
str r2, [r3, #160]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #1000
|
|
str r2, [r3, #120]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r2, r3, #124
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #120]
|
|
mov r0, r2
|
|
movw r1, #:lower16:phy_event_poll
|
|
movt r1, #:upper16:phy_event_poll
|
|
mov r2, r3
|
|
bl phy_create_timer
|
|
bl xPON_Phy_Reset
|
|
movw r0, #:lower16:.LC47
|
|
movt r0, #:upper16:.LC47
|
|
mov r1, #0
|
|
mov r2, #0
|
|
mov r3, #0
|
|
bl printk
|
|
bl phy_debug_init
|
|
str r0, [sp, #60]
|
|
ldr r3, [sp, #60]
|
|
cmp r3, #0
|
|
beq .L230
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L231
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC48
|
|
movt r0, #:upper16:.LC48
|
|
mov r1, r3
|
|
ldr r2, .L249
|
|
movw r3, #1717
|
|
bl printk
|
|
.L231:
|
|
ldr r3, [sp, #60]
|
|
b .L248
|
|
.L230:
|
|
bl los_status_init
|
|
str r0, [sp, #60]
|
|
ldr r3, [sp, #60]
|
|
cmp r3, #0
|
|
beq .L232
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L233
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC49
|
|
movt r0, #:upper16:.LC49
|
|
mov r1, r3
|
|
ldr r2, .L249
|
|
movw r3, #1723
|
|
bl printk
|
|
.L233:
|
|
ldr r3, [sp, #60]
|
|
b .L248
|
|
.L232:
|
|
bl phy_dev_init
|
|
str r0, [sp, #60]
|
|
ldr r3, [sp, #60]
|
|
cmp r3, #0
|
|
beq .L234
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L235
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC50
|
|
movt r0, #:upper16:.LC50
|
|
mov r1, r3
|
|
ldr r2, .L249
|
|
movw r3, #1729
|
|
bl printk
|
|
.L235:
|
|
ldr r3, [sp, #60]
|
|
b .L248
|
|
.L234:
|
|
bl GET_IS_FPGA
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L236
|
|
bl en7571_EN7571_detection
|
|
mov r3, r0
|
|
cmp r3, #1
|
|
bne .L237
|
|
movw r0, #:lower16:.LC51
|
|
movt r0, #:upper16:.LC51
|
|
bl printk
|
|
bl en7571_init
|
|
str r0, [sp, #60]
|
|
ldr r3, [sp, #60]
|
|
cmp r3, #0
|
|
beq .L238
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L239
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC52
|
|
movt r0, #:upper16:.LC52
|
|
mov r1, r3
|
|
ldr r2, .L249
|
|
movw r3, #1740
|
|
bl printk
|
|
.L239:
|
|
ldr r3, [sp, #60]
|
|
b .L248
|
|
.L238:
|
|
bl gpio_tx_dis_reset
|
|
mov r0, #1
|
|
bl gpio_BOSA_Tx_power_switch
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r4, [r3]
|
|
movw r0, #:lower16:LDDLA_task_wait
|
|
movt r0, #:upper16:LDDLA_task_wait
|
|
mov r1, #0
|
|
mvn r2, #0
|
|
movw r3, #:lower16:.LC53
|
|
movt r3, #:upper16:.LC53
|
|
bl kthread_create_on_node
|
|
str r0, [sp, #36]
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
cmn r3, #4096
|
|
movhi r3, #1
|
|
movls r3, #0
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
uxtb r3, r3
|
|
eor r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
beq .L241
|
|
ldr r0, [sp, #36]
|
|
bl wake_up_process
|
|
.L241:
|
|
ldr r3, [sp, #36]
|
|
str r3, [r4, #92]
|
|
movw r3, #:lower16:en7571_version
|
|
movt r3, #:upper16:en7571_version
|
|
ldr r3, [r3]
|
|
str r3, [sp, #56]
|
|
b .L236
|
|
.L237:
|
|
bl mt7570_EN7570_detection
|
|
mov r3, r0
|
|
cmp r3, #1
|
|
bne .L242
|
|
movw r0, #:lower16:.LC54
|
|
movt r0, #:upper16:.LC54
|
|
bl printk
|
|
bl mt7570_init
|
|
str r0, [sp, #60]
|
|
ldr r3, [sp, #60]
|
|
cmp r3, #0
|
|
beq .L243
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L244
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC55
|
|
movt r0, #:upper16:.LC55
|
|
mov r1, r3
|
|
ldr r2, .L249
|
|
movw r3, #1755
|
|
bl printk
|
|
.L244:
|
|
ldr r3, [sp, #60]
|
|
b .L248
|
|
.L243:
|
|
bl gpio_tx_dis_reset
|
|
mov r0, #1
|
|
bl gpio_BOSA_Tx_power_switch
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r4, [r3]
|
|
movw r0, #:lower16:LDDLA_task_wait
|
|
movt r0, #:upper16:LDDLA_task_wait
|
|
mov r1, #0
|
|
mvn r2, #0
|
|
movw r3, #:lower16:.LC53
|
|
movt r3, #:upper16:.LC53
|
|
bl kthread_create_on_node
|
|
str r0, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
cmn r3, #4096
|
|
movhi r3, #1
|
|
movls r3, #0
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
uxtb r3, r3
|
|
eor r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
beq .L246
|
|
ldr r0, [sp, #32]
|
|
bl wake_up_process
|
|
.L246:
|
|
ldr r3, [sp, #32]
|
|
str r3, [r4, #92]
|
|
movw r3, #:lower16:mt7570_version
|
|
movt r3, #:upper16:mt7570_version
|
|
ldr r3, [r3]
|
|
str r3, [sp, #56]
|
|
b .L236
|
|
.L242:
|
|
movw r0, #:lower16:.LC56
|
|
movt r0, #:upper16:.LC56
|
|
bl printk
|
|
.L236:
|
|
bl phy_trans_model_setting
|
|
movw r3, #:lower16:phy_date_version
|
|
movt r3, #:upper16:phy_date_version
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:phy_version
|
|
movt r3, #:upper16:phy_version
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC57
|
|
movt r0, #:upper16:.LC57
|
|
mov r1, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #56]
|
|
bl printk
|
|
movw r3, #:lower16:gphy_rx_test_timer_value
|
|
movt r3, #:upper16:gphy_rx_test_timer_value
|
|
movw r2, #10000
|
|
str r2, [r3]
|
|
movw r3, #:lower16:gphy_rx_test_timer_value
|
|
movt r3, #:upper16:gphy_rx_test_timer_value
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:gphy_rx_test_timer
|
|
movt r0, #:upper16:gphy_rx_test_timer
|
|
movw r1, #:lower16:phy_rx_sens_timer
|
|
movt r1, #:upper16:phy_rx_sens_timer
|
|
mov r2, r3
|
|
bl phy_create_timer
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
movw r2, #5000
|
|
str r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r2, r3, #4
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
mov r0, r2
|
|
movw r1, #:lower16:phy_ready_recover_expires
|
|
movt r1, #:upper16:phy_ready_recover_expires
|
|
mov r2, r3
|
|
bl phy_create_timer
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mvn r2, #55
|
|
strb r2, [r3, #104]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #30
|
|
strb r2, [r3, #105]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
strh r2, [r3, #106] @ movhi
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #108]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
ldrb r3, [r2, #112]
|
|
orr r3, r3, #1
|
|
strb r3, [r2, #112]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
ldrb r3, [r2, #112]
|
|
bfc r3, #1, #1
|
|
strb r3, [r2, #112]
|
|
movw r0, #:lower16:phy_api_dispatch_hook_ops
|
|
movt r0, #:upper16:phy_api_dispatch_hook_ops
|
|
bl ecnt_register_hook
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L247
|
|
movw r0, #:lower16:.LC58
|
|
movt r0, #:upper16:.LC58
|
|
movw r1, #:lower16:__FUNCTION__.42114
|
|
movt r1, #:upper16:__FUNCTION__.42114
|
|
movw r2, #1822
|
|
bl panic
|
|
.L247:
|
|
ldr r3, [sp, #60]
|
|
.L248:
|
|
mov r0, r3
|
|
add sp, sp, #64
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.L250:
|
|
.align 2
|
|
.L249:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size pon_phy_init, .-pon_phy_init
|
|
.global init_module
|
|
init_module = pon_phy_init
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC59:
|
|
.ascii "[%lu0ms][%s:%d] NULL pointer, pon phy deinit failed"
|
|
.ascii ".\012\000"
|
|
.text
|
|
.align 2
|
|
.global pon_phy_deinit
|
|
.type pon_phy_deinit, %function
|
|
pon_phy_deinit:
|
|
.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]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L252
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L253
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC59
|
|
movt r0, #:upper16:.LC59
|
|
mov r1, r3
|
|
ldr r2, .L264
|
|
movw r3, #1838
|
|
bl printk
|
|
b .L251
|
|
.L253:
|
|
b .L251
|
|
.L252:
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
ldr r3, [r3, #4]
|
|
mov r2, r3
|
|
mov r3, #65280
|
|
movt r3, 31
|
|
and r3, r3, r2
|
|
cmp r3, #0
|
|
beq .L257
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #4
|
|
mov r0, r3
|
|
bl del_timer
|
|
b .L258
|
|
.L257:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #4
|
|
mov r0, r3
|
|
bl del_timer_sync
|
|
.L258:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #92]
|
|
str r3, [sp]
|
|
ldr r3, [sp]
|
|
cmn r3, #4096
|
|
movhi r3, #1
|
|
movls r3, #0
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
uxtb r3, r3
|
|
eor r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
beq .L260
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #92]
|
|
mov r0, r3
|
|
bl kthread_stop
|
|
.L260:
|
|
mov r0, #0
|
|
mov r1, #0
|
|
bl phy_int_config
|
|
mov r0, #0
|
|
bl phy_trans_power_switch
|
|
bl phy_debug_deinit
|
|
movw r3, #:lower16:mt7570_select
|
|
movt r3, #:upper16:mt7570_select
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
beq .L261
|
|
movw r3, #:lower16:en7571_select
|
|
movt r3, #:upper16:en7571_select
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L262
|
|
.L261:
|
|
movw r3, #:lower16:i2c_access_queue
|
|
movt r3, #:upper16:i2c_access_queue
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl flush_workqueue
|
|
movw r3, #:lower16:i2c_access_queue
|
|
movt r3, #:upper16:i2c_access_queue
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl destroy_workqueue
|
|
.L262:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L263
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl kfree
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
.L263:
|
|
movw r0, #:lower16:phy_api_dispatch_hook_ops
|
|
movt r0, #:upper16:phy_api_dispatch_hook_ops
|
|
bl ecnt_unregister_hook
|
|
.L251:
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L265:
|
|
.align 2
|
|
.L264:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size pon_phy_deinit, .-pon_phy_deinit
|
|
.global cleanup_module
|
|
cleanup_module = pon_phy_deinit
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC60:
|
|
.ascii "[%lu0ms][%s:%d] PON PHY scu_reset_init mode=%d\012\000"
|
|
.align 2
|
|
.LC61:
|
|
.ascii "[%lu0ms][%s:%d] PON_SERDES_CTRL_0_ADDR = 0x%x \012\000"
|
|
.align 2
|
|
.LC62:
|
|
.ascii "[%lu0ms][%s:%d] PON PHY scu_rst & reinit done! \012"
|
|
.ascii "\000"
|
|
.text
|
|
.align 2
|
|
.global pon_phy_scu_reset_init
|
|
.type pon_phy_scu_reset_init, %function
|
|
pon_phy_scu_reset_init:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ 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 r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #16]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #1
|
|
cmp r3, #0
|
|
beq .L267
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #112]
|
|
ubfx r3, r3, #3, #4
|
|
uxtb r3, r3
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC60
|
|
movt r0, #:upper16:.LC60
|
|
mov r1, r2
|
|
ldr r2, .L279
|
|
movw r3, #1965
|
|
bl printk
|
|
.L267:
|
|
mov r0, #0
|
|
bl phy_fw_ready
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #212]
|
|
str r3, [sp, #12]
|
|
mov r0, #0
|
|
bl phy_trans_power_switch
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
ldr r3, [r3, #4]
|
|
mov r2, r3
|
|
mov r3, #65280
|
|
movt r3, 31
|
|
and r3, r3, r2
|
|
cmp r3, #0
|
|
beq .L270
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #124
|
|
mov r0, r3
|
|
bl del_timer
|
|
b .L271
|
|
.L270:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #124
|
|
mov r0, r3
|
|
bl del_timer_sync
|
|
.L271:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
str r3, [r2, #12]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r1, r3, #4
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #12]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r2, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #2
|
|
mov r2, r3
|
|
movw r3, #19923
|
|
movt r3, 4194
|
|
umull r2, r3, r2, r3
|
|
mov r2, r3, lsr #6
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
add r3, r2, r3
|
|
mov r0, r1
|
|
mov r1, r3
|
|
bl mod_timer
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
ldrb r3, [r2, #112]
|
|
bfc r3, #7, #1
|
|
strb r3, [r2, #112]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #2
|
|
str r2, [r3, #160]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mvn r2, #55
|
|
strb r2, [r3, #104]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #30
|
|
strb r2, [r3, #105]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
strh r2, [r3, #106] @ movhi
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mov r2, #0
|
|
str r2, [r3, #108]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
bl GET_SCU_RST_RG
|
|
mov r3, r0
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
orr r3, r3, #1
|
|
str r3, [sp, #8]
|
|
ldr r0, [sp, #8]
|
|
bl SET_SCU_RST_RG
|
|
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, #8]
|
|
bic r3, r3, #1
|
|
str r3, [sp, #8]
|
|
ldr r0, [sp, #8]
|
|
bl SET_SCU_RST_RG
|
|
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]
|
|
ldrb r3, [r3, #112]
|
|
ubfx r3, r3, #3, #4
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl Mode_Config_7523
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
orr r3, r3, #-2013265920
|
|
str r3, [sp, #28]
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #28]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #24]
|
|
bl set_pon_phy_data
|
|
bl GET_IOMUX_CTRL_3
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
orr r3, r3, #1
|
|
str r3, [sp, #28]
|
|
ldr r0, [sp, #28]
|
|
bl SET_IOMUX_CTRL_3
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
bic r3, r3, #4
|
|
str r3, [sp, #24]
|
|
mov r0, #264
|
|
movt r0, 49071
|
|
ldr r1, [sp, #24]
|
|
bl set_pon_phy_data
|
|
bl GET_SCU_RST_ACC_CHK_BMA
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
bic r3, r3, #4
|
|
str r3, [sp, #24]
|
|
ldr r0, [sp, #24]
|
|
bl SET_SCU_RST_ACC_CHK_BMA
|
|
bl GET_GPIO_SSR
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
bic r3, r3, #1024
|
|
str r3, [sp, #24]
|
|
ldr r0, [sp, #24]
|
|
bl SET_GPIO_SSR
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #118] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L272
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #119] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L272
|
|
mov r0, #99
|
|
mov r1, #0
|
|
bl phy_int_config
|
|
.L272:
|
|
mov r0, #1
|
|
mov r1, #1
|
|
mov r2, #1
|
|
bl phy_cnt_enable
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #22915
|
|
movt r3, 43691
|
|
str r3, [r2, #164]
|
|
movw r0, #1028
|
|
movt r0, 49071
|
|
movw r1, #22915
|
|
movt r1, 43691
|
|
bl set_pon_phy_data
|
|
bl phy_reset_counter
|
|
movw r3, #:lower16:a_tdc_setting
|
|
movt r3, #:upper16:a_tdc_setting
|
|
ldr r3, [r3]
|
|
mov r0, #504
|
|
movt r0, 49071
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
bl GET_IS_FPGA
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #208]
|
|
mov r0, #312
|
|
movt r0, 49071
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
mov r0, #16640
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #208]
|
|
and r3, r3, #64
|
|
cmp r3, #0
|
|
bne .L273
|
|
ldr r3, [sp, #24]
|
|
bic r3, r3, #536870912
|
|
str r3, [sp, #28]
|
|
b .L274
|
|
.L273:
|
|
ldr r3, [sp, #24]
|
|
orr r3, r3, #536870912
|
|
str r3, [sp, #28]
|
|
.L274:
|
|
mov r0, #16640
|
|
movt r0, 8111
|
|
ldr r1, [sp, #28]
|
|
bl set_pon_phy_data
|
|
mov r0, #16896
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #208]
|
|
and r3, r3, #128
|
|
cmp r3, #0
|
|
beq .L275
|
|
ldr r3, [sp, #24]
|
|
orr r3, r3, #16777216
|
|
str r3, [sp, #28]
|
|
b .L276
|
|
.L275:
|
|
ldr r3, [sp, #24]
|
|
bic r3, r3, #16777216
|
|
str r3, [sp, #28]
|
|
.L276:
|
|
mov r0, #16896
|
|
movt r0, 8111
|
|
ldr r1, [sp, #28]
|
|
bl set_pon_phy_data
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L277
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #28]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC61
|
|
movt r0, #:upper16:.LC61
|
|
mov r1, r2
|
|
ldr r2, .L279
|
|
movw r3, #2164
|
|
bl printk
|
|
.L277:
|
|
ldr r3, [sp, #12]
|
|
uxtb r3, r3
|
|
mov r0, r3
|
|
bl phy_trans_power_switch
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #8
|
|
cmp r3, #0
|
|
beq .L266
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC62
|
|
movt r0, #:upper16:.LC62
|
|
mov r1, r3
|
|
ldr r2, .L279
|
|
movw r3, #2175
|
|
bl printk
|
|
.L266:
|
|
add sp, sp, #36
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L280:
|
|
.align 2
|
|
.L279:
|
|
.word .LC1+61
|
|
.fnend
|
|
.size pon_phy_scu_reset_init, .-pon_phy_scu_reset_init
|
|
.section .modinfo,"a",%progbits
|
|
.type __UNIQUE_ID_license0, %object
|
|
.size __UNIQUE_ID_license0, 12
|
|
__UNIQUE_ID_license0:
|
|
.ascii "license=GPL\000"
|
|
.section __ksymtab_strings,"a",%progbits
|
|
.type __kstrtab_phy_register_cb_handler, %object
|
|
.size __kstrtab_phy_register_cb_handler, 24
|
|
__kstrtab_phy_register_cb_handler:
|
|
.ascii "phy_register_cb_handler\000"
|
|
.global __ksymtab_phy_register_cb_handler
|
|
.section ___ksymtab+phy_register_cb_handler,"a",%progbits
|
|
.align 2
|
|
.type __ksymtab_phy_register_cb_handler, %object
|
|
.size __ksymtab_phy_register_cb_handler, 8
|
|
__ksymtab_phy_register_cb_handler:
|
|
.word phy_register_cb_handler
|
|
.word __kstrtab_phy_register_cb_handler
|
|
.section __ksymtab_strings
|
|
.type __kstrtab_phy_unregister_cb_handler, %object
|
|
.size __kstrtab_phy_unregister_cb_handler, 26
|
|
__kstrtab_phy_unregister_cb_handler:
|
|
.ascii "phy_unregister_cb_handler\000"
|
|
.global __ksymtab_phy_unregister_cb_handler
|
|
.section ___ksymtab+phy_unregister_cb_handler,"a",%progbits
|
|
.align 2
|
|
.type __ksymtab_phy_unregister_cb_handler, %object
|
|
.size __ksymtab_phy_unregister_cb_handler, 8
|
|
__ksymtab_phy_unregister_cb_handler:
|
|
.word phy_unregister_cb_handler
|
|
.word __kstrtab_phy_unregister_cb_handler
|
|
.section .rodata
|
|
.align 2
|
|
.type __FUNCTION__.41874, %object
|
|
.size __FUNCTION__.41874, 26
|
|
__FUNCTION__.41874:
|
|
.ascii "phy_ready_recover_expires\000"
|
|
.align 2
|
|
.type __FUNCTION__.41917, %object
|
|
.size __FUNCTION__.41917, 16
|
|
__FUNCTION__.41917:
|
|
.ascii "phy_los_handler\000"
|
|
.align 2
|
|
.type __FUNCTION__.41935, %object
|
|
.size __FUNCTION__.41935, 18
|
|
__FUNCTION__.41935:
|
|
.ascii "phy_ready_handler\000"
|
|
.align 2
|
|
.type __FUNCTION__.42051, %object
|
|
.size __FUNCTION__.42051, 25
|
|
__FUNCTION__.42051:
|
|
.ascii "pon_phy_set_api_dispatch\000"
|
|
.align 2
|
|
.type __FUNCTION__.42114, %object
|
|
.size __FUNCTION__.42114, 13
|
|
__FUNCTION__.42114:
|
|
.ascii "pon_phy_init\000"
|
|
.ident "GCC: (Buildroot 2015.08.1-gd814875) 4.9.3"
|
|
.section .note.GNU-stack,"",%progbits
|