Files

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