	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function smsc75xx_suspend
_smsc75xx_suspend:                      ## @smsc75xx_suspend
	.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	%r13
	pushq	%r12
	pushq	%rbx
	subq	$56, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rsi, %r14
	movq	%rdi, %r15
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -48(%rbp)
	callq	_usb_get_intfdata
	movq	%rax, %r12
	movq	8(%rax), %rax
	movq	(%rax), %rbx
	movq	%r15, %rdi
	movq	%r14, %rsi
	callq	_usbnet_suspend
	testl	%eax, %eax
	js	LBB0_1
## %bb.2:
	cmpq	$0, 8(%rbx)
	je	LBB0_4
## %bb.3:
	movl	(%r12), %edi
	leaq	L_.str.1(%rip), %rsi
	xorl	%eax, %eax
	callq	_netdev_warn
	movq	$0, 8(%rbx)
LBB0_4:
	movq	%rbx, -88(%rbp)                 ## 8-byte Spill
	movq	%r12, %rdi
	callq	_smsc75xx_link_ok_nopm
	movl	%eax, %ebx
	movq	_PM_EVENT_AUTO_SUSPEND@GOTPCREL(%rip), %rax
	cmpq	%r14, (%rax)
	jne	LBB0_6
## %bb.5:
	movq	%r12, %rdi
	movl	%ebx, %esi
	callq	_smsc75xx_autosuspend
LBB0_79:
	movl	%eax, %r13d
	testl	%eax, %eax
	jne	LBB0_33
## %bb.80:
	xorl	%r13d, %r13d
	jmp	LBB0_81
LBB0_1:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str(%rip), %rsi
	xorl	%eax, %eax
	callq	_netdev_warn
	jmp	LBB0_81
LBB0_6:
	movq	-88(%rbp), %rax                 ## 8-byte Reload
	movl	(%rax), %eax
	movq	_SUPPORTED_WAKE@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_9
## %bb.7:
	movq	_WAKE_PHY@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	testl	%ebx, %ebx
	je	LBB0_8
## %bb.18:
	testl	%eax, %ecx
	jne	LBB0_19
	jmp	LBB0_23
LBB0_8:
	testl	%eax, %ecx
	je	LBB0_9
LBB0_19:
	movq	_PHY_INT_MASK_ANEG_COMP@GOTPCREL(%rip), %rax
	movq	_PHY_INT_MASK_LINK_DOWN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %esi
	orl	(%rax), %esi
	movq	%r12, %rdi
	callq	_smsc75xx_enable_phy_wakeup_interrupts
	testl	%eax, %eax
	js	LBB0_20
## %bb.21:
	testl	%ebx, %ebx
	je	LBB0_26
## %bb.22:
	movq	-88(%rbp), %rax                 ## 8-byte Reload
	movl	(%rax), %eax
LBB0_23:
	movq	_WAKE_MCAST@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	_WAKE_ARP@GOTPCREL(%rip), %rsi
	movl	(%rsi), %edx
	orl	%ecx, %edx
	testl	%eax, %edx
	je	LBB0_54
## %bb.24:
	movq	_WUF_NUM@GOTPCREL(%rip), %rdx
	cmpl	$0, (%rdx)
	jle	LBB0_36
## %bb.25:
	movq	%r14, -80(%rbp)                 ## 8-byte Spill
	movq	%r15, -96(%rbp)                 ## 8-byte Spill
	xorl	%r15d, %r15d
	movq	_WUF_CFGX@GOTPCREL(%rip), %r14
	xorl	%ebx, %ebx
	.p2align	4, 0x90
LBB0_30:                                ## =>This Inner Loop Header: Depth=1
	movq	(%r14), %rsi
	addq	%r15, %rsi
	movq	%r12, %rdi
	xorl	%edx, %edx
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_31
## %bb.29:                              ##   in Loop: Header=BB0_30 Depth=1
	incq	%rbx
	movq	_WUF_NUM@GOTPCREL(%rip), %rax
	movslq	(%rax), %rax
	addq	$4, %r15
	cmpq	%rax, %rbx
	jl	LBB0_30
## %bb.35:
	movq	-88(%rbp), %rax                 ## 8-byte Reload
	movl	(%rax), %eax
	movq	_WAKE_MCAST@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	-96(%rbp), %r15                 ## 8-byte Reload
	movq	-80(%rbp), %r14                 ## 8-byte Reload
	movq	_WAKE_ARP@GOTPCREL(%rip), %rsi
LBB0_36:
	testl	%eax, %ecx
	je	LBB0_37
## %bb.38:
	movl	l___const.smsc75xx_suspend.mcast+8(%rip), %eax
	movl	%eax, -56(%rbp)
	movq	l___const.smsc75xx_suspend.mcast(%rip), %rax
	movq	%rax, -64(%rbp)
	movl	(%r12), %edi
	leaq	L_.str.11(%rip), %rsi
	callq	_netdev_info
	movq	_WUF_CFGX_EN@GOTPCREL(%rip), %rax
	movq	_WUF_CFGX_ATYPE_MULTICAST@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ebx
	orl	(%rax), %ebx
	leaq	-64(%rbp), %rdi
	movl	$3, %esi
	callq	_smsc_crc
	orl	%eax, %ebx
	movl	%ebx, -68(%rbp)
	movq	%r12, %rdi
	xorl	%esi, %esi
	movl	%ebx, %edx
	movl	$7, %ecx
	callq	_smsc75xx_write_wuff
	testl	%eax, %eax
	js	LBB0_39
## %bb.40:
	movq	-88(%rbp), %rax                 ## 8-byte Reload
	movl	(%rax), %eax
	movl	$1, %r13d
	movq	_WAKE_ARP@GOTPCREL(%rip), %rsi
	jmp	LBB0_41
LBB0_9:
	movl	(%r12), %edi
	leaq	L_.str.2(%rip), %rsi
	callq	_netdev_info
	movq	_WUCSR@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_10
## %bb.11:
	movq	_WUCSR_MPEN@GOTPCREL(%rip), %rax
	movq	_WUCSR_WUEN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	orl	(%rax), %edx
	notl	%edx
	andl	-68(%rbp), %edx
	movl	%edx, -68(%rbp)
	movq	(%rbx), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_12
## %bb.13:
	movq	_PMT_CTL@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_14
## %bb.15:
	movq	_PMT_CTL_ED_EN@GOTPCREL(%rip), %rax
	movq	_PMT_CTL_WOL_EN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	orl	(%rax), %edx
	notl	%edx
	andl	-68(%rbp), %edx
	movl	%edx, -68(%rbp)
	movq	(%rbx), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_16
## %bb.17:
	movq	%r12, %rdi
	callq	_smsc75xx_enter_suspend2
	jmp	LBB0_79
LBB0_20:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.7(%rip), %rsi
	jmp	LBB0_47
LBB0_54:
	movl	(%r12), %edi
	leaq	L_.str.15(%rip), %rsi
	callq	_netdev_info
	movq	_WUCSR@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_10
