	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function efx_ef10_tx_init
_efx_ef10_tx_init:                      ## @efx_ef10_tx_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	%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	%rdi, %r12
	movq	_inbuf@GOTPCREL(%rip), %rax
	movl	(%rax), %r14d
	movq	_EFX_MAX_DMAQ_SIZE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	shll	$3, %eax
	movq	_EFX_BUF_SIZE@GOTPCREL(%rip), %rbx
	cltd
	idivl	(%rbx)
	movslq	%eax, %rdi
	callq	_MC_CMD_INIT_TXQ_IN_LEN
	movl	%r14d, %edi
	movq	%rax, %rsi
	callq	_MCDI_DECLARE_BUF
	movq	_EFX_TXQ_TYPE_OFFLOAD@GOTPCREL(%rip), %rax
	movl	(%rax), %r14d
	andl	(%r12), %r14d
	movl	40(%r12), %eax
	cltd
	idivl	(%rbx)
	movl	%eax, %r15d
	movq	64(%r12), %rax
	movq	%rax, -48(%rbp)                 ## 8-byte Spill
	movq	56(%r12), %r13
	movq	16(%r13), %rbx
	movq	_MC_CMD_INIT_TXQ_OUT_LEN@GOTPCREL(%rip), %rax
	xorl	%edi, %edi
	cmpq	$0, (%rax)
	setne	%dil
	callq	_BUILD_BUG_ON
	movq	%rbx, -64(%rbp)                 ## 8-byte Spill
	movl	(%rbx), %eax
	movq	%r13, %rbx
	movq	_LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	btl	%ecx, %eax
	jb	LBB0_3
## %bb.1:
	movl	$0, 4(%r12)
	movq	8(%rbx), %rax
	movq	(%rax), %rax
	testq	%rax, %rax
	je	LBB0_3
## %bb.2:
	movq	%rbx, %rdi
	xorl	%esi, %esi
	xorl	%edx, %edx
	callq	*%rax
LBB0_3:
	movslq	%r15d, %rax
	movq	%rax, -56(%rbp)                 ## 8-byte Spill
	xorl	%edx, %edx
	testl	%r14d, %r14d
	movq	%rbx, -72(%rbp)                 ## 8-byte Spill
	movq	%r14, -88(%rbp)                 ## 8-byte Spill
	je	LBB0_4
## %bb.5:
	movq	-64(%rbp), %rax                 ## 8-byte Reload
	movl	4(%rax), %eax
	movq	_MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	btl	%ecx, %eax
	jae	LBB0_4
## %bb.6:
	cmpl	$0, 4(%r12)
	movq	_inbuf@GOTPCREL(%rip), %r13
	movq	-48(%rbp), %r14                 ## 8-byte Reload
	jne	LBB0_8
## %bb.7:
	movq	_hw@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	-72(%rbp), %rdi                 ## 8-byte Reload
	movl	(%rdi), %edx
	movl	(%r14), %r8d
	leaq	L_.str(%rip), %rcx
	xorl	%eax, %eax
	callq	_netif_dbg
	movl	$1, %edx
	jmp	LBB0_8
LBB0_4:
	movq	_inbuf@GOTPCREL(%rip), %r13
	movq	-48(%rbp), %r14                 ## 8-byte Reload
LBB0_8:
	movl	%edx, -76(%rbp)                 ## 4-byte Spill
	movl	(%r13), %edi
	movq	_INIT_TXQ_IN_SIZE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	8(%r12), %edx
	incl	%edx
	callq	_MCDI_SET_DWORD
	movl	(%r13), %edi
	movq	_INIT_TXQ_IN_TARGET_EVQ@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	(%r14), %edx
	callq	_MCDI_SET_DWORD
	movl	(%r13), %edi
	movq	_INIT_TXQ_IN_LABEL@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	(%r12), %edx
	callq	_MCDI_SET_DWORD
	movl	(%r13), %edi
	movq	_INIT_TXQ_IN_INSTANCE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	(%r12), %edx
	callq	_MCDI_SET_DWORD
	movl	(%r13), %edi
	movq	_INIT_TXQ_IN_OWNER_ID@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	xorl	%edx, %edx
	callq	_MCDI_SET_DWORD
	movl	(%r13), %edi
	movq	_INIT_TXQ_IN_PORT_ID@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	-64(%rbp), %rax                 ## 8-byte Reload
	movl	8(%rax), %edx
	callq	_MCDI_SET_DWORD
	movq	48(%r12), %r14
	movq	_hw@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	-72(%rbp), %rdi                 ## 8-byte Reload
	movl	(%rdi), %edx
	movq	%r12, -48(%rbp)                 ## 8-byte Spill
	movl	(%r12), %r8d
	subq	$8, %rsp
	leaq	L_.str.1(%rip), %rcx
	movq	-56(%rbp), %rbx                 ## 8-byte Reload
	movq	%rbx, %r9
	xorl	%eax, %eax
	pushq	%r14
	callq	_netif_dbg
	addq	$16, %rsp
	testl	%ebx, %ebx
	movq	_EFX_BUF_SIZE@GOTPCREL(%rip), %rcx
	je	LBB0_11
