	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function cas_phy_init
_cas_phy_init:                          ## @cas_phy_init
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r12
	pushq	%rbx
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r12
	movl	(%rdi), %edi
	callq	_CAS_PHY_MII
	testq	%rax, %rax
	je	LBB0_16
## %bb.1:
	movq	_PCS_DATAPATH_MODE_MII@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_REG_PCS_DATAPATH_MODE@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	addq	16(%r12), %rsi
	callq	_writel
	movq	%r12, %rdi
	xorl	%esi, %esi
	callq	_cas_mif_poll
	movq	%r12, %rdi
	callq	_cas_reset_mii_phy
	movq	_PHY_LUCENT_B0@GOTPCREL(%rip), %rcx
	movl	4(%r12), %eax
	cmpl	%eax, (%rcx)
	jne	LBB0_3
## %bb.2:
	movq	_LUCENT_MII_REG@GOTPCREL(%rip), %rbx
	movl	(%rbx), %esi
	movq	%r12, %rdi
	movl	$32768, %edx                    ## imm = 0x8000
	callq	_cas_phy_write
	movq	_MII_BMCR@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r12, %rdi
	movl	$241, %edx
	callq	_cas_phy_write
	movl	(%rbx), %esi
	movq	%r12, %rdi
	xorl	%edx, %edx
	callq	_cas_phy_write
	jmp	LBB0_14
LBB0_16:
	movq	_PCS_DATAPATH_MODE_SERDES@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_REG_PCS_DATAPATH_MODE@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	addq	16(%r12), %rsi
	callq	_writel
	movq	_CAS_FLAG_SATURN@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, 8(%r12)
	je	LBB0_18
## %bb.17:
	movq	_REG_SATURN_PCFG@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	addq	16(%r12), %rsi
	xorl	%edi, %edi
	callq	_writel
LBB0_18:
	movq	_REG_PCS_MII_CTRL@GOTPCREL(%rip), %r14
	movq	(%r14), %rdi
	addq	16(%r12), %rdi
	callq	_readl
	movq	_PCS_MII_RESET@GOTPCREL(%rip), %r15
	orl	(%r15), %eax
	movq	(%r14), %rsi
	addq	16(%r12), %rsi
	movl	%eax, %edi
	callq	_writel
	movq	_STOP_TRIES@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	incl	%ebx
	.p2align	4, 0x90
LBB0_19:                                ## =>This Inner Loop Header: Depth=1
	decl	%ebx
	cmpl	$2, %ebx
	jl	LBB0_21
## %bb.20:                              ##   in Loop: Header=BB0_19 Depth=1
	movl	$10, %edi
	callq	_udelay
	movq	(%r14), %rdi
	addq	16(%r12), %rdi
	callq	_readl
	testl	%eax, (%r15)
	jne	LBB0_19
	jmp	LBB0_22
LBB0_3:
	movq	_PHY_BROADCOM_B0@GOTPCREL(%rip), %rcx
	movl	%eax, %edx
	andl	$-4, %edx
	cmpl	%edx, (%rcx)
	jne	LBB0_5
## %bb.4:
	movq	_BROADCOM_MII_REG8@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r12, %rdi
	movl	$3104, %edx                     ## imm = 0xC20
	callq	_cas_phy_write
	movq	_BROADCOM_MII_REG7@GOTPCREL(%rip), %r14
	movl	(%r14), %esi
	movq	%r12, %rdi
	movl	$18, %edx
	callq	_cas_phy_write
	movq	_BROADCOM_MII_REG5@GOTPCREL(%rip), %r15
	movl	(%r15), %esi
	movq	%r12, %rdi
	movl	$6148, %edx                     ## imm = 0x1804
	callq	_cas_phy_write
	movl	(%r14), %esi
	movq	%r12, %rdi
	movl	$19, %edx
	callq	_cas_phy_write
	movl	(%r15), %esi
	movq	%r12, %rdi
	movl	$4612, %edx                     ## imm = 0x1204
	callq	_cas_phy_write
	movl	(%r14), %esi
	movq	%r12, %rdi
	movl	$32774, %edx                    ## imm = 0x8006
	callq	_cas_phy_write
	movl	(%r15), %esi
	movq	%r12, %rdi
	movl	$306, %edx                      ## imm = 0x132
	callq	_cas_phy_write
	movl	(%r14), %esi
	movq	%r12, %rdi
	movl	$32774, %edx                    ## imm = 0x8006
	callq	_cas_phy_write
	movl	(%r15), %esi
	movq	%r12, %rdi
	movl	$562, %edx                      ## imm = 0x232
	callq	_cas_phy_write
	movl	(%r14), %esi
	movq	%r12, %rdi
	movl	$8223, %edx                     ## imm = 0x201F
	callq	_cas_phy_write
	movl	(%r15), %esi
	movq	%r12, %rdi
	movl	$2592, %edx                     ## imm = 0xA20
	callq	_cas_phy_write
	jmp	LBB0_14