## %bb.55:
	movq	_WUCSR_WUEN@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	notl	%edx
	andl	-68(%rbp), %edx
	jmp	LBB0_50
LBB0_26:
	movl	(%r12), %edi
	leaq	L_.str.8(%rip), %rsi
	callq	_netdev_info
	movl	(%r12), %edi
	movl	4(%r12), %esi
	movq	_PHY_MODE_CTRL_STS@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edx
	callq	_smsc75xx_mdio_read_nopm
	movl	%eax, %r13d
	testl	%eax, %eax
	js	LBB0_27
## %bb.28:
	movq	_MODE_CTRL_STS_EDPWRDOWN@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	orl	%r13d, %ecx
	movl	(%r12), %edi
	movl	4(%r12), %esi
	movl	(%rbx), %edx
	callq	_smsc75xx_mdio_write_nopm
	movq	%r12, %rdi
	callq	_smsc75xx_enter_suspend1
	jmp	LBB0_79
LBB0_14:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.5(%rip), %rsi
	jmp	LBB0_47
LBB0_31:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.10(%rip), %rsi
	xorl	%eax, %eax
	callq	_netdev_warn
	movq	-96(%rbp), %r15                 ## 8-byte Reload
	jmp	LBB0_32
LBB0_37:
	xorl	%r13d, %r13d
LBB0_41:
	testl	%eax, (%rsi)
	je	LBB0_43
## %bb.42:
	movabsq	$25769803784, %rax              ## imm = 0x600000008
	movq	%rax, -64(%rbp)
	movl	(%r12), %edi
	leaq	L_.str.13(%rip), %rsi
	callq	_netdev_info
	movq	_WUF_CFGX_EN@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movq	_WUF_CFGX_ATYPE_ALL@GOTPCREL(%rip), %rax
	orl	(%rax), %ebx
	leaq	-64(%rbp), %rdi
	movl	$2, %esi
	callq	_smsc_crc
	orl	%eax, %ebx
	orl	$786432, %ebx                   ## imm = 0xC0000
	movl	%ebx, -68(%rbp)
	movq	%r12, %rdi
	movl	%r13d, %esi
	movl	%ebx, %edx
	movl	$3, %ecx
	callq	_smsc75xx_write_wuff
	testl	%eax, %eax
	js	LBB0_39
LBB0_43:
	movq	_WUCSR@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_10
## %bb.44:
	movq	_WUCSR_WUFR@GOTPCREL(%rip), %rax
	movl	-68(%rbp), %edx
	orl	(%rax), %edx
	movl	%edx, -68(%rbp)
	movq	(%rbx), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	movl	(%r12), %edi
	testl	%eax, %eax
	js	LBB0_45
## %bb.48:
	leaq	L_.str.14(%rip), %rsi
	callq	_netdev_info
	movq	(%rbx), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_10
## %bb.49:
	movq	_WUCSR_WUEN@GOTPCREL(%rip), %rax
	movl	-68(%rbp), %edx
	orl	(%rax), %edx
LBB0_50:
	movl	%edx, -68(%rbp)
	movq	(%rbx), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_12
## %bb.51:
	movq	%r14, -80(%rbp)                 ## 8-byte Spill
	movq	_WUCSR@GOTPCREL(%rip), %r14
	movq	(%r14), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_52
## %bb.56:
	movq	_WUCSR_MPEN@GOTPCREL(%rip), %rcx
	movq	_WUCSR_BCST_EN@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	orl	(%rcx), %edx
	movq	_WUCSR_PFDA_EN@GOTPCREL(%rip), %rax
	orl	(%rax), %edx
	notl	%edx
	andl	-68(%rbp), %edx
	movl	%edx, -68(%rbp)
	movq	(%r14), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_57
## %bb.58:
	movq	-88(%rbp), %rbx                 ## 8-byte Reload
	movl	(%rbx), %eax
	movq	_WAKE_PHY@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_63
## %bb.59:
	movl	(%r12), %edi
	leaq	L_.str.16(%rip), %rsi
	callq	_netdev_info
	movq	_PMT_CTL@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_60
## %bb.61:
	movq	_PMT_CTL_WUPS@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	notl	%edx
	andl	-68(%rbp), %edx
	movq	_PMT_CTL_WUPS_ED@GOTPCREL(%rip), %rax
	movq	_PMT_CTL_ED_EN@GOTPCREL(%rip), %rcx
	orl	(%rax), %edx
	orl	(%rcx), %edx
	movl	%edx, -68(%rbp)
	movq	(%rbx), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_83
## %bb.62:
	movq	-88(%rbp), %rbx                 ## 8-byte Reload
	movl	(%rbx), %eax
LBB0_63:
	movq	_WAKE_MAGIC@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_67
## %bb.64:
	movl	(%r12), %edi
	leaq	L_.str.17(%rip), %rsi
	callq	_netdev_info
	movq	(%r14), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_52
## %bb.65:
	movq	_WUCSR_MPR@GOTPCREL(%rip), %rax
	movq	_WUCSR_MPEN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	orl	(%rax), %edx
	orl	-68(%rbp), %edx
	movl	%edx, -68(%rbp)
	movq	(%r14), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_57
## %bb.66:
	movl	(%rbx), %eax
LBB0_67:
	movq	_WAKE_BCAST@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_71
## %bb.68:
	movl	(%r12), %edi
	leaq	L_.str.18(%rip), %rsi
	callq	_netdev_info
	movq	(%r14), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_52
## %bb.69:
	movq	_WUCSR_BCAST_FR@GOTPCREL(%rip), %rax
	movq	_WUCSR_BCST_EN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	orl	(%rax), %edx
	orl	-68(%rbp), %edx
	movl	%edx, -68(%rbp)
	movq	(%r14), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_57
## %bb.70:
	movl	(%rbx), %eax
LBB0_71:
	movq	_WAKE_UCAST@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_74
## %bb.72:
	movl	(%r12), %edi
	leaq	L_.str.19(%rip), %rsi
	callq	_netdev_info
	movq	(%r14), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_52
## %bb.73:
	movq	_WUCSR_WUFR@GOTPCREL(%rip), %rax
	movq	_WUCSR_PFDA_EN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	orl	(%rax), %edx
	orl	-68(%rbp), %edx
	movl	%edx, -68(%rbp)
	movq	(%r14), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	testl	%eax, %eax
	js	LBB0_57
LBB0_74:
	movq	_MAC_RX@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rsi
	leaq	-68(%rbp), %rdx
	movq	%r12, %rdi
	callq	_smsc75xx_read_reg_nopm
	testl	%eax, %eax
	js	LBB0_75
## %bb.76:
	movq	_MAC_RX_RXEN@GOTPCREL(%rip), %rax
	movl	-68(%rbp), %edx
	orl	(%rax), %edx
	movl	%edx, -68(%rbp)
	movq	(%rbx), %rsi
	movq	%r12, %rdi
	callq	_smsc75xx_write_reg_nopm
	movl	(%r12), %edi
	testl	%eax, %eax
	movq	-80(%rbp), %r14                 ## 8-byte Reload
	js	LBB0_77