## %bb.9:
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	cmpq	$2, %rax
	movl	$1, %r12d
	cmovaeq	%rax, %r12
	xorl	%ebx, %ebx
	.p2align	4, 0x90
LBB0_10:                                ## =>This Inner Loop Header: Depth=1
	movl	(%r13), %edi
	movq	_INIT_TXQ_IN_DMA_ADDR@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	%ebx, %edx
	movq	%rcx, %r15
	movq	%r14, %rcx
	callq	_MCDI_SET_ARRAY_QWORD
	movq	%r15, %rcx
	movslq	(%r15), %rax
	addq	%rax, %r14
	incq	%rbx
	cmpq	%rbx, %r12
	jne	LBB0_10
LBB0_11:
	xorl	%r15d, %r15d
	cmpl	$0, -88(%rbp)                   ## 4-byte Folded Reload
	sete	%r15b
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	callq	_MC_CMD_INIT_TXQ_IN_LEN
	movq	%rax, -56(%rbp)                 ## 8-byte Spill
	movq	-72(%rbp), %r12                 ## 8-byte Reload
	movl	-76(%rbp), %r13d                ## 4-byte Reload
	.p2align	4, 0x90
LBB0_12:                                ## =>This Inner Loop Header: Depth=1
	movq	_inbuf@GOTPCREL(%rip), %r14
	movl	(%r14), %edi
	movq	_INIT_TXQ_IN_FLAGS@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_INIT_TXQ_IN_FLAG_IP_CSUM_DIS@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS@GOTPCREL(%rip), %rax
	movl	(%rax), %r10d
	movq	_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movq	-48(%rbp), %rax                 ## 8-byte Reload
	movl	4(%rax), %eax
	movl	%r13d, %ecx
	movl	%r15d, %r9d
	pushq	%rax
	pushq	%rbx
	pushq	%r15
	pushq	%r10
	callq	_MCDI_POPULATE_DWORD_4
	addq	$32, %rsp
	movq	_MC_CMD_INIT_TXQ@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	(%r14), %edx
	subq	$8, %rsp
	movq	%r12, %rdi
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	pushq	$0
	callq	_efx_mcdi_rpc_quiet
	addq	$16, %rsp
	movl	%eax, %r14d
	testl	%r13d, %r13d
	je	LBB0_14
## %bb.13:                              ##   in Loop: Header=BB0_12 Depth=1
	xorl	%eax, %eax
	movq	_ENOSPC@GOTPCREL(%rip), %rcx
	subl	(%rcx), %eax
	cmpl	%eax, %r14d
	jne	LBB0_14
## %bb.16:                              ##   in Loop: Header=BB0_12 Depth=1
	movq	_probe@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	(%r12), %edx
	movq	%r12, %rdi
	leaq	L_.str.2(%rip), %rcx
	callq	_netif_warn
	xorl	%r13d, %r13d
	testl	%r14d, %r14d
	jne	LBB0_12
	jmp	LBB0_17
LBB0_14:
	testl	%r14d, %r14d
	je	LBB0_17
## %bb.15:
	movq	_MC_CMD_INIT_TXQ@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_MC_CMD_INIT_TXQ_EXT_IN_LEN@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	%r12, %rdi
	xorl	%ecx, %ecx
	xorl	%r8d, %r8d
	movl	%r14d, %r9d
	callq	_efx_mcdi_display_error
	movl	(%r12), %edi
	movq	-48(%rbp), %rax                 ## 8-byte Reload
	movl	(%rax), %edx
	leaq	L_.str.3(%rip), %rsi
	addq	$56, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_netdev_WARN                    ## TAILCALL
LBB0_17:
	movq	_EFX_TX_BUF_OPTION@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	-48(%rbp), %rbx                 ## 8-byte Reload
	movq	32(%rbx), %rcx
	movl	%eax, (%rcx)
	movl	$1, 12(%rbx)
	movq	%rbx, %rdi
	xorl	%esi, %esi
	callq	_efx_tx_desc
	movq	%rax, %r14
	movl	(%rax), %edi
	movq	_ESF_DZ_TX_DESC_IS_OPT@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_ESF_DZ_TX_OPTION_TYPE@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	_ESE_DZ_TX_OPTION_DESC_CRC_CSUM@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	_ESF_DZ_TX_OPTION_UDP_TCP_CSUM@GOTPCREL(%rip), %rax
	movl	(%rax), %r9d
	movq	_ESF_DZ_TX_OPTION_IP_CSUM@GOTPCREL(%rip), %rax
	movl	(%rax), %r10d
	movq	_ESF_DZ_TX_TIMESTAMP@GOTPCREL(%rip), %rdx
	movl	(%rdx), %r11d
	movl	4(%rbx), %eax
	subq	$8, %rsp
	movl	$1, %r15d
	movl	$1, %edx
	pushq	%rax
	pushq	%r11
	movq	-88(%rbp), %rax                 ## 8-byte Reload
	pushq	%rax
	pushq	%r10
	pushq	%rax
	callq	_EFX_POPULATE_QWORD_5
	addq	$48, %rsp
	movl	$1, 16(%rbx)
	testl	%r13d, %r13d
	je	LBB0_19