LBB0_21:
	movl	24(%r12), %r14d
	movq	_REG_PCS_STATE_MACHINE@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	addq	16(%r12), %rdi
	callq	_readl
	leaq	L_.str(%rip), %rsi
	movl	%r14d, %edi
	movl	%eax, %edx
	callq	_netdev_warn
LBB0_22:
	movq	_REG_PCS_CFG@GOTPCREL(%rip), %r14
	movq	(%r14), %rsi
	addq	16(%r12), %rsi
	xorl	%edi, %edi
	callq	_writel
	movq	_REG_PCS_MII_ADVERT@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rdi
	addq	16(%r12), %rdi
	callq	_readl
	movq	_PCS_MII_ADVERT_HD@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edi
	notl	%edi
	andl	%eax, %edi
	movq	_PCS_MII_ADVERT_FD@GOTPCREL(%rip), %rax
	movq	_PCS_MII_ADVERT_SYM_PAUSE@GOTPCREL(%rip), %rcx
	movq	_PCS_MII_ADVERT_ASYM_PAUSE@GOTPCREL(%rip), %rdx
	orl	(%rax), %edi
	orl	(%rcx), %edi
	orl	(%rdx), %edi
	movq	(%rbx), %rsi
	addq	16(%r12), %rsi
	callq	_writel
	movq	_PCS_CFG_EN@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	(%r14), %rsi
	addq	16(%r12), %rsi
	callq	_writel
	movq	_PCS_SERDES_CTRL_SYNCD_EN@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_REG_PCS_SERDES_CTRL@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	addq	16(%r12), %rsi
	popq	%rbx
	popq	%r12
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_writel                         ## TAILCALL
LBB0_5:
	movq	_PHY_BROADCOM_5411@GOTPCREL(%rip), %rcx
	cmpl	%eax, (%rcx)
	jne	LBB0_8
## %bb.6:
	movq	_BROADCOM_MII_REG4@GOTPCREL(%rip), %rbx
	movl	(%rbx), %esi
	movq	%r12, %rdi
	callq	_cas_phy_read
	movl	(%rbx), %esi
	movq	%r12, %rdi
	callq	_cas_phy_read
	testb	$-128, %al
	je	LBB0_14
## %bb.7:
	movl	(%rbx), %esi
	andl	$-129, %eax
	movq	%r12, %rdi
	movl	%eax, %edx
	callq	_cas_phy_write
	jmp	LBB0_14
LBB0_8:
	movq	_CAS_FLAG_SATURN@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, 8(%r12)
	je	LBB0_14
## %bb.9:
	movq	_CAS_PHY_MII_MDIO0@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	andl	(%r12), %edi
	je	LBB0_11
## %bb.10:
	movq	_SATURN_PCFG_FSI@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
LBB0_11:
	movq	_REG_SATURN_PCFG@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	addq	16(%r12), %rsi
	callq	_writel
	movq	_PHY_NS_DP83065@GOTPCREL(%rip), %rax
	movslq	4(%r12), %rcx
	cmpq	%rcx, (%rax)
	jne	LBB0_13
## %bb.12:
	movq	%r12, %rdi
	callq	_cas_saturn_firmware_load
LBB0_13:
	movq	%r12, %rdi
	callq	_cas_phy_powerup
LBB0_14:
	movq	_MII_BMCR@GOTPCREL(%rip), %rbx
	movl	(%rbx), %esi
	movq	%r12, %rdi
	callq	_cas_phy_read
	movq	_BMCR_ANENABLE@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	notl	%edx
	andl	%eax, %edx
	movl	(%rbx), %esi
	movq	%r12, %rdi
	callq	_cas_phy_write
	movl	$10, %edi
	callq	_udelay
	movq	_MII_ADVERTISE@GOTPCREL(%rip), %rax
	movl	(%rax), %r14d
	movq	%r12, %rdi
	movl	%r14d, %esi
	callq	_cas_phy_read
	movq	_ADVERTISE_10HALF@GOTPCREL(%rip), %rcx
	movq	_ADVERTISE_10FULL@GOTPCREL(%rip), %rdx
	movq	_ADVERTISE_100HALF@GOTPCREL(%rip), %rsi
	movq	_ADVERTISE_100FULL@GOTPCREL(%rip), %rdi
	movq	_CAS_ADVERTISE_PAUSE@GOTPCREL(%rip), %rbx
	movq	_CAS_ADVERTISE_ASYM_PAUSE@GOTPCREL(%rip), %r8
	orl	(%rcx), %eax
	orl	(%rdx), %eax
	orl	(%rsi), %eax
	orl	(%rdi), %eax
	orl	(%rbx), %eax
	orl	(%r8), %eax
	movq	%r12, %rdi
	movl	%r14d, %esi
	movl	%eax, %edx
	callq	_cas_phy_write
	movq	_CAS_FLAG_1000MB_CAP@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, 8(%r12)
	je	LBB0_23