## %bb.78:
	leaq	L_.str.22(%rip), %rsi
	callq	_netdev_info
	movq	%r12, %rdi
	callq	_smsc75xx_enter_suspend0
	jmp	LBB0_79
LBB0_10:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.3(%rip), %rsi
	jmp	LBB0_47
LBB0_12:
	movl	%eax, %r13d
	movl	(%r12), %edi
LBB0_46:
	leaq	L_.str.4(%rip), %rsi
	jmp	LBB0_47
LBB0_39:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.12(%rip), %rsi
	jmp	LBB0_47
LBB0_16:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.6(%rip), %rsi
	jmp	LBB0_47
LBB0_27:
	movl	(%r12), %edi
	leaq	L_.str.9(%rip), %rsi
LBB0_47:
	xorl	%eax, %eax
	callq	_netdev_warn
LBB0_33:
	movq	%r14, %rdi
	callq	_PMSG_IS_AUTO
	testq	%rax, %rax
	je	LBB0_81
## %bb.34:
	movq	%r15, %rdi
	callq	_usbnet_resume
LBB0_81:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-48(%rbp), %rax
	jne	LBB0_84
## %bb.82:
	movl	%r13d, %eax
	addq	$56, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_52:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.3(%rip), %rsi
	jmp	LBB0_53
LBB0_45:
	movl	%eax, %r13d
	jmp	LBB0_46
LBB0_57:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.4(%rip), %rsi
	jmp	LBB0_53
LBB0_60:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.5(%rip), %rsi
	jmp	LBB0_53
LBB0_83:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.6(%rip), %rsi
LBB0_53:
	xorl	%eax, %eax
	callq	_netdev_warn
LBB0_32:
	movq	-80(%rbp), %r14                 ## 8-byte Reload
	jmp	LBB0_33
LBB0_75:
	movl	%eax, %r13d
	movl	(%r12), %edi
	leaq	L_.str.20(%rip), %rsi
	movl	%eax, %edx
	xorl	%eax, %eax
	callq	_netdev_warn
	jmp	LBB0_32
LBB0_77:
	movl	%eax, %r13d
	leaq	L_.str.21(%rip), %rsi
	movl	%eax, %edx
	xorl	%eax, %eax
	callq	_netdev_warn
	jmp	LBB0_33
LBB0_84:
	callq	___stack_chk_fail
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"usbnet_suspend error\n"

L_.str.1:                               ## @.str.1
	.asciz	"error during last resume\n"

	.comm	_PM_EVENT_AUTO_SUSPEND,8,3      ## @PM_EVENT_AUTO_SUSPEND
	.comm	_SUPPORTED_WAKE,4,2             ## @SUPPORTED_WAKE
	.comm	_WAKE_PHY,4,2                   ## @WAKE_PHY
L_.str.2:                               ## @.str.2
	.asciz	"entering SUSPEND2 mode\n"

	.comm	_WUCSR,8,3                      ## @WUCSR
L_.str.3:                               ## @.str.3
	.asciz	"Error reading WUCSR\n"

	.comm	_WUCSR_MPEN,4,2                 ## @WUCSR_MPEN
	.comm	_WUCSR_WUEN,4,2                 ## @WUCSR_WUEN
L_.str.4:                               ## @.str.4
	.asciz	"Error writing WUCSR\n"

	.comm	_PMT_CTL,8,3                    ## @PMT_CTL
L_.str.5:                               ## @.str.5
	.asciz	"Error reading PMT_CTL\n"

	.comm	_PMT_CTL_ED_EN,4,2              ## @PMT_CTL_ED_EN
	.comm	_PMT_CTL_WOL_EN,4,2             ## @PMT_CTL_WOL_EN
L_.str.6:                               ## @.str.6
	.asciz	"Error writing PMT_CTL\n"

	.comm	_PHY_INT_MASK_ANEG_COMP,4,2     ## @PHY_INT_MASK_ANEG_COMP
	.comm	_PHY_INT_MASK_LINK_DOWN,4,2     ## @PHY_INT_MASK_LINK_DOWN
L_.str.7:                               ## @.str.7
	.asciz	"error enabling PHY wakeup ints\n"

L_.str.8:                               ## @.str.8
	.asciz	"entering SUSPEND1 mode\n"

	.comm	_PHY_MODE_CTRL_STS,4,2          ## @PHY_MODE_CTRL_STS
L_.str.9:                               ## @.str.9
	.asciz	"Error reading PHY_MODE_CTRL_STS\n"

	.comm	_MODE_CTRL_STS_EDPWRDOWN,4,2    ## @MODE_CTRL_STS_EDPWRDOWN
	.comm	_WAKE_MCAST,4,2                 ## @WAKE_MCAST
	.comm	_WAKE_ARP,4,2                   ## @WAKE_ARP
	.comm	_WUF_NUM,4,2                    ## @WUF_NUM
	.comm	_WUF_CFGX,8,3                   ## @WUF_CFGX
L_.str.10:                              ## @.str.10
	.asciz	"Error writing WUF_CFGX\n"

	.section	__TEXT,__const
	.p2align	2                               ## @__const.smsc75xx_suspend.mcast
l___const.smsc75xx_suspend.mcast:
	.long	1                               ## 0x1
	.long	0                               ## 0x0
	.long	94                              ## 0x5e

	.section	__TEXT,__cstring,cstring_literals
L_.str.11:                              ## @.str.11
	.asciz	"enabling multicast detection\n"

	.comm	_WUF_CFGX_EN,4,2                ## @WUF_CFGX_EN
	.comm	_WUF_CFGX_ATYPE_MULTICAST,4,2   ## @WUF_CFGX_ATYPE_MULTICAST
L_.str.12:                              ## @.str.12
	.asciz	"Error writing wakeup filter\n"

L_.str.13:                              ## @.str.13
	.asciz	"enabling ARP detection\n"

	.comm	_WUF_CFGX_ATYPE_ALL,4,2         ## @WUF_CFGX_ATYPE_ALL
	.comm	_WUCSR_WUFR,4,2                 ## @WUCSR_WUFR
L_.str.14:                              ## @.str.14
	.asciz	"enabling packet match detection\n"

L_.str.15:                              ## @.str.15
	.asciz	"disabling packet match detection\n"

	.comm	_WUCSR_BCST_EN,4,2              ## @WUCSR_BCST_EN
	.comm	_WUCSR_PFDA_EN,4,2              ## @WUCSR_PFDA_EN
L_.str.16:                              ## @.str.16
	.asciz	"enabling PHY wakeup\n"

	.comm	_PMT_CTL_WUPS,4,2               ## @PMT_CTL_WUPS
	.comm	_PMT_CTL_WUPS_ED,4,2            ## @PMT_CTL_WUPS_ED
	.comm	_WAKE_MAGIC,4,2                 ## @WAKE_MAGIC