## %bb.18:
	movq	_efx_ef10_tx_tso_desc@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 24(%rbx)
	movl	$2, %r15d
	jmp	LBB0_20
LBB0_19:
	movq	-64(%rbp), %rax                 ## 8-byte Reload
	movl	12(%rax), %eax
	movq	_MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	btl	%ecx, %eax
	jae	LBB0_21
LBB0_20:
	movl	%r15d, 20(%rbx)
LBB0_21:
	xorl	%eax, %eax
	callq	_wmb
	movq	%rbx, %rdi
	movq	%r14, %rsi
	addq	$56, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_efx_ef10_push_tx_desc          ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_inbuf,4,2                      ## @inbuf
	.comm	_EFX_MAX_DMAQ_SIZE,4,2          ## @EFX_MAX_DMAQ_SIZE
	.comm	_EFX_BUF_SIZE,4,2               ## @EFX_BUF_SIZE
	.comm	_EFX_TXQ_TYPE_OFFLOAD,4,2       ## @EFX_TXQ_TYPE_OFFLOAD
	.comm	_MC_CMD_INIT_TXQ_OUT_LEN,8,3    ## @MC_CMD_INIT_TXQ_OUT_LEN
	.comm	_LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN,4,2 ## @LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN
	.comm	_MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN,4,2 ## @MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN
	.comm	_hw,4,2                         ## @hw
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Using TSOv2 for channel %u\n"

	.comm	_INIT_TXQ_IN_SIZE,4,2           ## @INIT_TXQ_IN_SIZE
	.comm	_INIT_TXQ_IN_TARGET_EVQ,4,2     ## @INIT_TXQ_IN_TARGET_EVQ
	.comm	_INIT_TXQ_IN_LABEL,4,2          ## @INIT_TXQ_IN_LABEL
	.comm	_INIT_TXQ_IN_INSTANCE,4,2       ## @INIT_TXQ_IN_INSTANCE
	.comm	_INIT_TXQ_IN_OWNER_ID,4,2       ## @INIT_TXQ_IN_OWNER_ID
	.comm	_INIT_TXQ_IN_PORT_ID,4,2        ## @INIT_TXQ_IN_PORT_ID
L_.str.1:                               ## @.str.1
	.asciz	"pushing TXQ %d. %zu entries (%llx)\n"

	.comm	_INIT_TXQ_IN_DMA_ADDR,4,2       ## @INIT_TXQ_IN_DMA_ADDR
	.comm	_INIT_TXQ_IN_FLAGS,4,2          ## @INIT_TXQ_IN_FLAGS
	.comm	_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN,4,2 ## @INIT_TXQ_EXT_IN_FLAG_TSOV2_EN
	.comm	_INIT_TXQ_IN_FLAG_IP_CSUM_DIS,4,2 ## @INIT_TXQ_IN_FLAG_IP_CSUM_DIS
	.comm	_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS,4,2 ## @INIT_TXQ_IN_FLAG_TCP_CSUM_DIS
	.comm	_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP,4,2 ## @INIT_TXQ_EXT_IN_FLAG_TIMESTAMP
	.comm	_MC_CMD_INIT_TXQ,4,2            ## @MC_CMD_INIT_TXQ
	.comm	_ENOSPC,4,2                     ## @ENOSPC
	.comm	_probe,4,2                      ## @probe
L_.str.2:                               ## @.str.2
	.asciz	"TSOv2 context not available to segment in hardware. TCP performance may be reduced.\n"

	.comm	_MC_CMD_INIT_TXQ_EXT_IN_LEN,4,2 ## @MC_CMD_INIT_TXQ_EXT_IN_LEN
	.comm	_EFX_TX_BUF_OPTION,4,2          ## @EFX_TX_BUF_OPTION
	.comm	_ESF_DZ_TX_DESC_IS_OPT,4,2      ## @ESF_DZ_TX_DESC_IS_OPT
	.comm	_ESF_DZ_TX_OPTION_TYPE,4,2      ## @ESF_DZ_TX_OPTION_TYPE
	.comm	_ESE_DZ_TX_OPTION_DESC_CRC_CSUM,4,2 ## @ESE_DZ_TX_OPTION_DESC_CRC_CSUM
	.comm	_ESF_DZ_TX_OPTION_UDP_TCP_CSUM,4,2 ## @ESF_DZ_TX_OPTION_UDP_TCP_CSUM
	.comm	_ESF_DZ_TX_OPTION_IP_CSUM,4,2   ## @ESF_DZ_TX_OPTION_IP_CSUM
	.comm	_ESF_DZ_TX_TIMESTAMP,4,2        ## @ESF_DZ_TX_TIMESTAMP
	.comm	_efx_ef10_tx_tso_desc,4,2       ## @efx_ef10_tx_tso_desc
	.comm	_MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN,4,2 ## @MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN
