Files

2618 lines
47 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_tx.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 g_tx_ctl
.bss
.align 2
.type g_tx_ctl, %object
.size g_tx_ctl, 4
g_tx_ctl:
.space 4
.section .rodata.str1.4,"aMS",%progbits,1
.align 2
.LC0:
.ascii "[%lu0ms][%s:%d] Phy_Gpon_Preamble write_data:0x%.8x"
.ascii "\012\000"
.align 2
.LC1:
.ascii "/home/work/XX530vUS1/sdk/en7529/modules/private/xpo"
.ascii "n_phy/src/phy_tx.c\000"
.text
.align 2
.global phy_gpon_preamble
.type phy_gpon_preamble, %function
phy_gpon_preamble:
.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]
mov r3, #0
str r3, [sp, #16]
mov r3, #0
str r3, [sp, #20]
mov r0, #1024
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #20]
ldr r3, [sp, #12]
ldr r3, [r3, #12]
and r3, r3, #1
cmp r3, #0
beq .L2
ldr r3, [sp, #20]
bic r3, r3, #255
ldr r2, [sp, #12]
ldrb r2, [r2] @ zero_extendqisi2
orr r3, r3, r2
str r3, [sp, #20]
.L2:
ldr r3, [sp, #12]
ldr r3, [r3, #12]
and r3, r3, #2
cmp r3, #0
beq .L3
ldr r3, [sp, #20]
bic r3, r3, #65280
ldr r2, [sp, #12]
ldrb r2, [r2, #1] @ zero_extendqisi2
mov r2, r2, asl #8
orr r3, r3, r2
str r3, [sp, #20]
.L3:
ldr r3, [sp, #12]
ldr r3, [r3, #12]
and r3, r3, #4
cmp r3, #0
beq .L4
ldr r3, [sp, #20]
bic r3, r3, #16711680
ldr r2, [sp, #12]
ldrb r2, [r2, #2] @ zero_extendqisi2
mov r2, r2, asl #16
orr r3, r3, r2
str r3, [sp, #20]
.L4:
ldr r3, [sp, #12]
ldr r3, [r3, #12]
and r3, r3, #8
cmp r3, #0
beq .L5
ldr r3, [sp, #20]
bic r3, r3, #-16777216
ldr r2, [sp, #12]
ldrb r2, [r2, #3] @ zero_extendqisi2
mov r2, r2, asl #24
orr r3, r3, r2
str r3, [sp, #20]
.L5:
ldr r3, [sp, #20]
str r3, [sp, #16]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L6
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #16]
str r3, [sp]
movw r0, #:lower16:.LC0
movt r0, #:upper16:.LC0
mov r1, r2
ldr r2, .L8
mov r3, #74
bl printk
.L6:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldr r2, [sp, #16]
str r2, [r3, #168]
mov r0, #1024
movt r0, 49071
ldr r1, [sp, #16]
bl set_pon_phy_data
mov r3, #0
mov r0, r3
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.L9:
.align 2
.L8:
.word .LC1+61
.fnend
.size phy_gpon_preamble, .-phy_gpon_preamble
.section .rodata.str1.4
.align 2
.LC2:
.ascii "[%lu0ms][%s:%d] TX FEC on. \012\000"
.align 2
.LC3:
.ascii "[%lu0ms][%s:%d] TX FEC off. \012\000"
.text
.align 2
.global phy_tx_fec_status
.type phy_tx_fec_status, %function
phy_tx_fec_status:
.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 r0, #1036
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #4]
ldr r3, [sp, #4]
and r3, r3, #32768
cmp r3, #0
beq .L11
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L12
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC2
movt r0, #:upper16:.LC2
mov r1, r3
ldr r2, .L15
mov r3, #100
bl printk
.L12:
mov r3, #1
b .L13
.L11:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L14
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC3
movt r0, #:upper16:.LC3
mov r1, r3
ldr r2, .L15
mov r3, #105
bl printk
.L14:
mov r3, #0
.L13:
mov r0, r3
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.L16:
.align 2
.L15:
.word .LC1+61
.fnend
.size phy_tx_fec_status, .-phy_tx_fec_status
.section .rodata.str1.4
.align 2
.LC4:
.ascii "[%lu0ms][%s:%d] error input : delimiter pattern. \012"
.ascii "\000"
.text
.align 2
.global phy_gpon_delimiter_guard
.type phy_gpon_delimiter_guard, %function
phy_gpon_delimiter_guard:
.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, r1
strb r3, [sp, #3]
mov r3, #0
str r3, [sp, #12]
ldr r3, [sp, #4]
and r3, r3, #-16777216
cmp r3, #0
beq .L18
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L19
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC4
movt r0, #:upper16:.LC4
mov r1, r3
ldr r2, .L21
mov r3, #128
bl printk
.L19:
mov r3, #1
b .L20
.L18:
ldrb r3, [sp, #3] @ zero_extendqisi2
mov r3, r3, asl #24
mov r2, r3
ldr r3, [sp, #4]
orr r3, r2, r3
str r3, [sp, #12]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldr r2, [sp, #12]
str r2, [r3, #164]
movw r0, #1028
movt r0, 49071
ldr r1, [sp, #12]
bl set_pon_phy_data
mov r3, #0
.L20:
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L22:
.align 2
.L21:
.word .LC1+61
.fnend
.size phy_gpon_delimiter_guard, .-phy_gpon_delimiter_guard
.section .rodata.str1.4
.align 2
.LC5:
.ascii "[%lu0ms][%s:%d] error input : extend_burst_mode. \012"
.ascii "\000"
.align 2
.LC6:
.ascii "[%lu0ms][%s:%d] error input : oper_ranged_st. \012\000"
.align 2
.LC7:
.ascii "[%lu0ms][%s:%d] error input : dis_scramble. \012\000"
.text
.align 2
.global phy_gpon_extend_preamble
.type phy_gpon_extend_preamble, %function
phy_gpon_extend_preamble:
.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]
movw r0, #1032
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #4]
ldr r3, [r3, #12]
and r3, r3, #16
cmp r3, #0
beq .L24
ldr r3, [sp, #12]
bic r3, r3, #255
ldr r2, [sp, #4]
ldrb r2, [r2, #4] @ zero_extendqisi2
orr r3, r3, r2
str r3, [sp, #12]
.L24:
ldr r3, [sp, #4]
ldr r3, [r3, #12]
and r3, r3, #32
cmp r3, #0
beq .L25
ldr r3, [sp, #12]
bic r3, r3, #65280
ldr r2, [sp, #4]
ldrb r2, [r2, #5] @ zero_extendqisi2
mov r2, r2, asl #8
orr r3, r3, r2
str r3, [sp, #12]
.L25:
ldr r3, [sp, #4]
ldr r3, [r3, #12]
and r3, r3, #64
cmp r3, #0
beq .L26
ldr r3, [sp, #4]
ldrb r3, [r3, #6] @ zero_extendqisi2
cmp r3, #1
beq .L27
ldr r3, [sp, #4]
ldrb r3, [r3, #6] @ zero_extendqisi2
cmp r3, #0
beq .L27
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L28
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC5
movt r0, #:upper16:.LC5
mov r1, r3
ldr r2, .L39
mov r3, #166
bl printk
.L28:
mov r3, #1
b .L29
.L27:
ldr r3, [sp, #12]
bic r3, r3, #65536
ldr r2, [sp, #4]
ldrb r2, [r2, #6] @ zero_extendqisi2
mov r2, r2, asl #16
orr r3, r3, r2
str r3, [sp, #12]
.L26:
ldr r3, [sp, #4]
ldr r3, [r3, #12]
and r3, r3, #128
cmp r3, #0
beq .L30
ldr r3, [sp, #4]
ldrb r3, [r3, #7] @ zero_extendqisi2
and r3, r3, #252
cmp r3, #0
beq .L31
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L32
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC6
movt r0, #:upper16:.LC6
mov r1, r3
ldr r2, .L39
mov r3, #175
bl printk
.L32:
mov r3, #1
b .L29
.L31:
ldr r3, [sp, #12]
bic r3, r3, #393216
ldr r2, [sp, #4]
ldrb r2, [r2, #7] @ zero_extendqisi2
mov r2, r2, asl #17
orr r3, r3, r2
str r3, [sp, #12]
.L30:
ldr r3, [sp, #4]
ldr r3, [r3, #12]
and r3, r3, #256
cmp r3, #0
beq .L33
ldr r3, [sp, #4]
ldrb r3, [r3, #9] @ zero_extendqisi2
and r3, r3, #254
cmp r3, #0
beq .L34
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L35
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC6
movt r0, #:upper16:.LC6
mov r1, r3
ldr r2, .L39
mov r3, #185
bl printk
.L35:
mov r3, #1
b .L29
.L34:
ldr r3, [sp, #12]
bic r3, r3, #524288
ldr r2, [sp, #4]
ldrb r2, [r2, #9] @ zero_extendqisi2
mov r2, r2, asl #19
orr r3, r3, r2
str r3, [sp, #12]
.L33:
ldr r3, [sp, #4]
ldr r3, [r3, #12]
and r3, r3, #512
cmp r3, #0
beq .L36
ldr r3, [sp, #4]
ldrb r3, [r3, #8] @ zero_extendqisi2
cmp r3, #1
beq .L37
ldr r3, [sp, #4]
ldrb r3, [r3, #8] @ zero_extendqisi2
cmp r3, #0
beq .L37
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L38
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC7
movt r0, #:upper16:.LC7
mov r1, r3
ldr r2, .L39
mov r3, #195
bl printk
.L38:
mov r3, #1
b .L29
.L37:
ldr r3, [sp, #12]
bic r3, r3, #16777216
ldr r2, [sp, #4]
ldrb r2, [r2, #8] @ zero_extendqisi2
mov r2, r2, asl #24
orr r3, r3, r2
str r3, [sp, #12]
.L36:
ldr r3, [sp, #12]
str r3, [sp, #8]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldr r2, [sp, #8]
str r2, [r3, #172]
movw r0, #1032
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
mov r3, #0
.L29:
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L40:
.align 2
.L39:
.word .LC1+61
.fnend
.size phy_gpon_extend_preamble, .-phy_gpon_extend_preamble
.section .rodata.str1.4
.align 2
.LC8:
.ascii "[%lu0ms][%s:%d] error input : rogue mode. \012\000"
.align 2
.LC9:
.ascii "[%lu0ms][%s:%d] PON mode error. \012\000"
.align 2
.LC10:
.ascii "[%lu0ms][%s:%d] 7523 Rogue mode \012\000"
.align 2
.LC11:
.ascii "[%lu0ms][%s:%d] 7523 normal mode \012\000"
.text
.align 2
.global phy_rogue_prbs_config
.type phy_rogue_prbs_config, %function
phy_rogue_prbs_config:
.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, r0
strb r3, [sp, #7]
mov r3, #0
str r3, [sp, #12]
mov r3, #0
str r3, [sp, #8]
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #1
beq .L42
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #0
beq .L42
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L43
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC8
movt r0, #:upper16:.LC8
mov r1, r3
ldr r2, .L51
mov r3, #234
bl printk
.L43:
mov r3, #1
b .L44
.L42:
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
beq .L45
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, #0
beq .L45
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L46
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC9
movt r0, #:upper16:.LC9
mov r1, r3
ldr r2, .L51
mov r3, #241
bl printk
.L46:
mov r3, #1
b .L44
.L45:
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #1
bne .L47
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r2, [r3]
ldrb r3, [r2, #112]
orr r3, r3, #128
strb r3, [r2, #112]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L48
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC10
movt r0, #:upper16:.LC10
mov r1, r3
ldr r2, .L51
mov r3, #250
bl printk
.L48:
movw r0, #16964
movt r0, 8111
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #8]
ldr r3, [sp, #8]
orr r3, r3, #805306368
str r3, [sp, #12]
movw r0, #16964
movt r0, 8111
ldr r1, [sp, #12]
bl set_pon_phy_data
b .L49
.L47:
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]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L50
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC11
movt r0, #:upper16:.LC11
mov r1, r3
ldr r2, .L51
movw r3, #258
bl printk
.L50:
movw r0, #16964
movt r0, 8111
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #8]
ldr r3, [sp, #8]
bic r3, r3, #-268435456
orr r3, r3, #268435456
str r3, [sp, #12]
movw r0, #16964
movt r0, 8111
ldr r1, [sp, #12]
bl set_pon_phy_data
ldr r3, [sp, #8]
bic r3, r3, #-268435456
str r3, [sp, #12]
movw r0, #16964
movt r0, 8111
ldr r1, [sp, #12]
bl set_pon_phy_data
.L49:
mov r0, #1
bl phy_trans_power_switch
mov r3, #0
.L44:
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L52:
.align 2
.L51:
.word .LC1+61
.fnend
.size phy_rogue_prbs_config, .-phy_rogue_prbs_config
.section .rodata.str1.4
.align 2
.LC12:
.ascii "[%lu0ms][%s:%d] error input : burst_mode. \012\000"
.align 2
.LC13:
.ascii "[%lu0ms][%s:%d] Phy_Tx_Burst_Config read_data:0x%.8"
.ascii "x\012\000"
.align 2
.LC14:
.ascii "[%lu0ms][%s:%d] Phy_Tx_Burst_Config write_data:0x%."
.ascii "8x\012\000"
.text
.align 2
.global phy_tx_burst_config
.type phy_tx_burst_config, %function
phy_tx_burst_config:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #28
sub sp, sp, #28
mov r3, r0
strb r3, [sp, #15]
ldrb r3, [sp, #15] @ zero_extendqisi2
cmp r3, #0
beq .L54
ldrb r3, [sp, #15] @ zero_extendqisi2
cmp r3, #1
beq .L54
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L55
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC12
movt r0, #:upper16:.LC12
mov r1, r3
ldr r2, .L61
mov r3, #376
bl printk
.L55:
mov r3, #1
b .L56
.L54:
mov r3, #0
str r3, [sp, #20]
mov r3, #0
str r3, [sp, #16]
mov r0, #264
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #16]
ldr r3, [sp, #16]
bic r1, r3, #160
ldrb r2, [sp, #15] @ zero_extendqisi2
mov r3, r2
mov r3, r3, asl #2
add r3, r3, r2
mov r3, r3, asl #5
orr r3, r1, r3
str r3, [sp, #20]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L57
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #16]
str r3, [sp]
movw r0, #:lower16:.LC13
movt r0, #:upper16:.LC13
mov r1, r2
ldr r2, .L61
movw r3, #385
bl printk
.L57:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L58
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #20]
str r3, [sp]
movw r0, #:lower16:.LC14
movt r0, #:upper16:.LC14
mov r1, r2
ldr r2, .L61
movw r3, #386
bl printk
.L58:
mov r0, #264
movt r0, 49071
ldr r1, [sp, #20]
bl set_pon_phy_data
bl phy_los_status
mov r3, r0
cmp r3, #1
bne .L59
mov r0, #264
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #16]
ldr r3, [sp, #16]
orr r3, r3, #-2013265920
str r3, [sp, #20]
mov r0, #264
movt r0, 49071
ldr r1, [sp, #20]
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, #16]
bl set_pon_phy_data
.L59:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r2, [r3]
ldrb r3, [sp, #15] @ zero_extendqisi2
cmp r3, #1
moveq r3, #1
movne r3, #0
uxtb r1, r3
ldrb r3, [r2, #112]
bfi r3, r1, #1, #1
strb r3, [r2, #112]
ldrb r3, [sp, #15] @ zero_extendqisi2
cmp r3, #0
bne .L60
mov r0, #1
bl phy_tx_power_config
mov r0, #1
bl phy_trans_power_switch
.L60:
mov r3, #0
.L56:
mov r0, r3
add sp, sp, #28
@ sp needed
ldr pc, [sp], #4
.L62:
.align 2
.L61:
.word .LC1+61
.fnend
.size phy_tx_burst_config, .-phy_tx_burst_config
.align 2
.global phy_tx_burst_getting
.type phy_tx_burst_getting, %function
phy_tx_burst_getting:
.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 r0, #264
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #4]
ldr r3, [sp, #4]
and r3, r3, #160
cmp r3, #0
bne .L64
mov r3, #0
b .L65
.L64:
mov r3, #1
.L65:
mov r0, r3
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size phy_tx_burst_getting, .-phy_tx_burst_getting
.align 2
.global phy_gpon_tx_power
.type phy_gpon_tx_power, %function
phy_gpon_tx_power:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
.pad #8
sub sp, sp, #8
mov r3, r0
strh r3, [sp, #6] @ movhi
mov r3, #0
mov r0, r3
add sp, sp, #8
@ sp needed
bx lr
.fnend
.size phy_gpon_tx_power, .-phy_gpon_tx_power
.section .rodata.str1.4
.align 2
.LC15:
.ascii "[%lu0ms][%s:%d] error input : amp_level. \012\000"
.text
.align 2
.global phy_tx_amp_setting
.type phy_tx_amp_setting, %function
phy_tx_amp_setting:
.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, r0
strb r3, [sp, #7]
ldrb r3, [sp, #7] @ zero_extendqisi2
and r3, r3, #240
cmp r3, #0
beq .L69
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L70
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC15
movt r0, #:upper16:.LC15
mov r1, r3
ldr r2, .L72
mov r3, #468
bl printk
.L70:
mov r3, #1
b .L71
.L69:
mov r3, #0
str r3, [sp, #12]
mov r3, #0
str r3, [sp, #8]
mov r0, #416
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
bic r3, r3, #983040
ldrb r2, [sp, #7] @ zero_extendqisi2
mov r2, r2, asl #16
orr r3, r3, r2
str r3, [sp, #8]
mov r0, #416
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
mov r3, #0
.L71:
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L73:
.align 2
.L72:
.word .LC1+61
.fnend
.size phy_tx_amp_setting, .-phy_tx_amp_setting
.section .rodata.str1.4
.align 2
.LC16:
.ascii "[%lu0ms][%s:%d] error input : tx_sd_inv.\012\000"
.align 2
.LC17:
.ascii "[%lu0ms][%s:%d] error input : burst_en_inv.\012\000"
.align 2
.LC18:
.ascii "[%lu0ms][%s:%d] error input : tx_fault_inv.\012\000"
.text
.align 2
.global phy_trans_tx_setting
.type phy_trans_tx_setting, %function
phy_trans_tx_setting:
.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, #312
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #4]
ldrb r3, [r3] @ zero_extendqisi2
cmp r3, #1
beq .L75
ldr r3, [sp, #4]
ldrb r3, [r3] @ zero_extendqisi2
cmp r3, #0
bne .L76
.L75:
ldr r3, [sp, #12]
bic r3, r3, #16
ldr r2, [sp, #4]
ldrb r2, [r2] @ zero_extendqisi2
mov r2, r2, asl #4
orr r3, r3, r2
str r3, [sp, #12]
b .L77
.L76:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L77
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC16
movt r0, #:upper16:.LC16
mov r1, r3
ldr r2, .L85
mov r3, #500
bl printk
.L77:
ldr r3, [sp, #4]
ldrb r3, [r3, #1] @ zero_extendqisi2
cmp r3, #1
beq .L78
ldr r3, [sp, #4]
ldrb r3, [r3, #1] @ zero_extendqisi2
cmp r3, #0
bne .L79
.L78:
ldr r3, [sp, #12]
bic r3, r3, #128
ldr r2, [sp, #4]
ldrb r2, [r2, #1] @ zero_extendqisi2
mov r2, r2, asl #7
orr r3, r3, r2
str r3, [sp, #12]
b .L80
.L79:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L80
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC17
movt r0, #:upper16:.LC17
mov r1, r3
ldr r2, .L85
movw r3, #505
bl printk
.L80:
ldr r3, [sp, #4]
ldrb r3, [r3, #2] @ zero_extendqisi2
cmp r3, #1
beq .L81
ldr r3, [sp, #4]
ldrb r3, [r3, #2] @ zero_extendqisi2
cmp r3, #0
bne .L82
.L81:
ldr r3, [sp, #12]
bic r3, r3, #32
ldr r2, [sp, #4]
ldrb r2, [r2, #2] @ zero_extendqisi2
mov r2, r2, asl #5
orr r3, r3, r2
str r3, [sp, #12]
b .L83
.L82:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L83
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC18
movt r0, #:upper16:.LC18
mov r1, r3
ldr r2, .L85
movw r3, #510
bl printk
.L83:
ldr r3, [sp, #12]
str r3, [sp, #8]
mov r0, #312
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
mov r3, #0
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L86:
.align 2
.L85:
.word .LC1+61
.fnend
.size phy_trans_tx_setting, .-phy_trans_tx_setting
.align 2
.global phy_trans_tx_getting
.type phy_trans_tx_getting, %function
phy_trans_tx_getting:
.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 r0, #312
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
and r3, r3, #16
cmp r3, #0
beq .L88
ldr r3, [sp, #4]
mov r2, #1
strb r2, [r3]
b .L89
.L88:
ldr r3, [sp, #4]
mov r2, #0
strb r2, [r3]
.L89:
ldr r3, [sp, #12]
and r3, r3, #128
cmp r3, #0
beq .L90
ldr r3, [sp, #4]
mov r2, #1
strb r2, [r3, #1]
b .L91
.L90:
ldr r3, [sp, #4]
mov r2, #0
strb r2, [r3, #1]
.L91:
ldr r3, [sp, #12]
and r3, r3, #32
cmp r3, #0
beq .L92
ldr r3, [sp, #4]
mov r2, #1
strb r2, [r3, #2]
b .L87
.L92:
ldr r3, [sp, #4]
mov r2, #0
strb r2, [r3, #2]
.L87:
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.fnend
.size phy_trans_tx_getting, .-phy_trans_tx_getting
.section .rodata.str1.4
.align 2
.LC19:
.ascii "[%lu0ms][%s:%d] Tx power is below low alarm. \012\000"
.align 2
.LC20:
.ascii "[%lu0ms][%s:%d] Tx power exceeds high alarm. \012\000"
.align 2
.LC21:
.ascii "[%lu0ms][%s:%d] Bias Current is below low alarm. \012"
.ascii "\000"
.align 2
.LC22:
.ascii "[%lu0ms][%s:%d] Bias Current exceeds high alarm. \012"
.ascii "\000"
.text
.align 2
.global phy_tx_alarm
.type phy_tx_alarm, %function
phy_tx_alarm:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
.save {lr}
.pad #36
sub sp, sp, #36
mov r3, #0
str r3, [sp, #24]
mov r3, #0
str r3, [sp, #28]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r2, [r3, #96]
mov r3, #112
str r3, [sp]
add r3, sp, #23
str r3, [sp, #4]
mov r3, #1
str r3, [sp, #8]
mov r0, #0
mov r1, r2
mov r2, #81
mov r3, #1
bl phy_I2C_read
ldrb r3, [sp, #23] @ zero_extendqisi2
str r3, [sp, #24]
ldr r3, [sp, #24]
and r3, r3, #1
cmp r3, #0
beq .L95
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L96
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC19
movt r0, #:upper16:.LC19
mov r1, r3
ldr r2, .L104
movw r3, #577
bl printk
.L96:
ldr r3, [sp, #28]
orr r3, r3, #2
str r3, [sp, #28]
.L95:
ldr r3, [sp, #24]
and r3, r3, #2
cmp r3, #0
beq .L97
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L98
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC20
movt r0, #:upper16:.LC20
mov r1, r3
ldr r2, .L104
movw r3, #583
bl printk
.L98:
ldr r3, [sp, #28]
orr r3, r3, #1
str r3, [sp, #28]
.L97:
ldr r3, [sp, #24]
and r3, r3, #4
cmp r3, #0
beq .L99
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L100
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC21
movt r0, #:upper16:.LC21
mov r1, r3
ldr r2, .L104
movw r3, #589
bl printk
.L100:
ldr r3, [sp, #28]
orr r3, r3, #8
str r3, [sp, #28]
.L99:
ldr r3, [sp, #24]
and r3, r3, #8
cmp r3, #0
beq .L101
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L102
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC22
movt r0, #:upper16:.LC22
mov r1, r3
ldr r2, .L104
movw r3, #595
bl printk
.L102:
ldr r3, [sp, #28]
orr r3, r3, #4
str r3, [sp, #28]
.L101:
ldr r3, [sp, #28]
mov r0, r3
add sp, sp, #36
@ sp needed
ldr pc, [sp], #4
.L105:
.align 2
.L104:
.word .LC1+61
.fnend
.size phy_tx_alarm, .-phy_tx_alarm
.section .rodata.str1.4
.align 2
.LC23:
.ascii "[%lu0ms][%s:%d] Phy Tx Frame Counter : %.8x\012\000"
.text
.align 2
.global phy_tx_frame_counter
.type phy_tx_frame_counter, %function
phy_tx_frame_counter:
.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 r0, #1060
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #8
str r3, [sp, #8]
movw r0, #1060
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
movw r0, #1076
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L107
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #12]
str r3, [sp]
movw r0, #:lower16:.LC23
movt r0, #:upper16:.LC23
mov r1, r2
ldr r2, .L109
movw r3, #622
bl printk
.L107:
ldr r3, [sp, #12]
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L110:
.align 2
.L109:
.word .LC1+61
.fnend
.size phy_tx_frame_counter, .-phy_tx_frame_counter
.section .rodata.str1.4
.align 2
.LC24:
.ascii "[%lu0ms][%s:%d] Phy Tx Burst Counter : %.8x\012\000"
.text
.align 2
.global phy_tx_burst_counter
.type phy_tx_burst_counter, %function
phy_tx_burst_counter:
.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 r0, #1060
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #8
str r3, [sp, #8]
movw r0, #1060
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
movw r0, #1080
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L112
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r2, [r3]
ldr r3, [sp, #12]
str r3, [sp]
movw r0, #:lower16:.LC24
movt r0, #:upper16:.LC24
mov r1, r2
ldr r2, .L114
mov r3, #648
bl printk
.L112:
mov r3, #0
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L115:
.align 2
.L114:
.word .LC1+61
.fnend
.size phy_tx_burst_counter, .-phy_tx_burst_counter
.align 2
.global phy_tx_test_pattern
.type phy_tx_test_pattern, %function
phy_tx_test_pattern:
.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, #12
ldrls pc, [pc, r3, asl #2]
b .L117
.L119:
.word .L118
.word .L120
.word .L120
.word .L120
.word .L120
.word .L121
.word .L121
.word .L121
.word .L117
.word .L120
.word .L120
.word .L122
.word .L123
.L118:
movw r0, #1188
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
ldr r1, [sp, #4]
bl set_pon_phy_data
b .L116
.L120:
movw r0, #1188
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
ldr r1, [sp, #4]
bl set_pon_phy_data
b .L116
.L121:
mov r0, #1184
movt r0, 49071
ldr r1, [sp, #4]
bl set_pon_phy_data
movw r0, #1188
movt r0, 49071
mov r1, #1
bl set_pon_phy_data
b .L116
.L122:
mov r0, #1312
movt r0, 49071
mov r1, #2
bl set_pon_phy_data
mov r0, #1296
movt r0, 49071
mov r1, #1
bl set_pon_phy_data
b .L116
.L123:
movw r0, #1188
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
mov r0, #1312
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
mov r0, #1296
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
movw r0, #1068
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
bic r3, r3, #2
str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #2
str r3, [sp, #8]
movw r0, #1068
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
movw r0, #1068
movt r0, 49071
ldr r1, [sp, #12]
bl set_pon_phy_data
b .L116
.L117:
movw r0, #1188
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
mov r0, #1184
movt r0, 49071
mov r1, #0
bl set_pon_phy_data
mov r0, r0 @ nop
.L116:
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.fnend
.size phy_tx_test_pattern, .-phy_tx_test_pattern
.section .rodata.str1.4
.align 2
.LC25:
.ascii "NOT support!\015\012\000"
.align 2
.LC26:
.ascii "[%lu0ms][%s:%d] PRBS 7!\012\000"
.align 2
.LC27:
.ascii "[%lu0ms][%s:%d] PRBS 23!\012\000"
.align 2
.LC28:
.ascii "[%lu0ms][%s:%d] PRBS 31!\012\000"
.align 2
.LC29:
.ascii "[%lu0ms][%s:%d] NORMAL MODE!\012\000"
.align 2
.LC30:
.ascii "[%lu0ms][%s:%d] PRBS +DATA !\012\000"
.align 2
.LC31:
.ascii "[%lu0ms][%s:%d] TX OFF!\012\000"
.text
.align 2
.global phy_tx_Mode
.type phy_tx_Mode, %function
phy_tx_Mode:
.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 .L126
movw r0, #:lower16:.LC25
movt r0, #:upper16:.LC25
bl printk
mov r3, #1
b .L127
.L126:
ldr r3, [sp, #4]
cmp r3, #6
bhi .L128
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldr r2, [sp, #4]
str r2, [r3, #216]
ldr r3, [sp, #4]
cmp r3, #6
ldrls pc, [pc, r3, asl #2]
b .L130
.L132:
.word .L131
.word .L130
.word .L133
.word .L134
.word .L135
.word .L136
.word .L137
.L128:
mov r3, #1
b .L127
.L131:
mov r0, #1
bl phy_ben_switch
mov r0, #1
bl phy_trans_power_switch
mov r0, #5
bl phy_tx_test_pattern
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L138
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC26
movt r0, #:upper16:.LC26
mov r1, r3
ldr r2, .L145
movw r3, #738
bl printk
b .L130
.L138:
b .L130
.L133:
mov r0, #1
bl phy_ben_switch
mov r0, #1
bl phy_trans_power_switch
mov r0, #6
bl phy_tx_test_pattern
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L139
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC27
movt r0, #:upper16:.LC27
mov r1, r3
ldr r2, .L145
mov r3, #744
bl printk
b .L130
.L139:
b .L130
.L134:
mov r0, #1
bl phy_ben_switch
mov r0, #1
bl phy_trans_power_switch
mov r0, #7
bl phy_tx_test_pattern
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L140
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC28
movt r0, #:upper16:.LC28
mov r1, r3
ldr r2, .L145
movw r3, #750
bl printk
b .L130
.L140:
b .L130
.L135:
mov r0, #0
bl phy_ben_switch
mov r0, #1
bl phy_trans_power_switch
mov r0, #0
bl phy_tx_test_pattern
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L141
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC29
movt r0, #:upper16:.LC29
mov r1, r3
ldr r2, .L145
mov r3, #756
bl printk
b .L130
.L141:
b .L130
.L136:
mov r0, #1
bl phy_ben_switch
mov r0, #1
bl phy_trans_power_switch
mov r0, #0
bl phy_tx_test_pattern
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L142
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC30
movt r0, #:upper16:.LC30
mov r1, r3
ldr r2, .L145
movw r3, #762
bl printk
b .L130
.L142:
b .L130
.L137:
mov r0, #0
bl phy_ben_switch
mov r0, #0
bl phy_trans_power_switch
mov r0, #0
bl phy_tx_test_pattern
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L143
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC31
movt r0, #:upper16:.LC31
mov r1, r3
ldr r2, .L145
mov r3, #768
bl printk
b .L144
.L143:
.L144:
mov r0, r0 @ nop
.L130:
mov r3, #0
.L127:
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L146:
.align 2
.L145:
.word .LC1+61
.fnend
.size phy_tx_Mode, .-phy_tx_Mode
.section .rodata.str1.4
.align 2
.LC32:
.ascii "[%lu0ms][%s:%d] error input : byte dly. \012\000"
.align 2
.LC33:
.ascii "[%lu0ms][%s:%d] Byte delay manual enable setting su"
.ascii "ccess. \012\000"
.align 2
.LC34:
.ascii "[%lu0ms][%s:%d] Byte delay manual disable setting s"
.ascii "uccess. \012\000"
.text
.align 2
.global phy_byte_delay_manual
.type phy_byte_delay_manual, %function
phy_byte_delay_manual:
.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, r0
mov r2, r1
strb r3, [sp, #7]
mov r3, r2
strb r3, [sp, #6]
mov r3, #0
str r3, [sp, #12]
mov r3, #0
str r3, [sp, #8]
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #1
bne .L148
ldrb r3, [sp, #6] @ zero_extendqisi2
and r3, r3, #252
cmp r3, #0
beq .L149
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #1
cmp r3, #0
beq .L150
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC32
movt r0, #:upper16:.LC32
mov r1, r3
ldr r2, .L155
movw r3, #847
bl printk
.L150:
mov r3, #1
b .L151
.L149:
mov r0, #1072
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
bic r3, r3, #112
ldrb r2, [sp, #6] @ zero_extendqisi2
mov r2, r2, asl #5
orr r3, r3, r2
orr r3, r3, #16
str r3, [sp, #8]
mov r0, #1072
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L152
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC33
movt r0, #:upper16:.LC33
mov r1, r3
ldr r2, .L155
movw r3, #853
bl printk
.L152:
mov r3, #0
b .L151
.L148:
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #0
bne .L153
mov r0, #1072
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
bic r3, r3, #112
str r3, [sp, #8]
mov r0, #1072
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L154
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC34
movt r0, #:upper16:.LC34
mov r1, r3
ldr r2, .L155
movw r3, #861
bl printk
.L154:
mov r3, #0
b .L151
.L153:
mov r3, #1
.L151:
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L156:
.align 2
.L155:
.word .LC1+61
.fnend
.size phy_byte_delay_manual, .-phy_byte_delay_manual
.section .rodata.str1.4
.align 2
.LC35:
.ascii "[%lu0ms][%s:%d] Tx FEC manual enable setting succes"
.ascii "s. \012\000"
.align 2
.LC36:
.ascii "[%lu0ms][%s:%d] Tx FEC manual disable setting succe"
.ascii "ss. \012\000"
.text
.align 2
.global phy_tx_fec_manual
.type phy_tx_fec_manual, %function
phy_tx_fec_manual:
.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, r0
strb r3, [sp, #7]
mov r3, #0
str r3, [sp, #12]
mov r3, #0
str r3, [sp, #8]
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #1
bne .L158
mov r0, #1072
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #12
str r3, [sp, #8]
mov r0, #1072
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L159
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC35
movt r0, #:upper16:.LC35
mov r1, r3
ldr r2, .L163
movw r3, #887
bl printk
.L159:
mov r3, #0
b .L160
.L158:
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #0
bne .L161
mov r0, #1072
movt r0, 49071
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
bic r3, r3, #12
str r3, [sp, #8]
mov r0, #1072
movt r0, 49071
ldr r1, [sp, #8]
bl set_pon_phy_data
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L162
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC36
movt r0, #:upper16:.LC36
mov r1, r3
ldr r2, .L163
movw r3, #895
bl printk
.L162:
mov r3, #0
b .L160
.L161:
mov r3, #1
.L160:
mov r0, r3
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L164:
.align 2
.L163:
.word .LC1+61
.fnend
.size phy_tx_fec_manual, .-phy_tx_fec_manual
.section .rodata.str1.4
.align 2
.LC37:
.ascii "[%lu0ms][%s:%d] PHY Tx ctl type error. \012\000"
.text
.align 2
.global phy_tx_ctl
.type phy_tx_ctl, %function
phy_tx_ctl:
.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 .L166
mov r0, #42
bl ledTurnOff
b .L165
.L166:
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #0
bne .L168
mov r0, #42
bl ledTurnOn
b .L165
.L168:
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 r3, [r3]
movw r0, #:lower16:.LC37
movt r0, #:upper16:.LC37
mov r1, r3
ldr r2, .L169
movw r3, #909
bl printk
.L165:
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.L170:
.align 2
.L169:
.word .LC1+61
.fnend
.size phy_tx_ctl, .-phy_tx_ctl
.align 2
.global mt7570_safe_circuit_reset_for_work_queue
.type mt7570_safe_circuit_reset_for_work_queue, %function
mt7570_safe_circuit_reset_for_work_queue:
.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]
bl mt7570_safe_circuit_reset
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size mt7570_safe_circuit_reset_for_work_queue, .-mt7570_safe_circuit_reset_for_work_queue
.align 2
.global en7571_safe_circuit_reset_for_work_queue
.type en7571_safe_circuit_reset_for_work_queue, %function
en7571_safe_circuit_reset_for_work_queue:
.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]
bl en7571_safe_circuit_reset
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.fnend
.size en7571_safe_circuit_reset_for_work_queue, .-en7571_safe_circuit_reset_for_work_queue
.global work_mt7570_safe_circuit_reset
.data
.align 2
.type work_mt7570_safe_circuit_reset, %object
.size work_mt7570_safe_circuit_reset, 16
work_mt7570_safe_circuit_reset:
.word -32
.word work_mt7570_safe_circuit_reset+4
.word work_mt7570_safe_circuit_reset+4
.word mt7570_safe_circuit_reset_for_work_queue
.global work_mt7571_safe_circuit_reset
.align 2
.type work_mt7571_safe_circuit_reset, %object
.size work_mt7571_safe_circuit_reset, 16
work_mt7571_safe_circuit_reset:
.word -32
.word work_mt7571_safe_circuit_reset+4
.word work_mt7571_safe_circuit_reset+4
.word en7571_safe_circuit_reset_for_work_queue
.section .rodata.str1.4
.align 2
.LC38:
.ascii "[%lu0ms][%s:%d] 7523 TX OFF BEN Normal \012\000"
.align 2
.LC39:
.ascii "[%lu0ms][%s:%d] 7523 TX ON BEN ON\012\000"
.align 2
.LC40:
.ascii "[%lu0ms][%s:%d] setting BEN fail. \012\000"
.text
.align 2
.global phy_ben_switch
.type phy_ben_switch, %function
phy_ben_switch:
.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, r0
strb r3, [sp, #7]
mov r3, #0
str r3, [sp, #12]
mov r3, #0
str r3, [sp, #8]
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #0
bne .L174
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L175
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC38
movt r0, #:upper16:.LC38
mov r1, r3
ldr r2, .L179
movw r3, #935
bl printk
.L175:
movw r0, #16964
movt r0, 8111
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
bic r3, r3, #-268435456
orr r3, r3, #268435456
str r3, [sp, #8]
movw r0, #16964
movt r0, 8111
ldr r1, [sp, #8]
bl set_pon_phy_data
ldr r3, [sp, #12]
bic r3, r3, #-268435456
str r3, [sp, #8]
movw r0, #16964
movt r0, 8111
ldr r1, [sp, #8]
bl set_pon_phy_data
b .L173
.L174:
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #1
bne .L177
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L178
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC39
movt r0, #:upper16:.LC39
mov r1, r3
ldr r2, .L179
movw r3, #947
bl printk
.L178:
movw r0, #16964
movt r0, 8111
bl get_pon_phy_data
mov r3, r0
str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #805306368
str r3, [sp, #8]
movw r0, #16964
movt r0, 8111
ldr r1, [sp, #8]
bl set_pon_phy_data
b .L173
.L177:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L173
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC40
movt r0, #:upper16:.LC40
mov r1, r3
ldr r2, .L179
mov r3, #956
bl printk
.L173:
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L180:
.align 2
.L179:
.word .LC1+61
.fnend
.size phy_ben_switch, .-phy_ben_switch
.section .rodata.str1.4
.align 2
.LC41:
.ascii "[%lu0ms][%s:%d] turn off transceiver power success!"
.ascii " \012\000"
.align 2
.LC42:
.ascii "[%lu0ms][%s:%d] turn on transceiver power success! "
.ascii "\012\000"
.align 2
.LC43:
.ascii "[%lu0ms][%s:%d] setting transceiver power fail. \012"
.ascii "\000"
.text
.align 2
.global phy_trans_power_switch
.type phy_trans_power_switch, %function
phy_trans_power_switch:
.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, r0
strb r3, [sp, #7]
mov r3, #0
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #24]
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrb r2, [sp, #7] @ zero_extendqisi2
str r2, [r3, #212]
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #0
bne .L182
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldr r3, [r3, #220]
cmp r3, #0
beq .L183
mov r0, #0
bl pon_phy_rogueonu_int_en
.L183:
mov r0, #0
bl phy_tx_ctl
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L184
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC41
movt r0, #:upper16:.LC41
mov r1, r3
ldr r2, .L195
movw r3, #995
bl printk
.L184:
mov r3, #0
b .L185
.L182:
ldrb r3, [sp, #7] @ zero_extendqisi2
cmp r3, #1
bne .L186
movw r3, #:lower16:g_tx_ctl
movt r3, #:upper16:g_tx_ctl
ldr r3, [r3]
cmp r3, #0
bne .L187
mov r3, #0
b .L185
.L187:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldr r3, [r3, #220]
cmp r3, #0
beq .L188
mov r0, #1
bl pon_phy_rogueonu_int_en
.L188:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrb r3, [r3, #112] @ zero_extendqisi2
and r3, r3, #1
uxtb r3, r3
cmp r3, #0
beq .L189
mov r0, #1
bl phy_tx_ctl
movw r3, #:lower16:mt7570_select
movt r3, #:upper16:mt7570_select
ldr r3, [r3]
cmp r3, #1
bne .L190
movw r3, #:lower16:i2c_access_queue
movt r3, #:upper16:i2c_access_queue
ldr r3, [r3]
cmp r3, #0
beq .L190
movw r3, #:lower16:i2c_access_queue
movt r3, #:upper16:i2c_access_queue
ldr r3, [r3]
str r3, [sp, #20]
movw r3, #:lower16:work_mt7570_safe_circuit_reset
movt r3, #:upper16:work_mt7570_safe_circuit_reset
str r3, [sp, #16]
mov r0, #2
ldr r1, [sp, #20]
ldr r2, [sp, #16]
bl queue_work_on
.L190:
movw r3, #:lower16:en7571_select
movt r3, #:upper16:en7571_select
ldr r3, [r3]
cmp r3, #1
bne .L192
movw r3, #:lower16:i2c_access_queue
movt r3, #:upper16:i2c_access_queue
ldr r3, [r3]
cmp r3, #0
beq .L192
movw r3, #:lower16:i2c_access_queue
movt r3, #:upper16:i2c_access_queue
ldr r3, [r3]
str r3, [sp, #12]
movw r3, #:lower16:work_mt7571_safe_circuit_reset
movt r3, #:upper16:work_mt7571_safe_circuit_reset
str r3, [sp, #8]
mov r0, #2
ldr r1, [sp, #12]
ldr r2, [sp, #8]
bl queue_work_on
.L192:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L189
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC42
movt r0, #:upper16:.LC42
mov r1, r3
ldr r2, .L195
movw r3, #1023
bl printk
.L189:
mov r3, #0
b .L185
.L186:
movw r3, #:lower16:gpPhyPriv
movt r3, #:upper16:gpPhyPriv
ldr r3, [r3]
ldrh r3, [r3, #116]
and r3, r3, #16
cmp r3, #0
beq .L194
movw r3, #:lower16:jiffies
movt r3, #:upper16:jiffies
ldr r3, [r3]
movw r0, #:lower16:.LC43
movt r0, #:upper16:.LC43
mov r1, r3
ldr r2, .L195
movw r3, #1029
bl printk
.L194:
mov r3, #1
.L185:
mov r0, r3
add sp, sp, #36
@ sp needed
ldr pc, [sp], #4
.L196:
.align 2
.L195:
.word .LC1+61
.fnend
.size phy_trans_power_switch, .-phy_trans_power_switch
.ident "GCC: (Buildroot 2015.08.1-gd814875) 4.9.3"
.section .note.GNU-stack,"",%progbits