L_.str.17:                              ## @.str.17
	.asciz	"enabling magic packet wakeup\n"

	.comm	_WUCSR_MPR,4,2                  ## @WUCSR_MPR
	.comm	_WAKE_BCAST,4,2                 ## @WAKE_BCAST
L_.str.18:                              ## @.str.18
	.asciz	"enabling broadcast detection\n"

	.comm	_WUCSR_BCAST_FR,4,2             ## @WUCSR_BCAST_FR
	.comm	_WAKE_UCAST,4,2                 ## @WAKE_UCAST
L_.str.19:                              ## @.str.19
	.asciz	"enabling unicast detection\n"

	.comm	_MAC_RX,8,3                     ## @MAC_RX
L_.str.20:                              ## @.str.20
	.asciz	"Failed to read MAC_RX: %d\n"

	.comm	_MAC_RX_RXEN,4,2                ## @MAC_RX_RXEN
L_.str.21:                              ## @.str.21
	.asciz	"Failed to write MAC_RX: %d\n"

L_.str.22:                              ## @.str.22
	.asciz	"entering SUSPEND0 mode\n"

	.no_dead_strip	_smsc75xx_suspend
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function smsc75xx_suspend
_smsc75xx_suspend:                      ; @smsc75xx_suspend
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #144
	.cfi_def_cfa_offset 144
	stp	x28, x27, [sp, #48]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #64]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #80]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #96]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #112]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #128]            ; 16-byte Folded Spill
	add	x29, sp, #128
	.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
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	mov	x20, x1
	mov	x19, x0
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	str	x8, [sp, #40]
	bl	_usb_get_intfdata
	mov	x21, x0
	ldr	x8, [x0, #8]
	ldr	x24, [x8]
	mov	x0, x19
	mov	x1, x20
	bl	_usbnet_suspend
	tbnz	w0, #31, LBB0_6
; %bb.1:
	ldr	x8, [x24, #8]
	cbz	x8, LBB0_3
; %bb.2:
	ldr	w0, [x21]
Lloh3:
	adrp	x1, l_.str.1@PAGE
Lloh4:
	add	x1, x1, l_.str.1@PAGEOFF
	bl	_netdev_warn
	str	xzr, [x24, #8]
LBB0_3:
	mov	x0, x21
	bl	_smsc75xx_link_ok_nopm
	mov	x23, x0
Lloh5:
	adrp	x8, _PM_EVENT_AUTO_SUSPEND@GOTPAGE
Lloh6:
	ldr	x8, [x8, _PM_EVENT_AUTO_SUSPEND@GOTPAGEOFF]
Lloh7:
	ldr	x8, [x8]
	cmp	x8, x20
	b.ne	LBB0_7
; %bb.4:
	mov	x0, x21
	mov	x1, x23
	bl	_smsc75xx_autosuspend
LBB0_5:
	mov	x22, x0
	cbnz	w0, LBB0_70
	b	LBB0_72
LBB0_6:
	mov	x22, x0
	ldr	w0, [x21]
Lloh8:
	adrp	x1, l_.str@PAGE
Lloh9:
	add	x1, x1, l_.str@PAGEOFF
	bl	_netdev_warn
	b	LBB0_72
LBB0_7:
	ldr	w8, [x24]
Lloh10:
	adrp	x9, _SUPPORTED_WAKE@GOTPAGE
Lloh11:
	ldr	x9, [x9, _SUPPORTED_WAKE@GOTPAGEOFF]
Lloh12:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_23
; %bb.8:
Lloh13:
	adrp	x28, _WAKE_PHY@GOTPAGE
Lloh14:
	ldr	x28, [x28, _WAKE_PHY@GOTPAGEOFF]
	ldr	w9, [x28]
	and	w9, w9, w8
	cbz	w23, LBB0_10
; %bb.9:
	cbnz	w9, LBB0_11
	b	LBB0_14
LBB0_10:
	cbz	w9, LBB0_23
LBB0_11:
Lloh15:
	adrp	x8, _PHY_INT_MASK_ANEG_COMP@GOTPAGE
Lloh16:
	ldr	x8, [x8, _PHY_INT_MASK_ANEG_COMP@GOTPAGEOFF]
Lloh17:
	ldr	w8, [x8]
Lloh18:
	adrp	x9, _PHY_INT_MASK_LINK_DOWN@GOTPAGE
Lloh19:
	ldr	x9, [x9, _PHY_INT_MASK_LINK_DOWN@GOTPAGEOFF]
Lloh20:
	ldr	w9, [x9]
	orr	w1, w9, w8
	mov	x0, x21
	bl	_smsc75xx_enable_phy_wakeup_interrupts
	tbnz	w0, #31, LBB0_28
; %bb.12:
	cbz	w23, LBB0_31
; %bb.13:
	ldr	w8, [x24]
LBB0_14:
Lloh21:
	adrp	x26, _WAKE_MCAST@GOTPAGE
Lloh22:
	ldr	x26, [x26, _WAKE_MCAST@GOTPAGEOFF]
	ldr	w9, [x26]
Lloh23:
	adrp	x23, _WAKE_ARP@GOTPAGE
Lloh24:
	ldr	x23, [x23, _WAKE_ARP@GOTPAGEOFF]
	ldr	w10, [x23]
	orr	w10, w10, w9
	tst	w10, w8
	b.eq	LBB0_29
; %bb.15:
Lloh25:
	adrp	x27, _WUF_NUM@GOTPAGE
Lloh26:
	ldr	x27, [x27, _WUF_NUM@GOTPAGEOFF]
	ldr	w10, [x27]
	cmp	w10, #1
	b.lt	LBB0_20
; %bb.16:
	mov	x28, #0
	mov	x25, #0
Lloh27:
	adrp	x23, _WUF_CFGX@GOTPAGE
Lloh28:
	ldr	x23, [x23, _WUF_CFGX@GOTPAGEOFF]
LBB0_17:                                ; =>This Inner Loop Header: Depth=1
	ldr	x8, [x23]
	add	x1, x28, x8
	mov	x0, x21
	mov	w2, #0
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_33
; %bb.18:                               ;   in Loop: Header=BB0_17 Depth=1
	add	x25, x25, #1
	ldrsw	x8, [x27]
	add	x28, x28, #4
	cmp	x25, x8
	b.lt	LBB0_17
; %bb.19:
	ldr	w8, [x24]
	ldr	w9, [x26]
Lloh29:
	adrp	x28, _WAKE_PHY@GOTPAGE
Lloh30:
	ldr	x28, [x28, _WAKE_PHY@GOTPAGEOFF]
Lloh31:
	adrp	x23, _WAKE_ARP@GOTPAGE
Lloh32:
	ldr	x23, [x23, _WAKE_ARP@GOTPAGEOFF]
LBB0_20:
Lloh33:
	adrp	x26, _WUF_CFGX_EN@GOTPAGE
Lloh34:
	ldr	x26, [x26, _WUF_CFGX_EN@GOTPAGEOFF]
	tst	w9, w8
	b.eq	LBB0_34
; %bb.21:
Lloh35:
	adrp	x8, l___const.smsc75xx_suspend.mcast@PAGE
Lloh36:
	add	x8, x8, l___const.smsc75xx_suspend.mcast@PAGEOFF
	ldr	x9, [x8]
	str	x9, [sp, #24]
	ldr	w8, [x8, #8]
	str	w8, [sp, #32]
	ldr	w0, [x21]
Lloh37:
	adrp	x1, l_.str.11@PAGE
Lloh38:
	add	x1, x1, l_.str.11@PAGEOFF
	bl	_netdev_info
	ldr	w8, [x26]
Lloh39:
	adrp	x9, _WUF_CFGX_ATYPE_MULTICAST@GOTPAGE
Lloh40:
	ldr	x9, [x9, _WUF_CFGX_ATYPE_MULTICAST@GOTPAGEOFF]
Lloh41:
	ldr	w9, [x9]
	orr	w22, w9, w8
	add	x0, sp, #24
	mov	w1, #3
	bl	_smsc_crc
	orr	w2, w22, w0
	str	w2, [sp, #20]
	mov	x0, x21
	mov	w1, #0
	mov	w3, #7
	bl	_smsc75xx_write_wuff
	tbnz	w0, #31, LBB0_66
; %bb.22:
	ldr	w8, [x24]
	mov	w22, #1
	b	LBB0_35
LBB0_23:
	ldr	w0, [x21]
Lloh42:
	adrp	x1, l_.str.2@PAGE
Lloh43:
	add	x1, x1, l_.str.2@PAGEOFF
	bl	_netdev_info
Lloh44:
	adrp	x23, _WUCSR@GOTPAGE
Lloh45:
	ldr	x23, [x23, _WUCSR@GOTPAGEOFF]
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_62
; %bb.24:
Lloh46:
	adrp	x8, _WUCSR_MPEN@GOTPAGE
Lloh47:
	ldr	x8, [x8, _WUCSR_MPEN@GOTPAGEOFF]
Lloh48:
	ldr	w8, [x8]
Lloh49:
	adrp	x9, _WUCSR_WUEN@GOTPAGE
Lloh50:
	ldr	x9, [x9, _WUCSR_WUEN@GOTPAGEOFF]
Lloh51:
	ldr	w9, [x9]
	orr	w8, w9, w8
	ldr	w9, [sp, #20]
	bic	w2, w9, w8
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_63
; %bb.25:
Lloh52:
	adrp	x23, _PMT_CTL@GOTPAGE
Lloh53:
	ldr	x23, [x23, _PMT_CTL@GOTPAGEOFF]
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_65
; %bb.26:
Lloh54:
	adrp	x8, _PMT_CTL_ED_EN@GOTPAGE
Lloh55:
	ldr	x8, [x8, _PMT_CTL_ED_EN@GOTPAGEOFF]
Lloh56:
	ldr	w8, [x8]
Lloh57:
	adrp	x9, _PMT_CTL_WOL_EN@GOTPAGE
Lloh58:
	ldr	x9, [x9, _PMT_CTL_WOL_EN@GOTPAGEOFF]
Lloh59:
	ldr	w9, [x9]
	orr	w8, w9, w8
	ldr	w9, [sp, #20]
	bic	w2, w9, w8
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_67
; %bb.27:
	mov	x0, x21
	bl	_smsc75xx_enter_suspend2
	b	LBB0_5
LBB0_28:
	mov	x22, x0
	ldr	w0, [x21]
Lloh60:
	adrp	x1, l_.str.7@PAGE
Lloh61:
	add	x1, x1, l_.str.7@PAGEOFF
	b	LBB0_69
LBB0_29:
	ldr	w0, [x21]
Lloh62:
	adrp	x1, l_.str.15@PAGE
Lloh63:
	add	x1, x1, l_.str.15@PAGEOFF
	bl	_netdev_info
Lloh64:
	adrp	x23, _WUCSR@GOTPAGE
Lloh65:
	ldr	x23, [x23, _WUCSR@GOTPAGEOFF]
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_62
; %bb.30:
Lloh66:
	adrp	x8, _WUCSR_WUEN@GOTPAGE
Lloh67:
	ldr	x8, [x8, _WUCSR_WUEN@GOTPAGEOFF]
Lloh68:
	ldr	w8, [x8]
	ldr	w9, [sp, #20]
	bic	w2, w9, w8
	b	LBB0_41
LBB0_31:
	ldr	w0, [x21]
Lloh69:
	adrp	x1, l_.str.8@PAGE
Lloh70:
	add	x1, x1, l_.str.8@PAGEOFF
	bl	_netdev_info
	ldp	w0, w1, [x21]
Lloh71:
	adrp	x23, _PHY_MODE_CTRL_STS@GOTPAGE
Lloh72:
	ldr	x23, [x23, _PHY_MODE_CTRL_STS@GOTPAGEOFF]
	ldr	w2, [x23]
	bl	_smsc75xx_mdio_read_nopm
	mov	x22, x0
	tbnz	w0, #31, LBB0_68
; %bb.32:
Lloh73:
	adrp	x8, _MODE_CTRL_STS_EDPWRDOWN@GOTPAGE
Lloh74:
	ldr	x8, [x8, _MODE_CTRL_STS_EDPWRDOWN@GOTPAGEOFF]
Lloh75:
	ldr	w8, [x8]
	orr	w3, w8, w22
	ldp	w0, w1, [x21]
	ldr	w2, [x23]
	bl	_smsc75xx_mdio_write_nopm
	mov	x0, x21
	bl	_smsc75xx_enter_suspend1
	b	LBB0_5
LBB0_33:
	mov	x22, x0
	ldr	w0, [x21]
Lloh76:
	adrp	x1, l_.str.10@PAGE
Lloh77:
	add	x1, x1, l_.str.10@PAGEOFF
	b	LBB0_69
LBB0_34:
	mov	w22, #0
LBB0_35:
	ldr	w9, [x23]
	tst	w9, w8
	b.eq	LBB0_37
; %bb.36:
	mov	x8, #8
	movk	x8, #6, lsl #32
	str	x8, [sp, #24]
	ldr	w0, [x21]
Lloh78:
	adrp	x1, l_.str.13@PAGE
Lloh79:
	add	x1, x1, l_.str.13@PAGEOFF
	bl	_netdev_info
	ldr	w23, [x26]
Lloh80:
	adrp	x8, _WUF_CFGX_ATYPE_ALL@GOTPAGE
Lloh81:
	ldr	x8, [x8, _WUF_CFGX_ATYPE_ALL@GOTPAGEOFF]
Lloh82:
	ldr	w25, [x8]
	add	x0, sp, #24
	mov	w1, #2
	bl	_smsc_crc
	orr	w8, w23, w25
	orr	w8, w8, w0
	orr	w2, w8, #0xc0000
	str	w2, [sp, #20]
	mov	x0, x21
	mov	x1, x22
	mov	w3, #3
	bl	_smsc75xx_write_wuff
	tbnz	w0, #31, LBB0_66
LBB0_37:
Lloh83:
	adrp	x23, _WUCSR@GOTPAGE
Lloh84:
	ldr	x23, [x23, _WUCSR@GOTPAGEOFF]
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_62
; %bb.38:
Lloh85:
	adrp	x8, _WUCSR_WUFR@GOTPAGE
Lloh86:
	ldr	x8, [x8, _WUCSR_WUFR@GOTPAGEOFF]
Lloh87:
	ldr	w8, [x8]
	ldr	w9, [sp, #20]
	orr	w2, w9, w8
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	mov	x22, x0
	ldr	w0, [x21]
	tbnz	w22, #31, LBB0_64
; %bb.39:
Lloh88:
	adrp	x1, l_.str.14@PAGE
Lloh89:
	add	x1, x1, l_.str.14@PAGEOFF
	bl	_netdev_info
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_62
; %bb.40:
Lloh90:
	adrp	x8, _WUCSR_WUEN@GOTPAGE
Lloh91:
	ldr	x8, [x8, _WUCSR_WUEN@GOTPAGEOFF]
Lloh92:
	ldr	w8, [x8]
	ldr	w9, [sp, #20]
	orr	w2, w9, w8
LBB0_41:
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_63
; %bb.42:
Lloh93:
	adrp	x23, _WUCSR@GOTPAGE
Lloh94:
	ldr	x23, [x23, _WUCSR@GOTPAGEOFF]
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_62
; %bb.43:
	mov	x25, x28
Lloh95:
	adrp	x28, _WUCSR_MPEN@GOTPAGE
Lloh96:
	ldr	x28, [x28, _WUCSR_MPEN@GOTPAGEOFF]
	ldr	w8, [x28]
Lloh97:
	adrp	x27, _WUCSR_BCST_EN@GOTPAGE
Lloh98:
	ldr	x27, [x27, _WUCSR_BCST_EN@GOTPAGEOFF]
	ldr	w9, [x27]
	orr	w8, w9, w8
Lloh99:
	adrp	x26, _WUCSR_PFDA_EN@GOTPAGE
Lloh100:
	ldr	x26, [x26, _WUCSR_PFDA_EN@GOTPAGEOFF]
	ldr	w9, [x26]
	orr	w8, w8, w9
	ldr	w9, [sp, #20]
	bic	w2, w9, w8
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_63
; %bb.44:
	ldr	w8, [x24]
	ldr	w9, [x25]
	tst	w9, w8
	b.eq	LBB0_48
; %bb.45:
	ldr	w0, [x21]
Lloh101:
	adrp	x1, l_.str.16@PAGE
Lloh102:
	add	x1, x1, l_.str.16@PAGEOFF
	bl	_netdev_info
Lloh103:
	adrp	x25, _PMT_CTL@GOTPAGE
Lloh104:
	ldr	x25, [x25, _PMT_CTL@GOTPAGEOFF]
	ldr	x1, [x25]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_65
; %bb.46:
Lloh105:
	adrp	x8, _PMT_CTL_WUPS@GOTPAGE
Lloh106:
	ldr	x8, [x8, _PMT_CTL_WUPS@GOTPAGEOFF]
Lloh107:
	ldr	w8, [x8]
	ldr	w9, [sp, #20]
	bic	w8, w9, w8
Lloh108:
	adrp	x9, _PMT_CTL_WUPS_ED@GOTPAGE
Lloh109:
	ldr	x9, [x9, _PMT_CTL_WUPS_ED@GOTPAGEOFF]
Lloh110:
	adrp	x10, _PMT_CTL_ED_EN@GOTPAGE
Lloh111:
	ldr	x10, [x10, _PMT_CTL_ED_EN@GOTPAGEOFF]
Lloh112:
	ldr	w9, [x9]
Lloh113:
	ldr	w10, [x10]
	orr	w8, w9, w8
	orr	w2, w8, w10
	str	w2, [sp, #20]
	ldr	x1, [x25]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_67
; %bb.47:
	ldr	w8, [x24]
LBB0_48:
Lloh114:
	adrp	x9, _WAKE_MAGIC@GOTPAGE
Lloh115:
	ldr	x9, [x9, _WAKE_MAGIC@GOTPAGEOFF]
Lloh116:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_52
; %bb.49:
	ldr	w0, [x21]
Lloh117:
	adrp	x1, l_.str.17@PAGE
Lloh118:
	add	x1, x1, l_.str.17@PAGEOFF
	bl	_netdev_info
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_62
; %bb.50:
Lloh119:
	adrp	x8, _WUCSR_MPR@GOTPAGE
Lloh120:
	ldr	x8, [x8, _WUCSR_MPR@GOTPAGEOFF]
Lloh121:
	ldr	w8, [x8]
	ldr	w9, [x28]
	orr	w8, w9, w8
	ldr	w9, [sp, #20]
	orr	w2, w8, w9
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_63
; %bb.51:
	ldr	w8, [x24]
LBB0_52:
Lloh122:
	adrp	x9, _WAKE_BCAST@GOTPAGE
Lloh123:
	ldr	x9, [x9, _WAKE_BCAST@GOTPAGEOFF]
Lloh124:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_56
; %bb.53:
	ldr	w0, [x21]
Lloh125:
	adrp	x1, l_.str.18@PAGE
Lloh126:
	add	x1, x1, l_.str.18@PAGEOFF
	bl	_netdev_info
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_62
; %bb.54:
Lloh127:
	adrp	x8, _WUCSR_BCAST_FR@GOTPAGE
Lloh128:
	ldr	x8, [x8, _WUCSR_BCAST_FR@GOTPAGEOFF]
Lloh129:
	ldr	w8, [x8]
	ldr	w9, [x27]
	orr	w8, w9, w8
	ldr	w9, [sp, #20]
	orr	w2, w8, w9
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_63
; %bb.55:
	ldr	w8, [x24]
LBB0_56:
Lloh130:
	adrp	x9, _WAKE_UCAST@GOTPAGE
Lloh131:
	ldr	x9, [x9, _WAKE_UCAST@GOTPAGEOFF]
Lloh132:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_59
; %bb.57:
	ldr	w0, [x21]
Lloh133:
	adrp	x1, l_.str.19@PAGE
Lloh134:
	add	x1, x1, l_.str.19@PAGEOFF
	bl	_netdev_info
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_62
; %bb.58:
Lloh135:
	adrp	x8, _WUCSR_WUFR@GOTPAGE
Lloh136:
	ldr	x8, [x8, _WUCSR_WUFR@GOTPAGEOFF]
Lloh137:
	ldr	w8, [x8]
	ldr	w9, [x26]
	orr	w8, w9, w8
	ldr	w9, [sp, #20]
	orr	w2, w8, w9
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	tbnz	w0, #31, LBB0_63
LBB0_59:
Lloh138:
	adrp	x23, _MAC_RX@GOTPAGE
Lloh139:
	ldr	x23, [x23, _MAC_RX@GOTPAGEOFF]
	ldr	x1, [x23]
	add	x2, sp, #20
	mov	x0, x21
	bl	_smsc75xx_read_reg_nopm
	tbnz	w0, #31, LBB0_74
; %bb.60:
Lloh140:
	adrp	x8, _MAC_RX_RXEN@GOTPAGE
Lloh141:
	ldr	x8, [x8, _MAC_RX_RXEN@GOTPAGEOFF]
Lloh142:
	ldr	w8, [x8]
	ldr	w9, [sp, #20]
	orr	w2, w9, w8
	str	w2, [sp, #20]
	ldr	x1, [x23]
	mov	x0, x21
	bl	_smsc75xx_write_reg_nopm
	mov	x22, x0
	ldr	w0, [x21]
	tbnz	w22, #31, LBB0_75
; %bb.61:
Lloh143:
	adrp	x1, l_.str.22@PAGE
Lloh144:
	add	x1, x1, l_.str.22@PAGEOFF
	bl	_netdev_info
	mov	x0, x21
	bl	_smsc75xx_enter_suspend0
	b	LBB0_5
LBB0_62:
	mov	x22, x0
	ldr	w0, [x21]
Lloh145:
	adrp	x1, l_.str.3@PAGE
Lloh146:
	add	x1, x1, l_.str.3@PAGEOFF
	b	LBB0_69
LBB0_63:
	mov	x22, x0
	ldr	w0, [x21]
LBB0_64:
Lloh147:
	adrp	x1, l_.str.4@PAGE
Lloh148:
	add	x1, x1, l_.str.4@PAGEOFF
	b	LBB0_69
LBB0_65:
	mov	x22, x0
	ldr	w0, [x21]
Lloh149:
	adrp	x1, l_.str.5@PAGE
Lloh150:
	add	x1, x1, l_.str.5@PAGEOFF
	b	LBB0_69
LBB0_66:
	mov	x22, x0
	ldr	w0, [x21]
Lloh151:
	adrp	x1, l_.str.12@PAGE
Lloh152:
	add	x1, x1, l_.str.12@PAGEOFF
	b	LBB0_69
LBB0_67:
	mov	x22, x0
	ldr	w0, [x21]
Lloh153:
	adrp	x1, l_.str.6@PAGE
Lloh154:
	add	x1, x1, l_.str.6@PAGEOFF
	b	LBB0_69
LBB0_68:
	ldr	w0, [x21]
Lloh155:
	adrp	x1, l_.str.9@PAGE
Lloh156:
	add	x1, x1, l_.str.9@PAGEOFF
LBB0_69:
	bl	_netdev_warn
LBB0_70:
	mov	x0, x20
	bl	_PMSG_IS_AUTO
	cbz	x0, LBB0_72
; %bb.71:
	mov	x0, x19
	bl	_usbnet_resume
LBB0_72:
	ldr	x8, [sp, #40]
Lloh157:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh158:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh159:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_76
; %bb.73:
	mov	x0, x22
	ldp	x29, x30, [sp, #128]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #112]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #96]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #80]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #64]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #48]             ; 16-byte Folded Reload
	add	sp, sp, #144
	ret
LBB0_74:
	mov	x22, x0
	ldr	w0, [x21]
	str	x22, [sp]
Lloh160:
	adrp	x1, l_.str.20@PAGE
Lloh161:
	add	x1, x1, l_.str.20@PAGEOFF
	b	LBB0_69
LBB0_75:
	str	x22, [sp]
Lloh162:
	adrp	x1, l_.str.21@PAGE
Lloh163:
	add	x1, x1, l_.str.21@PAGEOFF
	bl	_netdev_warn
                                        ; kill: def $w22 killed $w22 killed $x22 def $x22
	b	LBB0_70
LBB0_76:
	bl	___stack_chk_fail
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpAdd	Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGot	Lloh23, Lloh24
	.loh AdrpLdrGot	Lloh21, Lloh22
	.loh AdrpLdrGot	Lloh25, Lloh26
	.loh AdrpLdrGot	Lloh27, Lloh28
	.loh AdrpLdrGot	Lloh31, Lloh32
	.loh AdrpLdrGot	Lloh29, Lloh30
	.loh AdrpLdrGot	Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh39, Lloh40, Lloh41
	.loh AdrpAdd	Lloh37, Lloh38
	.loh AdrpAdd	Lloh35, Lloh36
	.loh AdrpLdrGot	Lloh44, Lloh45
	.loh AdrpAdd	Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh49, Lloh50, Lloh51
	.loh AdrpLdrGotLdr	Lloh46, Lloh47, Lloh48
	.loh AdrpLdrGot	Lloh52, Lloh53
	.loh AdrpLdrGotLdr	Lloh57, Lloh58, Lloh59
	.loh AdrpLdrGotLdr	Lloh54, Lloh55, Lloh56
	.loh AdrpAdd	Lloh60, Lloh61
	.loh AdrpLdrGot	Lloh64, Lloh65
	.loh AdrpAdd	Lloh62, Lloh63
	.loh AdrpLdrGotLdr	Lloh66, Lloh67, Lloh68
	.loh AdrpLdrGot	Lloh71, Lloh72
	.loh AdrpAdd	Lloh69, Lloh70
	.loh AdrpLdrGotLdr	Lloh73, Lloh74, Lloh75
	.loh AdrpAdd	Lloh76, Lloh77
	.loh AdrpLdrGotLdr	Lloh80, Lloh81, Lloh82
	.loh AdrpAdd	Lloh78, Lloh79
	.loh AdrpLdrGot	Lloh83, Lloh84
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpAdd	Lloh88, Lloh89
	.loh AdrpLdrGotLdr	Lloh90, Lloh91, Lloh92
	.loh AdrpLdrGot	Lloh93, Lloh94
	.loh AdrpLdrGot	Lloh99, Lloh100
	.loh AdrpLdrGot	Lloh97, Lloh98
	.loh AdrpLdrGot	Lloh95, Lloh96
	.loh AdrpLdrGot	Lloh103, Lloh104
	.loh AdrpAdd	Lloh101, Lloh102
	.loh AdrpLdrGotLdr	Lloh110, Lloh111, Lloh113
	.loh AdrpLdrGotLdr	Lloh108, Lloh109, Lloh112
	.loh AdrpLdrGotLdr	Lloh105, Lloh106, Lloh107
	.loh AdrpLdrGotLdr	Lloh114, Lloh115, Lloh116
	.loh AdrpAdd	Lloh117, Lloh118
	.loh AdrpLdrGotLdr	Lloh119, Lloh120, Lloh121
	.loh AdrpLdrGotLdr	Lloh122, Lloh123, Lloh124
	.loh AdrpAdd	Lloh125, Lloh126
	.loh AdrpLdrGotLdr	Lloh127, Lloh128, Lloh129
	.loh AdrpLdrGotLdr	Lloh130, Lloh131, Lloh132
	.loh AdrpAdd	Lloh133, Lloh134
	.loh AdrpLdrGotLdr	Lloh135, Lloh136, Lloh137
	.loh AdrpLdrGot	Lloh138, Lloh139
	.loh AdrpLdrGotLdr	Lloh140, Lloh141, Lloh142
	.loh AdrpAdd	Lloh143, Lloh144
	.loh AdrpAdd	Lloh145, Lloh146
	.loh AdrpAdd	Lloh147, Lloh148
	.loh AdrpAdd	Lloh149, Lloh150
	.loh AdrpAdd	Lloh151, Lloh152
	.loh AdrpAdd	Lloh153, Lloh154
	.loh AdrpAdd	Lloh155, Lloh156
	.loh AdrpLdrGotLdr	Lloh157, Lloh158, Lloh159
	.loh AdrpAdd	Lloh160, Lloh161
	.loh AdrpAdd	Lloh162, Lloh163
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"usbnet_suspend error\n"

l_.str.1:                               ; @.str.1
	.asciz	"error during last resume\n"

	.comm	_PM_EVENT_AUTO_SUSPEND,8,3      ; @PM_EVENT_AUTO_SUSPEND
	.comm	_SUPPORTED_WAKE,4,2             ; @SUPPORTED_WAKE
	.comm	_WAKE_PHY,4,2                   ; @WAKE_PHY
l_.str.2:                               ; @.str.2
	.asciz	"entering SUSPEND2 mode\n"

	.comm	_WUCSR,8,3                      ; @WUCSR
l_.str.3:                               ; @.str.3
	.asciz	"Error reading WUCSR\n"

	.comm	_WUCSR_MPEN,4,2                 ; @WUCSR_MPEN
	.comm	_WUCSR_WUEN,4,2                 ; @WUCSR_WUEN
l_.str.4:                               ; @.str.4
	.asciz	"Error writing WUCSR\n"

	.comm	_PMT_CTL,8,3                    ; @PMT_CTL
l_.str.5:                               ; @.str.5
	.asciz	"Error reading PMT_CTL\n"

	.comm	_PMT_CTL_ED_EN,4,2              ; @PMT_CTL_ED_EN
	.comm	_PMT_CTL_WOL_EN,4,2             ; @PMT_CTL_WOL_EN
l_.str.6:                               ; @.str.6
	.asciz	"Error writing PMT_CTL\n"

	.comm	_PHY_INT_MASK_ANEG_COMP,4,2     ; @PHY_INT_MASK_ANEG_COMP
	.comm	_PHY_INT_MASK_LINK_DOWN,4,2     ; @PHY_INT_MASK_LINK_DOWN
l_.str.7:                               ; @.str.7
	.asciz	"error enabling PHY wakeup ints\n"

l_.str.8:                               ; @.str.8
	.asciz	"entering SUSPEND1 mode\n"

	.comm	_PHY_MODE_CTRL_STS,4,2          ; @PHY_MODE_CTRL_STS
l_.str.9:                               ; @.str.9
	.asciz	"Error reading PHY_MODE_CTRL_STS\n"

	.comm	_MODE_CTRL_STS_EDPWRDOWN,4,2    ; @MODE_CTRL_STS_EDPWRDOWN
	.comm	_WAKE_MCAST,4,2                 ; @WAKE_MCAST
	.comm	_WAKE_ARP,4,2                   ; @WAKE_ARP
	.comm	_WUF_NUM,4,2                    ; @WUF_NUM
	.comm	_WUF_CFGX,8,3                   ; @WUF_CFGX
l_.str.10:                              ; @.str.10
	.asciz	"Error writing WUF_CFGX\n"

	.section	__TEXT,__const
	.p2align	2                               ; @__const.smsc75xx_suspend.mcast
l___const.smsc75xx_suspend.mcast:
	.long	1                               ; 0x1
	.long	0                               ; 0x0
	.long	94                              ; 0x5e

	.section	__TEXT,__cstring,cstring_literals
l_.str.11:                              ; @.str.11
	.asciz	"enabling multicast detection\n"

	.comm	_WUF_CFGX_EN,4,2                ; @WUF_CFGX_EN
	.comm	_WUF_CFGX_ATYPE_MULTICAST,4,2   ; @WUF_CFGX_ATYPE_MULTICAST
l_.str.12:                              ; @.str.12
	.asciz	"Error writing wakeup filter\n"

l_.str.13:                              ; @.str.13
	.asciz	"enabling ARP detection\n"

	.comm	_WUF_CFGX_ATYPE_ALL,4,2         ; @WUF_CFGX_ATYPE_ALL
	.comm	_WUCSR_WUFR,4,2                 ; @WUCSR_WUFR
l_.str.14:                              ; @.str.14
	.asciz	"enabling packet match detection\n"

l_.str.15:                              ; @.str.15
	.asciz	"disabling packet match detection\n"

	.comm	_WUCSR_BCST_EN,4,2              ; @WUCSR_BCST_EN
	.comm	_WUCSR_PFDA_EN,4,2              ; @WUCSR_PFDA_EN
l_.str.16:                              ; @.str.16
	.asciz	"enabling PHY wakeup\n"

	.comm	_PMT_CTL_WUPS,4,2               ; @PMT_CTL_WUPS
	.comm	_PMT_CTL_WUPS_ED,4,2            ; @PMT_CTL_WUPS_ED
	.comm	_WAKE_MAGIC,4,2                 ; @WAKE_MAGIC
l_.str.17:                              ; @.str.17
	.asciz	"enabling magic packet wakeup\n"

	.comm	_WUCSR_MPR,4,2                  ; @WUCSR_MPR
	.comm	_WAKE_BCAST,4,2                 ; @WAKE_BCAST
l_.str.18:                              ; @.str.18
	.asciz	"enabling broadcast detection\n"

	.comm	_WUCSR_BCAST_FR,4,2             ; @WUCSR_BCAST_FR
	.comm	_WAKE_UCAST,4,2                 ; @WAKE_UCAST
l_.str.19:                              ; @.str.19
	.asciz	"enabling unicast detection\n"

	.comm	_MAC_RX,8,3                     ; @MAC_RX
l_.str.20:                              ; @.str.20
	.asciz	"Failed to read MAC_RX: %d\n"

	.comm	_MAC_RX_RXEN,4,2                ; @MAC_RX_RXEN
l_.str.21:                              ; @.str.21
	.asciz	"Failed to write MAC_RX: %d\n"

l_.str.22:                              ; @.str.22
	.asciz	"entering SUSPEND0 mode\n"

	.no_dead_strip	_smsc75xx_suspend
.subsections_via_symbols