L_.str.3:                               ## @.str.3
	.asciz	"failed to initialise TXQ %d\n"

	.no_dead_strip	_efx_ef10_tx_init
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function efx_ef10_tx_init
_efx_ef10_tx_init:                      ; @efx_ef10_tx_init
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #128
	.cfi_def_cfa_offset 128
	stp	x28, x27, [sp, #32]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #48]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #64]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #80]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #96]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #112]            ; 16-byte Folded Spill
	add	x29, sp, #112
	.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	x23, x0
Lloh0:
	adrp	x27, _inbuf@GOTPAGE
Lloh1:
	ldr	x27, [x27, _inbuf@GOTPAGEOFF]
	ldr	w20, [x27]
Lloh2:
	adrp	x8, _EFX_MAX_DMAQ_SIZE@GOTPAGE
Lloh3:
	ldr	x8, [x8, _EFX_MAX_DMAQ_SIZE@GOTPAGEOFF]
Lloh4:
	ldr	w8, [x8]
	lsl	w8, w8, #3
Lloh5:
	adrp	x26, _EFX_BUF_SIZE@GOTPAGE
Lloh6:
	ldr	x26, [x26, _EFX_BUF_SIZE@GOTPAGEOFF]
	ldr	w9, [x26]
	sdiv	w8, w8, w9
	sxtw	x0, w8
	bl	_MC_CMD_INIT_TXQ_IN_LEN
	mov	x1, x0
	mov	x0, x20
	bl	_MCDI_DECLARE_BUF
	ldr	w8, [x23]
Lloh7:
	adrp	x9, _EFX_TXQ_TYPE_OFFLOAD@GOTPAGE
Lloh8:
	ldr	x9, [x9, _EFX_TXQ_TYPE_OFFLOAD@GOTPAGEOFF]
Lloh9:
	ldr	w9, [x9]
	and	w19, w9, w8
	ldr	w8, [x23, #40]
	ldr	w9, [x26]
	sdiv	w8, w8, w9
	sxtw	x22, w8
	ldp	x21, x24, [x23, #56]
	ldr	x20, [x21, #16]
Lloh10:
	adrp	x8, _MC_CMD_INIT_TXQ_OUT_LEN@GOTPAGE
Lloh11:
	ldr	x8, [x8, _MC_CMD_INIT_TXQ_OUT_LEN@GOTPAGEOFF]
Lloh12:
	ldr	x8, [x8]
	cmp	x8, #0
	cset	w0, ne
	bl	_BUILD_BUG_ON
	ldr	w8, [x20]
Lloh13:
	adrp	x9, _LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN@GOTPAGE
Lloh14:
	ldr	x9, [x9, _LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN@GOTPAGEOFF]
Lloh15:
	ldr	w9, [x9]
	lsr	w8, w8, w9
	tbnz	w8, #0, LBB0_3
; %bb.1:
	str	wzr, [x23, #4]
	ldr	x8, [x21, #8]
	ldr	x8, [x8]
	cbz	x8, LBB0_3
; %bb.2:
	mov	x0, x21
	mov	w1, #0
	mov	w2, #0
	blr	x8
LBB0_3:
Lloh16:
	adrp	x25, _hw@GOTPAGE
Lloh17:
	ldr	x25, [x25, _hw@GOTPAGEOFF]
	str	w19, [sp, #28]                  ; 4-byte Folded Spill
	cbz	w19, LBB0_8
; %bb.4:
	ldr	w8, [x20, #4]
Lloh18:
	adrp	x9, _MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN@GOTPAGE
Lloh19:
	ldr	x9, [x9, _MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN@GOTPAGEOFF]
Lloh20:
	ldr	w9, [x9]
	lsr	w8, w8, w9
	tbz	w8, #0, LBB0_6
; %bb.5:
	ldr	w8, [x23, #4]
	cbz	w8, LBB0_7
LBB0_6:
	mov	w19, #0
	b	LBB0_8
LBB0_7:
	ldr	w1, [x25]
	ldr	w2, [x21]
	ldr	w4, [x24]
Lloh21:
	adrp	x3, l_.str@PAGE
Lloh22:
	add	x3, x3, l_.str@PAGEOFF
	mov	x0, x21
	bl	_netif_dbg
	mov	w19, #1
LBB0_8:
	ldr	w0, [x27]
Lloh23:
	adrp	x8, _INIT_TXQ_IN_SIZE@GOTPAGE
Lloh24:
	ldr	x8, [x8, _INIT_TXQ_IN_SIZE@GOTPAGEOFF]
Lloh25:
	ldr	w1, [x8]
	ldr	w8, [x23, #8]
	add	w2, w8, #1
	bl	_MCDI_SET_DWORD
	ldr	w0, [x27]
Lloh26:
	adrp	x8, _INIT_TXQ_IN_TARGET_EVQ@GOTPAGE
Lloh27:
	ldr	x8, [x8, _INIT_TXQ_IN_TARGET_EVQ@GOTPAGEOFF]
Lloh28:
	ldr	w1, [x8]
	ldr	w2, [x24]
	bl	_MCDI_SET_DWORD
	ldr	w0, [x27]
Lloh29:
	adrp	x8, _INIT_TXQ_IN_LABEL@GOTPAGE
Lloh30:
	ldr	x8, [x8, _INIT_TXQ_IN_LABEL@GOTPAGEOFF]
Lloh31:
	ldr	w1, [x8]
	ldr	w2, [x23]
	bl	_MCDI_SET_DWORD
	ldr	w0, [x27]
Lloh32:
	adrp	x8, _INIT_TXQ_IN_INSTANCE@GOTPAGE
Lloh33:
	ldr	x8, [x8, _INIT_TXQ_IN_INSTANCE@GOTPAGEOFF]
Lloh34:
	ldr	w1, [x8]
	ldr	w2, [x23]
	bl	_MCDI_SET_DWORD
	ldr	w0, [x27]
Lloh35:
	adrp	x8, _INIT_TXQ_IN_OWNER_ID@GOTPAGE
Lloh36:
	ldr	x8, [x8, _INIT_TXQ_IN_OWNER_ID@GOTPAGEOFF]
Lloh37:
	ldr	w1, [x8]
	mov	w2, #0
	bl	_MCDI_SET_DWORD
	ldr	w0, [x27]
Lloh38:
	adrp	x8, _INIT_TXQ_IN_PORT_ID@GOTPAGE
Lloh39:
	ldr	x8, [x8, _INIT_TXQ_IN_PORT_ID@GOTPAGEOFF]
Lloh40:
	ldr	w1, [x8]
	str	x20, [sp, #16]                  ; 8-byte Folded Spill
	ldr	w2, [x20, #8]
	bl	_MCDI_SET_DWORD
	ldr	x24, [x23, #48]
	ldr	w1, [x25]
	ldr	w2, [x21]
	mov	x28, x23
	ldr	w4, [x23]
Lloh41:
	adrp	x3, l_.str.1@PAGE
Lloh42:
	add	x3, x3, l_.str.1@PAGEOFF
	stp	x22, x24, [sp]
	mov	x0, x21
	bl	_netif_dbg
	cbz	w22, LBB0_11
; %bb.9:
	mov	x25, #0
	cmp	x22, #1
	csinc	x20, x22, xzr, hi
Lloh43:
	adrp	x23, _INIT_TXQ_IN_DMA_ADDR@GOTPAGE
Lloh44:
	ldr	x23, [x23, _INIT_TXQ_IN_DMA_ADDR@GOTPAGEOFF]
LBB0_10:                                ; =>This Inner Loop Header: Depth=1
	ldr	w0, [x27]
	ldr	w1, [x23]
	mov	x2, x25
	mov	x3, x24
	bl	_MCDI_SET_ARRAY_QWORD
	ldrsw	x8, [x26]
	add	x24, x24, x8
	add	x25, x25, #1
	cmp	x20, x25
	b.ne	LBB0_10
LBB0_11:
	ldr	w8, [sp, #28]                   ; 4-byte Folded Reload
	cmp	w8, #0
	cset	w24, eq
	mov	x0, x22
	bl	_MC_CMD_INIT_TXQ_IN_LEN
	mov	x22, x0
Lloh45:
	adrp	x20, _ENOSPC@GOTPAGE
Lloh46:
	ldr	x20, [x20, _ENOSPC@GOTPAGEOFF]
Lloh47:
	adrp	x25, l_.str.2@PAGE
Lloh48:
	add	x25, x25, l_.str.2@PAGEOFF
Lloh49:
	adrp	x27, _probe@GOTPAGE
Lloh50:
	ldr	x27, [x27, _probe@GOTPAGEOFF]
LBB0_12:                                ; =>This Inner Loop Header: Depth=1
Lloh51:
	adrp	x23, _inbuf@GOTPAGE
Lloh52:
	ldr	x23, [x23, _inbuf@GOTPAGEOFF]
	ldr	w0, [x23]
Lloh53:
	adrp	x8, _INIT_TXQ_IN_FLAGS@GOTPAGE
Lloh54:
	ldr	x8, [x8, _INIT_TXQ_IN_FLAGS@GOTPAGEOFF]
Lloh55:
	ldr	w1, [x8]
Lloh56:
	adrp	x8, _INIT_TXQ_EXT_IN_FLAG_TSOV2_EN@GOTPAGE
Lloh57:
	ldr	x8, [x8, _INIT_TXQ_EXT_IN_FLAG_TSOV2_EN@GOTPAGEOFF]
Lloh58:
	ldr	w2, [x8]
Lloh59:
	adrp	x8, _INIT_TXQ_IN_FLAG_IP_CSUM_DIS@GOTPAGE
Lloh60:
	ldr	x8, [x8, _INIT_TXQ_IN_FLAG_IP_CSUM_DIS@GOTPAGEOFF]
Lloh61:
	ldr	w4, [x8]
Lloh62:
	adrp	x8, _INIT_TXQ_IN_FLAG_TCP_CSUM_DIS@GOTPAGE
Lloh63:
	ldr	x8, [x8, _INIT_TXQ_IN_FLAG_TCP_CSUM_DIS@GOTPAGEOFF]
Lloh64:
	ldr	w6, [x8]
Lloh65:
	adrp	x8, _INIT_TXQ_EXT_IN_FLAG_TIMESTAMP@GOTPAGE
Lloh66:
	ldr	x8, [x8, _INIT_TXQ_EXT_IN_FLAG_TIMESTAMP@GOTPAGEOFF]
Lloh67:
	ldr	w8, [x8]
	ldr	w9, [x28, #4]
	stp	w8, w9, [sp]
	mov	x3, x19
	mov	x5, x24
	mov	x7, x24
	bl	_MCDI_POPULATE_DWORD_4
Lloh68:
	adrp	x8, _MC_CMD_INIT_TXQ@GOTPAGE
Lloh69:
	ldr	x8, [x8, _MC_CMD_INIT_TXQ@GOTPAGEOFF]
Lloh70:
	ldr	w1, [x8]
	ldr	w2, [x23]
	mov	x0, x21
	mov	x3, x22
	mov	x4, #0
	mov	w5, #0
	mov	x6, #0
	bl	_efx_mcdi_rpc_quiet
	mov	x26, x0
	cbz	w19, LBB0_15
; %bb.13:                               ;   in Loop: Header=BB0_12 Depth=1
	ldr	w8, [x20]
	neg	w8, w8
	cmp	w26, w8
	b.ne	LBB0_15
; %bb.14:                               ;   in Loop: Header=BB0_12 Depth=1
	ldr	w1, [x27]
	ldr	w2, [x21]
	mov	x0, x21
	mov	x3, x25
	bl	_netif_warn
	mov	w19, #0
	mov	w23, #0
	cbnz	w26, LBB0_12
	b	LBB0_17
LBB0_15:
	mov	x23, x19
	cbz	w26, LBB0_17
; %bb.16:
Lloh71:
	adrp	x8, _MC_CMD_INIT_TXQ@GOTPAGE
Lloh72:
	ldr	x8, [x8, _MC_CMD_INIT_TXQ@GOTPAGEOFF]
Lloh73:
	ldr	w1, [x8]
Lloh74:
	adrp	x8, _MC_CMD_INIT_TXQ_EXT_IN_LEN@GOTPAGE
Lloh75:
	ldr	x8, [x8, _MC_CMD_INIT_TXQ_EXT_IN_LEN@GOTPAGEOFF]
Lloh76:
	ldr	w2, [x8]
	mov	x0, x21
	mov	x3, #0
	mov	w4, #0
	mov	x5, x26
	bl	_efx_mcdi_display_error
	ldr	w0, [x21]
	ldr	w2, [x28]
Lloh77:
	adrp	x1, l_.str.3@PAGE
Lloh78:
	add	x1, x1, l_.str.3@PAGEOFF
	ldp	x29, x30, [sp, #112]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #96]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #80]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #64]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #48]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #32]             ; 16-byte Folded Reload
	add	sp, sp, #128
	b	_netdev_WARN
LBB0_17:
Lloh79:
	adrp	x8, _EFX_TX_BUF_OPTION@GOTPAGE
Lloh80:
	ldr	x8, [x8, _EFX_TX_BUF_OPTION@GOTPAGEOFF]
Lloh81:
	ldr	w8, [x8]
	ldr	x9, [x28, #32]
	str	w8, [x9]
	mov	w19, #1
	str	w19, [x28, #12]
	mov	x0, x28
	mov	w1, #0
	bl	_efx_tx_desc
	mov	x21, x0
Lloh82:
	adrp	x8, _ESF_DZ_TX_DESC_IS_OPT@GOTPAGE
Lloh83:
	ldr	x8, [x8, _ESF_DZ_TX_DESC_IS_OPT@GOTPAGEOFF]
	ldr	w0, [x0]
Lloh84:
	ldr	w1, [x8]
Lloh85:
	adrp	x8, _ESF_DZ_TX_OPTION_TYPE@GOTPAGE
Lloh86:
	ldr	x8, [x8, _ESF_DZ_TX_OPTION_TYPE@GOTPAGEOFF]
Lloh87:
	adrp	x9, _ESE_DZ_TX_OPTION_DESC_CRC_CSUM@GOTPAGE
Lloh88:
	ldr	x9, [x9, _ESE_DZ_TX_OPTION_DESC_CRC_CSUM@GOTPAGEOFF]
Lloh89:
	ldr	w3, [x8]
Lloh90:
	ldr	w4, [x9]
Lloh91:
	adrp	x8, _ESF_DZ_TX_OPTION_UDP_TCP_CSUM@GOTPAGE
Lloh92:
	ldr	x8, [x8, _ESF_DZ_TX_OPTION_UDP_TCP_CSUM@GOTPAGEOFF]
Lloh93:
	adrp	x9, _ESF_DZ_TX_OPTION_IP_CSUM@GOTPAGE
Lloh94:
	ldr	x9, [x9, _ESF_DZ_TX_OPTION_IP_CSUM@GOTPAGEOFF]
Lloh95:
	ldr	w5, [x8]
Lloh96:
	ldr	w7, [x9]
Lloh97:
	adrp	x8, _ESF_DZ_TX_TIMESTAMP@GOTPAGE
Lloh98:
	ldr	x8, [x8, _ESF_DZ_TX_TIMESTAMP@GOTPAGEOFF]
Lloh99:
	ldr	w8, [x8]
	ldr	w9, [x28, #4]
	stp	w8, w9, [sp, #4]
	ldr	w6, [sp, #28]                   ; 4-byte Folded Reload
	str	w6, [sp]
	mov	w2, #1
	bl	_EFX_POPULATE_QWORD_5
	str	w19, [x28, #16]
	cbz	w23, LBB0_19
; %bb.18:
Lloh100:
	adrp	x8, _efx_ef10_tx_tso_desc@GOTPAGE
Lloh101:
	ldr	x8, [x8, _efx_ef10_tx_tso_desc@GOTPAGEOFF]
Lloh102:
	ldr	w8, [x8]
	str	w8, [x28, #24]
	mov	w8, #2
	b	LBB0_21
LBB0_19:
	ldr	x8, [sp, #16]                   ; 8-byte Folded Reload
	ldr	w8, [x8, #12]
Lloh103:
	adrp	x9, _MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN@GOTPAGE
Lloh104:
	ldr	x9, [x9, _MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN@GOTPAGEOFF]
Lloh105:
	ldr	w9, [x9]
	lsr	w8, w8, w9
	tbz	w8, #0, LBB0_22
; %bb.20:
	mov	w8, #1
LBB0_21:
	str	w8, [x28, #20]
LBB0_22:
	bl	_wmb
	mov	x0, x28
	mov	x1, x21
	ldp	x29, x30, [sp, #112]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #96]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #80]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #64]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #48]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #32]             ; 16-byte Folded Reload
	add	sp, sp, #128
	b	_efx_ef10_push_tx_desc
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpAdd	Lloh21, Lloh22
	.loh AdrpAdd	Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh26, Lloh27, Lloh28
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpLdrGot	Lloh43, Lloh44
	.loh AdrpLdrGot	Lloh49, Lloh50
	.loh AdrpAdd	Lloh47, Lloh48
	.loh AdrpLdrGot	Lloh45, Lloh46
	.loh AdrpLdrGotLdr	Lloh68, Lloh69, Lloh70
	.loh AdrpLdrGotLdr	Lloh65, Lloh66, Lloh67
	.loh AdrpLdrGotLdr	Lloh62, Lloh63, Lloh64
	.loh AdrpLdrGotLdr	Lloh59, Lloh60, Lloh61
	.loh AdrpLdrGotLdr	Lloh56, Lloh57, Lloh58
	.loh AdrpLdrGotLdr	Lloh53, Lloh54, Lloh55
	.loh AdrpLdrGot	Lloh51, Lloh52
	.loh AdrpAdd	Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh74, Lloh75, Lloh76
	.loh AdrpLdrGotLdr	Lloh71, Lloh72, Lloh73
	.loh AdrpLdrGotLdr	Lloh97, Lloh98, Lloh99
	.loh AdrpLdrGotLdr	Lloh93, Lloh94, Lloh96
	.loh AdrpLdrGotLdr	Lloh91, Lloh92, Lloh95
	.loh AdrpLdrGotLdr	Lloh87, Lloh88, Lloh90
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh89
	.loh AdrpLdrGotLdr	Lloh82, Lloh83, Lloh84
	.loh AdrpLdrGotLdr	Lloh79, Lloh80, Lloh81
	.loh AdrpLdrGotLdr	Lloh100, Lloh101, Lloh102
	.loh AdrpLdrGotLdr	Lloh103, Lloh104, Lloh105
	.cfi_endproc
                                        ; -- End function
	.comm	_inbuf,4,2                      ; @inbuf
	.comm	_EFX_MAX_DMAQ_SIZE,4,2          ; @EFX_MAX_DMAQ_SIZE
	.comm	_EFX_BUF_SIZE,4,2               ; @EFX_BUF_SIZE
	.comm	_EFX_TXQ_TYPE_OFFLOAD,4,2       ; @EFX_TXQ_TYPE_OFFLOAD
	.comm	_MC_CMD_INIT_TXQ_OUT_LEN,8,3    ; @MC_CMD_INIT_TXQ_OUT_LEN
	.comm	_LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN,4,2 ; @LICENSED_V3_FEATURES_TX_TIMESTAMPS_LBN
	.comm	_MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN,4,2 ; @MC_CMD_GET_CAPABILITIES_V2_OUT_TX_TSO_V2_LBN
	.comm	_hw,4,2                         ; @hw
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Using TSOv2 for channel %u\n"

	.comm	_INIT_TXQ_IN_SIZE,4,2           ; @INIT_TXQ_IN_SIZE
	.comm	_INIT_TXQ_IN_TARGET_EVQ,4,2     ; @INIT_TXQ_IN_TARGET_EVQ
	.comm	_INIT_TXQ_IN_LABEL,4,2          ; @INIT_TXQ_IN_LABEL
	.comm	_INIT_TXQ_IN_INSTANCE,4,2       ; @INIT_TXQ_IN_INSTANCE
	.comm	_INIT_TXQ_IN_OWNER_ID,4,2       ; @INIT_TXQ_IN_OWNER_ID
	.comm	_INIT_TXQ_IN_PORT_ID,4,2        ; @INIT_TXQ_IN_PORT_ID
l_.str.1:                               ; @.str.1
	.asciz	"pushing TXQ %d. %zu entries (%llx)\n"

	.comm	_INIT_TXQ_IN_DMA_ADDR,4,2       ; @INIT_TXQ_IN_DMA_ADDR
	.comm	_INIT_TXQ_IN_FLAGS,4,2          ; @INIT_TXQ_IN_FLAGS
	.comm	_INIT_TXQ_EXT_IN_FLAG_TSOV2_EN,4,2 ; @INIT_TXQ_EXT_IN_FLAG_TSOV2_EN
	.comm	_INIT_TXQ_IN_FLAG_IP_CSUM_DIS,4,2 ; @INIT_TXQ_IN_FLAG_IP_CSUM_DIS
	.comm	_INIT_TXQ_IN_FLAG_TCP_CSUM_DIS,4,2 ; @INIT_TXQ_IN_FLAG_TCP_CSUM_DIS
	.comm	_INIT_TXQ_EXT_IN_FLAG_TIMESTAMP,4,2 ; @INIT_TXQ_EXT_IN_FLAG_TIMESTAMP
	.comm	_MC_CMD_INIT_TXQ,4,2            ; @MC_CMD_INIT_TXQ
	.comm	_ENOSPC,4,2                     ; @ENOSPC
	.comm	_probe,4,2                      ; @probe
l_.str.2:                               ; @.str.2
	.asciz	"TSOv2 context not available to segment in hardware. TCP performance may be reduced.\n"

	.comm	_MC_CMD_INIT_TXQ_EXT_IN_LEN,4,2 ; @MC_CMD_INIT_TXQ_EXT_IN_LEN
	.comm	_EFX_TX_BUF_OPTION,4,2          ; @EFX_TX_BUF_OPTION
	.comm	_ESF_DZ_TX_DESC_IS_OPT,4,2      ; @ESF_DZ_TX_DESC_IS_OPT
	.comm	_ESF_DZ_TX_OPTION_TYPE,4,2      ; @ESF_DZ_TX_OPTION_TYPE
	.comm	_ESE_DZ_TX_OPTION_DESC_CRC_CSUM,4,2 ; @ESE_DZ_TX_OPTION_DESC_CRC_CSUM
	.comm	_ESF_DZ_TX_OPTION_UDP_TCP_CSUM,4,2 ; @ESF_DZ_TX_OPTION_UDP_TCP_CSUM
	.comm	_ESF_DZ_TX_OPTION_IP_CSUM,4,2   ; @ESF_DZ_TX_OPTION_IP_CSUM
	.comm	_ESF_DZ_TX_TIMESTAMP,4,2        ; @ESF_DZ_TX_TIMESTAMP
	.comm	_efx_ef10_tx_tso_desc,4,2       ; @efx_ef10_tx_tso_desc
	.comm	_MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN,4,2 ; @MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN
l_.str.3:                               ; @.str.3
	.asciz	"failed to initialise TXQ %d\n"

	.no_dead_strip	_efx_ef10_tx_init
.subsections_via_symbols