## %bb.15:
	movq	_CAS_MII_1000_CTRL@GOTPCREL(%rip), %rbx
	movl	(%rbx), %esi
	movq	%r12, %rdi
	callq	_cas_phy_read
	movq	_CAS_ADVERTISE_1000HALF@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	notl	%edx
	andl	%eax, %edx
	movq	_CAS_ADVERTISE_1000FULL@GOTPCREL(%rip), %rax
	orl	(%rax), %edx
	movl	(%rbx), %esi
	movq	%r12, %rdi
	popq	%rbx
	popq	%r12
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_cas_phy_write                  ## TAILCALL
LBB0_23:
	popq	%rbx
	popq	%r12
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_PCS_DATAPATH_MODE_MII,4,2      ## @PCS_DATAPATH_MODE_MII
	.comm	_REG_PCS_DATAPATH_MODE,8,3      ## @REG_PCS_DATAPATH_MODE
	.comm	_PHY_LUCENT_B0,4,2              ## @PHY_LUCENT_B0
	.comm	_LUCENT_MII_REG,4,2             ## @LUCENT_MII_REG
	.comm	_MII_BMCR,4,2                   ## @MII_BMCR
	.comm	_PHY_BROADCOM_B0,4,2            ## @PHY_BROADCOM_B0
	.comm	_BROADCOM_MII_REG8,4,2          ## @BROADCOM_MII_REG8
	.comm	_BROADCOM_MII_REG7,4,2          ## @BROADCOM_MII_REG7
	.comm	_BROADCOM_MII_REG5,4,2          ## @BROADCOM_MII_REG5
	.comm	_PHY_BROADCOM_5411,4,2          ## @PHY_BROADCOM_5411
	.comm	_BROADCOM_MII_REG4,4,2          ## @BROADCOM_MII_REG4
	.comm	_CAS_FLAG_SATURN,4,2            ## @CAS_FLAG_SATURN
	.comm	_CAS_PHY_MII_MDIO0,4,2          ## @CAS_PHY_MII_MDIO0
	.comm	_SATURN_PCFG_FSI,4,2            ## @SATURN_PCFG_FSI
	.comm	_REG_SATURN_PCFG,8,3            ## @REG_SATURN_PCFG
	.comm	_PHY_NS_DP83065,8,3             ## @PHY_NS_DP83065
	.comm	_BMCR_ANENABLE,4,2              ## @BMCR_ANENABLE
	.comm	_MII_ADVERTISE,4,2              ## @MII_ADVERTISE
	.comm	_ADVERTISE_10HALF,4,2           ## @ADVERTISE_10HALF
	.comm	_ADVERTISE_10FULL,4,2           ## @ADVERTISE_10FULL
	.comm	_ADVERTISE_100HALF,4,2          ## @ADVERTISE_100HALF
	.comm	_ADVERTISE_100FULL,4,2          ## @ADVERTISE_100FULL
	.comm	_CAS_ADVERTISE_PAUSE,4,2        ## @CAS_ADVERTISE_PAUSE
	.comm	_CAS_ADVERTISE_ASYM_PAUSE,4,2   ## @CAS_ADVERTISE_ASYM_PAUSE
	.comm	_CAS_FLAG_1000MB_CAP,4,2        ## @CAS_FLAG_1000MB_CAP
	.comm	_CAS_MII_1000_CTRL,4,2          ## @CAS_MII_1000_CTRL
	.comm	_CAS_ADVERTISE_1000HALF,4,2     ## @CAS_ADVERTISE_1000HALF
	.comm	_CAS_ADVERTISE_1000FULL,4,2     ## @CAS_ADVERTISE_1000FULL
	.comm	_PCS_DATAPATH_MODE_SERDES,4,2   ## @PCS_DATAPATH_MODE_SERDES
	.comm	_REG_PCS_MII_CTRL,8,3           ## @REG_PCS_MII_CTRL
	.comm	_PCS_MII_RESET,4,2              ## @PCS_MII_RESET
	.comm	_STOP_TRIES,4,2                 ## @STOP_TRIES
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"PCS reset bit would not clear [%08x]\n"

	.comm	_REG_PCS_STATE_MACHINE,8,3      ## @REG_PCS_STATE_MACHINE
	.comm	_REG_PCS_CFG,8,3                ## @REG_PCS_CFG
	.comm	_REG_PCS_MII_ADVERT,8,3         ## @REG_PCS_MII_ADVERT
	.comm	_PCS_MII_ADVERT_HD,4,2          ## @PCS_MII_ADVERT_HD
	.comm	_PCS_MII_ADVERT_FD,4,2          ## @PCS_MII_ADVERT_FD
	.comm	_PCS_MII_ADVERT_SYM_PAUSE,4,2   ## @PCS_MII_ADVERT_SYM_PAUSE
	.comm	_PCS_MII_ADVERT_ASYM_PAUSE,4,2  ## @PCS_MII_ADVERT_ASYM_PAUSE
	.comm	_PCS_CFG_EN,4,2                 ## @PCS_CFG_EN
	.comm	_PCS_SERDES_CTRL_SYNCD_EN,4,2   ## @PCS_SERDES_CTRL_SYNCD_EN
	.comm	_REG_PCS_SERDES_CTRL,8,3        ## @REG_PCS_SERDES_CTRL
	.no_dead_strip	_cas_phy_init
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function cas_phy_init
_cas_phy_init:                          ; @cas_phy_init
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-48]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 48
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #32]             ; 16-byte Folded Spill
	add	x29, sp, #32
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	mov	x19, x0
	ldr	w0, [x0]
	bl	_CAS_PHY_MII
	cbz	x0, LBB0_3
; %bb.1:
Lloh0:
	adrp	x8, _PCS_DATAPATH_MODE_MII@GOTPAGE
Lloh1:
	ldr	x8, [x8, _PCS_DATAPATH_MODE_MII@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
	ldr	x8, [x19, #16]
Lloh3:
	adrp	x9, _REG_PCS_DATAPATH_MODE@GOTPAGE
Lloh4:
	ldr	x9, [x9, _REG_PCS_DATAPATH_MODE@GOTPAGEOFF]
Lloh5:
	ldr	x9, [x9]
	add	x1, x9, x8
	bl	_writel
	mov	x0, x19
	mov	w1, #0
	bl	_cas_mif_poll
	mov	x0, x19
	bl	_cas_reset_mii_phy
Lloh6:
	adrp	x8, _PHY_LUCENT_B0@GOTPAGE
Lloh7:
	ldr	x8, [x8, _PHY_LUCENT_B0@GOTPAGEOFF]
Lloh8:
	ldr	w9, [x8]
	ldr	w8, [x19, #4]
Lloh9:
	adrp	x20, _MII_BMCR@GOTPAGE
Lloh10:
	ldr	x20, [x20, _MII_BMCR@GOTPAGEOFF]
	cmp	w9, w8
	b.ne	LBB0_8
; %bb.2:
Lloh11:
	adrp	x21, _LUCENT_MII_REG@GOTPAGE
Lloh12:
	ldr	x21, [x21, _LUCENT_MII_REG@GOTPAGEOFF]
	ldr	w1, [x21]
	mov	x0, x19
	mov	w2, #32768
	bl	_cas_phy_write
	ldr	w1, [x20]
	mov	x0, x19
	mov	w2, #241
	bl	_cas_phy_write
	ldr	w1, [x21]
	mov	x0, x19
	mov	w2, #0
	bl	_cas_phy_write
	b	LBB0_19
LBB0_3:
Lloh13:
	adrp	x8, _PCS_DATAPATH_MODE_SERDES@GOTPAGE
Lloh14:
	ldr	x8, [x8, _PCS_DATAPATH_MODE_SERDES@GOTPAGEOFF]
Lloh15:
	ldr	w0, [x8]
	ldr	x8, [x19, #16]
Lloh16:
	adrp	x9, _REG_PCS_DATAPATH_MODE@GOTPAGE
Lloh17:
	ldr	x9, [x9, _REG_PCS_DATAPATH_MODE@GOTPAGEOFF]
Lloh18:
	ldr	x9, [x9]
	add	x1, x9, x8
	bl	_writel
	ldr	w8, [x19, #8]
Lloh19:
	adrp	x9, _CAS_FLAG_SATURN@GOTPAGE
Lloh20:
	ldr	x9, [x9, _CAS_FLAG_SATURN@GOTPAGEOFF]
Lloh21:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_5
; %bb.4:
	ldr	x8, [x19, #16]
Lloh22:
	adrp	x9, _REG_SATURN_PCFG@GOTPAGE
Lloh23:
	ldr	x9, [x9, _REG_SATURN_PCFG@GOTPAGEOFF]
Lloh24:
	ldr	x9, [x9]
	add	x1, x9, x8
	mov	w0, #0
	bl	_writel
LBB0_5:
	ldr	x8, [x19, #16]
Lloh25:
	adrp	x20, _REG_PCS_MII_CTRL@GOTPAGE
Lloh26:
	ldr	x20, [x20, _REG_PCS_MII_CTRL@GOTPAGEOFF]
	ldr	x9, [x20]
	add	x0, x9, x8
	bl	_readl
Lloh27:
	adrp	x21, _PCS_MII_RESET@GOTPAGE
Lloh28:
	ldr	x21, [x21, _PCS_MII_RESET@GOTPAGEOFF]
	ldr	w8, [x21]
	orr	w0, w8, w0
	ldr	x8, [x19, #16]
	ldr	x9, [x20]
	add	x1, x9, x8
	bl	_writel
Lloh29:
	adrp	x8, _STOP_TRIES@GOTPAGE
Lloh30:
	ldr	x8, [x8, _STOP_TRIES@GOTPAGEOFF]
Lloh31:
	ldr	w8, [x8]
	add	w22, w8, #1
LBB0_6:                                 ; =>This Inner Loop Header: Depth=1
	sub	w22, w22, #1
	cmp	w22, #2
	b.lt	LBB0_10
; %bb.7:                                ;   in Loop: Header=BB0_6 Depth=1
	mov	w0, #10
	bl	_udelay
	ldr	x8, [x19, #16]
	ldr	x9, [x20]
	add	x0, x9, x8
	bl	_readl
	ldr	w8, [x21]
	tst	w8, w0
	b.ne	LBB0_6
	b	LBB0_11
LBB0_8:
Lloh32:
	adrp	x9, _PHY_BROADCOM_B0@GOTPAGE
Lloh33:
	ldr	x9, [x9, _PHY_BROADCOM_B0@GOTPAGEOFF]
Lloh34:
	ldr	w9, [x9]
	and	w10, w8, #0xfffffffc
	cmp	w9, w10
	b.ne	LBB0_12
; %bb.9:
Lloh35:
	adrp	x8, _BROADCOM_MII_REG8@GOTPAGE
Lloh36:
	ldr	x8, [x8, _BROADCOM_MII_REG8@GOTPAGEOFF]
Lloh37:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #3104
	bl	_cas_phy_write
Lloh38:
	adrp	x21, _BROADCOM_MII_REG7@GOTPAGE
Lloh39:
	ldr	x21, [x21, _BROADCOM_MII_REG7@GOTPAGEOFF]
	ldr	w1, [x21]
	mov	x0, x19
	mov	w2, #18
	bl	_cas_phy_write
Lloh40:
	adrp	x22, _BROADCOM_MII_REG5@GOTPAGE
Lloh41:
	ldr	x22, [x22, _BROADCOM_MII_REG5@GOTPAGEOFF]
	ldr	w1, [x22]
	mov	x0, x19
	mov	w2, #6148
	bl	_cas_phy_write
	ldr	w1, [x21]
	mov	x0, x19
	mov	w2, #19
	bl	_cas_phy_write
	ldr	w1, [x22]
	mov	x0, x19
	mov	w2, #4612
	bl	_cas_phy_write
	ldr	w1, [x21]
	mov	x0, x19
	mov	w2, #32774
	bl	_cas_phy_write
	ldr	w1, [x22]
	mov	x0, x19
	mov	w2, #306
	bl	_cas_phy_write
	ldr	w1, [x21]
	mov	x0, x19
	mov	w2, #32774
	bl	_cas_phy_write
	ldr	w1, [x22]
	mov	x0, x19
	mov	w2, #562
	bl	_cas_phy_write
	ldr	w1, [x21]
	mov	x0, x19
	mov	w2, #8223
	bl	_cas_phy_write
	ldr	w1, [x22]
	mov	x0, x19
	mov	w2, #2592
	bl	_cas_phy_write
	b	LBB0_19
LBB0_10:
	ldr	w20, [x19, #24]
	ldr	x8, [x19, #16]
Lloh42:
	adrp	x9, _REG_PCS_STATE_MACHINE@GOTPAGE
Lloh43:
	ldr	x9, [x9, _REG_PCS_STATE_MACHINE@GOTPAGEOFF]
Lloh44:
	ldr	x9, [x9]
	add	x0, x9, x8
	bl	_readl
	mov	x2, x0
Lloh45:
	adrp	x1, l_.str@PAGE
Lloh46:
	add	x1, x1, l_.str@PAGEOFF
	mov	x0, x20
	bl	_netdev_warn
LBB0_11:
	ldr	x8, [x19, #16]
Lloh47:
	adrp	x20, _REG_PCS_CFG@GOTPAGE
Lloh48:
	ldr	x20, [x20, _REG_PCS_CFG@GOTPAGEOFF]
	ldr	x9, [x20]
	add	x1, x9, x8
	mov	w0, #0
	bl	_writel
	ldr	x8, [x19, #16]
Lloh49:
	adrp	x21, _REG_PCS_MII_ADVERT@GOTPAGE
Lloh50:
	ldr	x21, [x21, _REG_PCS_MII_ADVERT@GOTPAGEOFF]
	ldr	x9, [x21]
	add	x0, x9, x8
	bl	_readl
Lloh51:
	adrp	x8, _PCS_MII_ADVERT_HD@GOTPAGE
Lloh52:
	ldr	x8, [x8, _PCS_MII_ADVERT_HD@GOTPAGEOFF]
Lloh53:
	ldr	w8, [x8]
	bic	w8, w0, w8
Lloh54:
	adrp	x9, _PCS_MII_ADVERT_FD@GOTPAGE
Lloh55:
	ldr	x9, [x9, _PCS_MII_ADVERT_FD@GOTPAGEOFF]
Lloh56:
	ldr	w9, [x9]
Lloh57:
	adrp	x10, _PCS_MII_ADVERT_SYM_PAUSE@GOTPAGE
Lloh58:
	ldr	x10, [x10, _PCS_MII_ADVERT_SYM_PAUSE@GOTPAGEOFF]
Lloh59:
	ldr	w10, [x10]
Lloh60:
	adrp	x11, _PCS_MII_ADVERT_ASYM_PAUSE@GOTPAGE
Lloh61:
	ldr	x11, [x11, _PCS_MII_ADVERT_ASYM_PAUSE@GOTPAGEOFF]
Lloh62:
	ldr	w11, [x11]
	orr	w8, w8, w9
	orr	w8, w8, w10
	orr	w0, w8, w11
	ldr	x8, [x19, #16]
	ldr	x9, [x21]
	add	x1, x9, x8
	bl	_writel
Lloh63:
	adrp	x8, _PCS_CFG_EN@GOTPAGE
Lloh64:
	ldr	x8, [x8, _PCS_CFG_EN@GOTPAGEOFF]
Lloh65:
	ldr	w0, [x8]
	ldr	x8, [x19, #16]
	ldr	x9, [x20]
	add	x1, x9, x8
	bl	_writel
Lloh66:
	adrp	x8, _PCS_SERDES_CTRL_SYNCD_EN@GOTPAGE
Lloh67:
	ldr	x8, [x8, _PCS_SERDES_CTRL_SYNCD_EN@GOTPAGEOFF]
Lloh68:
	ldr	w0, [x8]
	ldr	x8, [x19, #16]
Lloh69:
	adrp	x9, _REG_PCS_SERDES_CTRL@GOTPAGE
Lloh70:
	ldr	x9, [x9, _REG_PCS_SERDES_CTRL@GOTPAGEOFF]
Lloh71:
	ldr	x9, [x9]
	add	x1, x9, x8
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	b	_writel
LBB0_12:
Lloh72:
	adrp	x9, _PHY_BROADCOM_5411@GOTPAGE
Lloh73:
	ldr	x9, [x9, _PHY_BROADCOM_5411@GOTPAGEOFF]
Lloh74:
	ldr	w9, [x9]
	cmp	w9, w8
	b.ne	LBB0_15
; %bb.13:
Lloh75:
	adrp	x21, _BROADCOM_MII_REG4@GOTPAGE
Lloh76:
	ldr	x21, [x21, _BROADCOM_MII_REG4@GOTPAGEOFF]
	ldr	w1, [x21]
	mov	x0, x19
	bl	_cas_phy_read
	ldr	w1, [x21]
	mov	x0, x19
	bl	_cas_phy_read
	tbz	w0, #7, LBB0_19
; %bb.14:
	ldr	w1, [x21]
	and	w2, w0, #0xffffff7f
	mov	x0, x19
	bl	_cas_phy_write
	b	LBB0_19
LBB0_15:
	ldr	w8, [x19, #8]
Lloh77:
	adrp	x9, _CAS_FLAG_SATURN@GOTPAGE
Lloh78:
	ldr	x9, [x9, _CAS_FLAG_SATURN@GOTPAGEOFF]
Lloh79:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_19
; %bb.16:
Lloh80:
	adrp	x8, _CAS_PHY_MII_MDIO0@GOTPAGE
Lloh81:
	ldr	x8, [x8, _CAS_PHY_MII_MDIO0@GOTPAGEOFF]
	ldr	w9, [x19]
Lloh82:
	ldr	w8, [x8]
Lloh83:
	adrp	x10, _SATURN_PCFG_FSI@GOTPAGE
Lloh84:
	ldr	x10, [x10, _SATURN_PCFG_FSI@GOTPAGEOFF]
Lloh85:
	ldr	w10, [x10]
	tst	w8, w9
	csel	w0, wzr, w10, eq
	ldr	x8, [x19, #16]
Lloh86:
	adrp	x9, _REG_SATURN_PCFG@GOTPAGE
Lloh87:
	ldr	x9, [x9, _REG_SATURN_PCFG@GOTPAGEOFF]
Lloh88:
	ldr	x9, [x9]
	add	x1, x9, x8
	bl	_writel
Lloh89:
	adrp	x8, _PHY_NS_DP83065@GOTPAGE
Lloh90:
	ldr	x8, [x8, _PHY_NS_DP83065@GOTPAGEOFF]
Lloh91:
	ldr	x8, [x8]
	ldrsw	x9, [x19, #4]
	cmp	x8, x9
	b.ne	LBB0_18
; %bb.17:
	mov	x0, x19
	bl	_cas_saturn_firmware_load
LBB0_18:
	mov	x0, x19
	bl	_cas_phy_powerup
LBB0_19:
	ldr	w1, [x20]
	mov	x0, x19
	bl	_cas_phy_read
Lloh92:
	adrp	x8, _BMCR_ANENABLE@GOTPAGE
Lloh93:
	ldr	x8, [x8, _BMCR_ANENABLE@GOTPAGEOFF]
Lloh94:
	ldr	w8, [x8]
	bic	w2, w0, w8
	ldr	w1, [x20]
	mov	x0, x19
	bl	_cas_phy_write
	mov	w0, #10
	bl	_udelay
Lloh95:
	adrp	x8, _MII_ADVERTISE@GOTPAGE
Lloh96:
	ldr	x8, [x8, _MII_ADVERTISE@GOTPAGEOFF]
Lloh97:
	ldr	w20, [x8]
	mov	x0, x19
	mov	x1, x20
	bl	_cas_phy_read
Lloh98:
	adrp	x8, _ADVERTISE_10HALF@GOTPAGE
Lloh99:
	ldr	x8, [x8, _ADVERTISE_10HALF@GOTPAGEOFF]
Lloh100:
	ldr	w8, [x8]
Lloh101:
	adrp	x9, _ADVERTISE_10FULL@GOTPAGE
Lloh102:
	ldr	x9, [x9, _ADVERTISE_10FULL@GOTPAGEOFF]
Lloh103:
	ldr	w9, [x9]
Lloh104:
	adrp	x10, _ADVERTISE_100HALF@GOTPAGE
Lloh105:
	ldr	x10, [x10, _ADVERTISE_100HALF@GOTPAGEOFF]
Lloh106:
	ldr	w10, [x10]
Lloh107:
	adrp	x11, _ADVERTISE_100FULL@GOTPAGE
Lloh108:
	ldr	x11, [x11, _ADVERTISE_100FULL@GOTPAGEOFF]
Lloh109:
	ldr	w11, [x11]
Lloh110:
	adrp	x12, _CAS_ADVERTISE_PAUSE@GOTPAGE
Lloh111:
	ldr	x12, [x12, _CAS_ADVERTISE_PAUSE@GOTPAGEOFF]
Lloh112:
	ldr	w12, [x12]
Lloh113:
	adrp	x13, _CAS_ADVERTISE_ASYM_PAUSE@GOTPAGE
Lloh114:
	ldr	x13, [x13, _CAS_ADVERTISE_ASYM_PAUSE@GOTPAGEOFF]
Lloh115:
	ldr	w13, [x13]
	orr	w8, w8, w0
	orr	w8, w8, w9
	orr	w8, w8, w10
	orr	w8, w8, w11
	orr	w8, w8, w12
	orr	w2, w8, w13
	mov	x0, x19
	mov	x1, x20
	bl	_cas_phy_write
	ldr	w8, [x19, #8]
Lloh116:
	adrp	x9, _CAS_FLAG_1000MB_CAP@GOTPAGE
Lloh117:
	ldr	x9, [x9, _CAS_FLAG_1000MB_CAP@GOTPAGEOFF]
Lloh118:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_21
; %bb.20:
Lloh119:
	adrp	x20, _CAS_MII_1000_CTRL@GOTPAGE
Lloh120:
	ldr	x20, [x20, _CAS_MII_1000_CTRL@GOTPAGEOFF]
	ldr	w1, [x20]
	mov	x0, x19
	bl	_cas_phy_read
Lloh121:
	adrp	x8, _CAS_ADVERTISE_1000HALF@GOTPAGE
Lloh122:
	ldr	x8, [x8, _CAS_ADVERTISE_1000HALF@GOTPAGEOFF]
Lloh123:
	ldr	w8, [x8]
	bic	w8, w0, w8
Lloh124:
	adrp	x9, _CAS_ADVERTISE_1000FULL@GOTPAGE
Lloh125:
	ldr	x9, [x9, _CAS_ADVERTISE_1000FULL@GOTPAGEOFF]
Lloh126:
	ldr	w9, [x9]
	orr	w2, w8, w9
	ldr	w1, [x20]
	mov	x0, x19
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	b	_cas_phy_write
LBB0_21:
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGot	Lloh9, Lloh10
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh21
	.loh AdrpLdrGotLdr	Lloh16, Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh22, Lloh23, Lloh24
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGot	Lloh27, Lloh28
	.loh AdrpLdrGot	Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGot	Lloh40, Lloh41
	.loh AdrpLdrGot	Lloh38, Lloh39
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpAdd	Lloh45, Lloh46
	.loh AdrpLdrGotLdr	Lloh42, Lloh43, Lloh44
	.loh AdrpLdrGotLdr	Lloh69, Lloh70, Lloh71
	.loh AdrpLdrGotLdr	Lloh66, Lloh67, Lloh68
	.loh AdrpLdrGotLdr	Lloh63, Lloh64, Lloh65
	.loh AdrpLdrGotLdr	Lloh60, Lloh61, Lloh62
	.loh AdrpLdrGotLdr	Lloh57, Lloh58, Lloh59
	.loh AdrpLdrGotLdr	Lloh54, Lloh55, Lloh56
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpLdrGot	Lloh49, Lloh50
	.loh AdrpLdrGot	Lloh47, Lloh48
	.loh AdrpLdrGotLdr	Lloh72, Lloh73, Lloh74
	.loh AdrpLdrGot	Lloh75, Lloh76
	.loh AdrpLdrGotLdr	Lloh77, Lloh78, Lloh79
	.loh AdrpLdrGotLdr	Lloh89, Lloh90, Lloh91
	.loh AdrpLdrGotLdr	Lloh86, Lloh87, Lloh88
	.loh AdrpLdrGotLdr	Lloh83, Lloh84, Lloh85
	.loh AdrpLdrGotLdr	Lloh80, Lloh81, Lloh82
	.loh AdrpLdrGotLdr	Lloh116, Lloh117, Lloh118
	.loh AdrpLdrGotLdr	Lloh113, Lloh114, Lloh115
	.loh AdrpLdrGotLdr	Lloh110, Lloh111, Lloh112
	.loh AdrpLdrGotLdr	Lloh107, Lloh108, Lloh109
	.loh AdrpLdrGotLdr	Lloh104, Lloh105, Lloh106
	.loh AdrpLdrGotLdr	Lloh101, Lloh102, Lloh103
	.loh AdrpLdrGotLdr	Lloh98, Lloh99, Lloh100
	.loh AdrpLdrGotLdr	Lloh95, Lloh96, Lloh97
	.loh AdrpLdrGotLdr	Lloh92, Lloh93, Lloh94
	.loh AdrpLdrGotLdr	Lloh124, Lloh125, Lloh126
	.loh AdrpLdrGotLdr	Lloh121, Lloh122, Lloh123
	.loh AdrpLdrGot	Lloh119, Lloh120
	.cfi_endproc
                                        ; -- End function
	.comm	_PCS_DATAPATH_MODE_MII,4,2      ; @PCS_DATAPATH_MODE_MII
	.comm	_REG_PCS_DATAPATH_MODE,8,3      ; @REG_PCS_DATAPATH_MODE
	.comm	_PHY_LUCENT_B0,4,2              ; @PHY_LUCENT_B0
	.comm	_LUCENT_MII_REG,4,2             ; @LUCENT_MII_REG
	.comm	_MII_BMCR,4,2                   ; @MII_BMCR
	.comm	_PHY_BROADCOM_B0,4,2            ; @PHY_BROADCOM_B0
	.comm	_BROADCOM_MII_REG8,4,2          ; @BROADCOM_MII_REG8
	.comm	_BROADCOM_MII_REG7,4,2          ; @BROADCOM_MII_REG7
	.comm	_BROADCOM_MII_REG5,4,2          ; @BROADCOM_MII_REG5
	.comm	_PHY_BROADCOM_5411,4,2          ; @PHY_BROADCOM_5411
	.comm	_BROADCOM_MII_REG4,4,2          ; @BROADCOM_MII_REG4
	.comm	_CAS_FLAG_SATURN,4,2            ; @CAS_FLAG_SATURN
	.comm	_CAS_PHY_MII_MDIO0,4,2          ; @CAS_PHY_MII_MDIO0
	.comm	_SATURN_PCFG_FSI,4,2            ; @SATURN_PCFG_FSI
	.comm	_REG_SATURN_PCFG,8,3            ; @REG_SATURN_PCFG
	.comm	_PHY_NS_DP83065,8,3             ; @PHY_NS_DP83065
	.comm	_BMCR_ANENABLE,4,2              ; @BMCR_ANENABLE
	.comm	_MII_ADVERTISE,4,2              ; @MII_ADVERTISE
	.comm	_ADVERTISE_10HALF,4,2           ; @ADVERTISE_10HALF
	.comm	_ADVERTISE_10FULL,4,2           ; @ADVERTISE_10FULL
	.comm	_ADVERTISE_100HALF,4,2          ; @ADVERTISE_100HALF
	.comm	_ADVERTISE_100FULL,4,2          ; @ADVERTISE_100FULL
	.comm	_CAS_ADVERTISE_PAUSE,4,2        ; @CAS_ADVERTISE_PAUSE
	.comm	_CAS_ADVERTISE_ASYM_PAUSE,4,2   ; @CAS_ADVERTISE_ASYM_PAUSE
	.comm	_CAS_FLAG_1000MB_CAP,4,2        ; @CAS_FLAG_1000MB_CAP
	.comm	_CAS_MII_1000_CTRL,4,2          ; @CAS_MII_1000_CTRL
	.comm	_CAS_ADVERTISE_1000HALF,4,2     ; @CAS_ADVERTISE_1000HALF
	.comm	_CAS_ADVERTISE_1000FULL,4,2     ; @CAS_ADVERTISE_1000FULL
	.comm	_PCS_DATAPATH_MODE_SERDES,4,2   ; @PCS_DATAPATH_MODE_SERDES
	.comm	_REG_PCS_MII_CTRL,8,3           ; @REG_PCS_MII_CTRL
	.comm	_PCS_MII_RESET,4,2              ; @PCS_MII_RESET
	.comm	_STOP_TRIES,4,2                 ; @STOP_TRIES
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"PCS reset bit would not clear [%08x]\n"

	.comm	_REG_PCS_STATE_MACHINE,8,3      ; @REG_PCS_STATE_MACHINE
	.comm	_REG_PCS_CFG,8,3                ; @REG_PCS_CFG
	.comm	_REG_PCS_MII_ADVERT,8,3         ; @REG_PCS_MII_ADVERT
	.comm	_PCS_MII_ADVERT_HD,4,2          ; @PCS_MII_ADVERT_HD
	.comm	_PCS_MII_ADVERT_FD,4,2          ; @PCS_MII_ADVERT_FD
	.comm	_PCS_MII_ADVERT_SYM_PAUSE,4,2   ; @PCS_MII_ADVERT_SYM_PAUSE
	.comm	_PCS_MII_ADVERT_ASYM_PAUSE,4,2  ; @PCS_MII_ADVERT_ASYM_PAUSE
	.comm	_PCS_CFG_EN,4,2                 ; @PCS_CFG_EN
	.comm	_PCS_SERDES_CTRL_SYNCD_EN,4,2   ; @PCS_SERDES_CTRL_SYNCD_EN
	.comm	_REG_PCS_SERDES_CTRL,8,3        ; @REG_PCS_SERDES_CTRL
	.no_dead_strip	_cas_phy_init
.subsections_via_symbols
