	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function wm8903_hw_params
_wm8903_hw_params:                      ## @wm8903_hw_params
	.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	$72, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r13
	movq	(%rdi), %rax
	movq	(%rax), %rax
	movq	(%rax), %rax
	movq	(%rax), %rbx
	movq	(%rbx), %rax
	movq	%rax, -88(%rbp)                 ## 8-byte Spill
	movq	8(%rbx), %r15
	movq	%rsi, -80(%rbp)                 ## 8-byte Spill
	movq	%rsi, %rdi
	callq	_params_rate
	movl	%eax, %r14d
	movq	_WM8903_AUDIO_INTERFACE_1@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	callq	_snd_soc_read
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
	movq	_WM8903_AUDIO_INTERFACE_2@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	callq	_snd_soc_read
	movl	%eax, %r12d
	movq	_WM8903_AUDIO_INTERFACE_3@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	callq	_snd_soc_read
	movl	%eax, -104(%rbp)                ## 4-byte Spill
	movq	_WM8903_CLOCK_RATES_0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	callq	_snd_soc_read
	movl	%eax, -92(%rbp)                 ## 4-byte Spill
	movq	_WM8903_CLOCK_RATES_1@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	callq	_snd_soc_read
	movl	%eax, -48(%rbp)                 ## 4-byte Spill
	movq	_WM8903_DAC_DIGITAL_1@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	callq	_snd_soc_read
	cmpq	%r13, 16(%r15)
	je	LBB0_1
## %bb.2:
	movl	%r12d, -100(%rbp)               ## 4-byte Spill
	movq	%rbx, -112(%rbp)                ## 8-byte Spill
	movq	_WM8903_DAC_SB_FILT@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	movl	%edx, %ecx
	orl	%eax, %ecx
	notl	%edx
	andl	%eax, %edx
	cmpl	$24001, %r14d                   ## imm = 0x5DC1
	cmovll	%ecx, %edx
	movl	%edx, -96(%rbp)                 ## 4-byte Spill
	movq	_sample_rates@GOTPCREL(%rip), %r13
	movq	(%r13), %rdi
	movl	(%rdi), %ebx
	callq	_ARRAY_SIZE
	xorl	%r12d, %r12d
	cmpl	$2, %eax
	movq	%r14, -64(%rbp)                 ## 8-byte Spill
	movq	%r15, -72(%rbp)                 ## 8-byte Spill
	jl	LBB0_6
## %bb.3:
	subl	%r14d, %ebx
	movl	%ebx, %r13d
	negl	%r13d
	cmovsl	%ebx, %r13d
	movl	$1, %ebx
	movl	$24, %r15d
	.p2align	4, 0x90
LBB0_4:                                 ## =>This Inner Loop Header: Depth=1
	movq	_sample_rates@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	movl	(%rdi,%r15), %eax
	subl	%r14d, %eax
	movl	%eax, %ecx
	negl	%ecx
	cmovsl	%eax, %ecx
	cmpl	%r13d, %ecx
	cmovlel	%ebx, %r12d
	cmovll	%ecx, %r13d
	incq	%rbx
	callq	_ARRAY_SIZE
	cltq
	addq	$24, %r15
	cmpq	%rax, %rbx
	jl	LBB0_4
## %bb.5:
	movslq	%r12d, %r12
	movq	-72(%rbp), %r15                 ## 8-byte Reload
	movq	_sample_rates@GOTPCREL(%rip), %r13
LBB0_6:
	cmpq	$0, 8(%r15)
	movq	(%r13), %rax
	leaq	(%r12,%r12,2), %r14
	movl	(%rax,%r14,8), %edx
	je	LBB0_10
## %bb.7:
	cmpl	$96000, %edx                    ## imm = 0x17700
	je	LBB0_9
## %bb.8:
	cmpl	$88200, %edx                    ## imm = 0x15888
	jne	LBB0_10
LBB0_9:
	leaq	L_.str.1(%rip), %rsi
	movq	-88(%rbp), %rdi                 ## 8-byte Reload
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
                                        ## kill: def $edx killed $edx killed $rdx
	callq	_dev_err
	movq	_EINVAL@GOTPCREL(%rip), %rax
	xorl	%ebx, %ebx
	subl	(%rax), %ebx
	jmp	LBB0_33
LBB0_1:
	leaq	L_.str(%rip), %rsi
	xorl	%ebx, %ebx
	movq	-88(%rbp), %rdi                 ## 8-byte Reload
	xorl	%eax, %eax
	callq	_dev_dbg
	jmp	LBB0_33
LBB0_10:
	leaq	L_.str.2(%rip), %rsi
	xorl	%ebx, %ebx
	movq	%r13, %r12
	movq	-88(%rbp), %r13                 ## 8-byte Reload
	movq	%r13, %rdi
	xorl	%eax, %eax
	callq	_dev_dbg
	movq	_WM8903_SAMPLE_RATE_MASK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	notl	%eax
	movl	-48(%rbp), %ecx                 ## 4-byte Reload
	andl	%eax, %ecx
	movq	(%r12), %rax
	orl	4(%rax,%r14,8), %ecx
	movl	%ecx, -48(%rbp)                 ## 4-byte Spill
	movq	_WM8903_AIF_WL_MASK@GOTPCREL(%rip), %rax
	movl	(%rax), %r14d
	movq	-80(%rbp), %rdi                 ## 8-byte Reload
	callq	_params_format
                                        ## kill: def $eax killed $eax def $rax
	addl	$-128, %eax
	cmpl	$3, %eax
	ja	LBB0_15
## %bb.11:
	notl	%r14d
	movl	-44(%rbp), %edx                 ## 4-byte Reload
	andl	%r14d, %edx
	leaq	LJTI0_0(%rip), %rcx
	movslq	(%rcx,%rax,4), %rax
	addq	%rcx, %rax
	jmpq	*%rax
LBB0_14:
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	movl	%ecx, %eax
	shll	$6, %eax
	movl	%eax, -52(%rbp)                 ## 4-byte Spill
	orl	$12, %edx
	movl	%edx, -44(%rbp)                 ## 4-byte Spill
	jmp	LBB0_17
LBB0_15:
	movq	_EINVAL@GOTPCREL(%rip), %rax
	subl	(%rax), %ebx
	jmp	LBB0_33
LBB0_13:
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	movl	%ecx, %eax
	shll	$4, %eax
	leal	(%rax,%rax,2), %eax
	movl	%eax, -52(%rbp)                 ## 4-byte Spill
	orl	$8, %edx
	movl	%edx, -44(%rbp)                 ## 4-byte Spill
	jmp	LBB0_17
LBB0_12:
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	leal	(,%rcx,8), %eax
	leal	(%rax,%rax,4), %eax
	movl	%eax, -52(%rbp)                 ## 4-byte Spill
	orl	$4, %edx
	movl	%edx, -44(%rbp)                 ## 4-byte Spill
	jmp	LBB0_17
LBB0_16:
	movl	%edx, -44(%rbp)                 ## 4-byte Spill
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	movl	%ecx, %eax
	shll	$5, %eax
	movl	%eax, -52(%rbp)                 ## 4-byte Spill
LBB0_17:
	movl	(%r15), %edx
	leaq	L_.str.3(%rip), %rsi
	xorl	%ebx, %ebx
	movq	%r13, %rdi
                                        ## kill: def $ecx killed $ecx killed $rcx
	xorl	%eax, %eax
	callq	_dev_dbg
	movl	(%r15), %eax
	movl	%eax, -80(%rbp)                 ## 4-byte Spill
	movq	_clk_sys_ratios@GOTPCREL(%rip), %r12
	movq	(%r12), %rdi
	movl	8(%rdi), %r15d
	movl	12(%rdi), %r14d
	callq	_ARRAY_SIZE
	cmpl	$2, %eax
	jl	LBB0_18
## %bb.19:
	imull	%r15d, %r14d
	movl	-80(%rbp), %eax                 ## 4-byte Reload
	cltd
	idivl	%r14d
	movq	-64(%rbp), %r15                 ## 8-byte Reload
	subl	%r15d, %eax
	movl	%eax, %r13d
	negl	%r13d
	cmovsl	%eax, %r13d
	movl	$1, %r12d
	movl	$36, %r14d
	.p2align	4, 0x90
LBB0_20:                                ## =>This Inner Loop Header: Depth=1
	movq	-72(%rbp), %rax                 ## 8-byte Reload
	movl	(%rax), %eax
	movq	_clk_sys_ratios@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rdi
	movl	(%rdi,%r14), %ecx
	imull	-4(%rdi,%r14), %ecx
	cltd
	idivl	%ecx
	subl	%r15d, %eax
	movl	%eax, %ecx
	negl	%ecx
	cmovsl	%eax, %ecx
	cmpl	%r13d, %ecx
	cmovlel	%r12d, %ebx
	cmovll	%ecx, %r13d
	incq	%r12
	callq	_ARRAY_SIZE
	cltq
	addq	$24, %r14
	cmpq	%rax, %r12
	jl	LBB0_20
## %bb.21:
	movslq	%ebx, %rbx
	movq	-88(%rbp), %r13                 ## 8-byte Reload
	movq	-72(%rbp), %rdx                 ## 8-byte Reload
	movl	-48(%rbp), %r9d                 ## 4-byte Reload
	movq	_clk_sys_ratios@GOTPCREL(%rip), %r12
	jmp	LBB0_22
LBB0_18:
	movq	-72(%rbp), %rdx                 ## 8-byte Reload
	movl	-48(%rbp), %r9d                 ## 4-byte Reload
LBB0_22:
	movq	(%r12), %rax
	leaq	(%rbx,%rbx,2), %rsi
	cmpl	$2, 8(%rax,%rsi,8)
	movq	_WM8903_MCLKDIV2@GOTPCREL(%rip), %rcx
	movl	(%rcx), %r14d
	jne	LBB0_24
## %bb.23:
	orl	-92(%rbp), %r14d                ## 4-byte Folded Reload
	movl	(%rdx), %ecx
	movl	%ecx, %r12d
	shrl	$31, %r12d
	addl	%ecx, %r12d
	sarl	%r12d
	jmp	LBB0_25
LBB0_24:
	notl	%r14d
	andl	-92(%rbp), %r14d                ## 4-byte Folded Reload
	movl	(%rdx), %r12d
LBB0_25:
	movq	_WM8903_CLK_SYS_RATE_MASK@GOTPCREL(%rip), %rcx
	movq	_WM8903_CLK_SYS_MODE_MASK@GOTPCREL(%rip), %rdx
	movl	(%rdx), %edx
	orl	(%rcx), %edx
	notl	%edx
	andl	%edx, %r9d
	movq	_WM8903_CLK_SYS_RATE_SHIFT@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	movl	(%rax,%rsi,8), %edx
	movl	12(%rax,%rsi,8), %r8d
	movl	%edx, %edi
	shll	%cl, %edi
	orl	%r9d, %edi
	movl	16(%rax,%rsi,8), %eax
	movq	_WM8903_CLK_SYS_MODE_SHIFT@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	movl	%eax, %ebx
	shll	%cl, %ebx
	orl	%edi, %ebx
	leaq	L_.str.4(%rip), %rsi
	movq	%r13, %rdi
	movl	%eax, %ecx
	xorl	%eax, %eax
	callq	_dev_dbg
	leaq	L_.str.5(%rip), %rsi
	movq	%r13, %rdi
	movl	%r12d, %edx
	xorl	%eax, %eax
	callq	_dev_dbg
	addl	%r12d, %r12d
	leal	(%r12,%r12,4), %r15d
	movq	_bclk_divs@GOTPCREL(%rip), %r12
	movq	(%r12), %rdi
	callq	_ARRAY_SIZE
	cmpl	$2, %eax
	movl	%r14d, -80(%rbp)                ## 4-byte Spill
	movl	%ebx, -48(%rbp)                 ## 4-byte Spill
	movl	%r15d, -72(%rbp)                ## 4-byte Spill
	jl	LBB0_26
## %bb.27:
	movq	(%r12), %rdi
	movl	%r15d, %eax
	cltd
	idivl	44(%rdi)
	movl	-52(%rbp), %r13d                ## 4-byte Reload
	cmpl	%r13d, %eax
	jge	LBB0_29
## %bb.28:
	xorl	%r14d, %r14d
	jmp	LBB0_32
LBB0_26:
	xorl	%r14d, %r14d
	movl	-52(%rbp), %r13d                ## 4-byte Reload
LBB0_32:
	movq	_WM8903_BCLK_DIV_MASK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	notl	%eax
	movl	-100(%rbp), %r15d               ## 4-byte Reload
	andl	%eax, %r15d
	movq	_WM8903_LRCLK_RATE_MASK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	notl	%eax
	movl	%r13d, %ebx
	movl	-104(%rbp), %r13d               ## 4-byte Reload
	andl	%eax, %r13d
	movq	(%r12), %rax
	movl	%r14d, %ecx
	shlq	$3, %rcx
	leaq	(%rcx,%rcx,2), %r14
	movslq	20(%rax,%r14), %rsi
	imulq	$1717986919, %rsi, %rcx         ## imm = 0x66666667
	movq	%rcx, %rax
	shrq	$63, %rax
	sarq	$34, %rcx
	addl	%eax, %ecx
	movl	-72(%rbp), %eax                 ## 4-byte Reload
	cltd
	idivl	%esi
	leaq	L_.str.6(%rip), %rsi
	movq	-88(%rbp), %rdi                 ## 8-byte Reload
	movl	%ecx, %edx
	movl	%ebx, %ecx
	movl	%eax, %r8d
	xorl	%eax, %eax
	callq	_dev_dbg
	movq	(%r12), %rax
	orl	12(%rax,%r14), %r15d
	movl	%ebx, %eax
	cltd
	idivl	-64(%rbp)                       ## 4-byte Folded Reload
	orl	%eax, %r13d
	movq	_WM8903_CLOCK_RATES_0@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	-112(%rbp), %rbx                ## 8-byte Reload
	movq	%rbx, %rdi
	movl	-80(%rbp), %edx                 ## 4-byte Reload
	callq	_snd_soc_write
	movq	_WM8903_CLOCK_RATES_1@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	movl	-48(%rbp), %edx                 ## 4-byte Reload
	callq	_snd_soc_write
	movq	_WM8903_AUDIO_INTERFACE_1@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	movl	-44(%rbp), %edx                 ## 4-byte Reload
	callq	_snd_soc_write
	movq	_WM8903_AUDIO_INTERFACE_2@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	movl	%r15d, %edx
	callq	_snd_soc_write
	movq	_WM8903_AUDIO_INTERFACE_3@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	movl	%r13d, %edx
	callq	_snd_soc_write
	movq	_WM8903_DAC_DIGITAL_1@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	movl	-96(%rbp), %edx                 ## 4-byte Reload
	callq	_snd_soc_write
	xorl	%ebx, %ebx
LBB0_33:
	movl	%ebx, %eax
	addq	$72, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_29:
	movl	$1, %r15d
	movl	$68, %ebx
	.p2align	4, 0x90
LBB0_30:                                ## =>This Inner Loop Header: Depth=1
	movq	%r15, %r14
	incq	%r15
	callq	_ARRAY_SIZE
	cltq
	cmpq	%rax, %r15
	jge	LBB0_32
## %bb.31:                              ##   in Loop: Header=BB0_30 Depth=1
	movq	(%r12), %rdi
	movl	-72(%rbp), %eax                 ## 4-byte Reload
	cltd
	idivl	(%rdi,%rbx)
	addq	$24, %rbx
	cmpl	%r13d, %eax
	jge	LBB0_30
	jmp	LBB0_32
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_14, LBB0_14-LJTI0_0
.set L0_0_set_13, LBB0_13-LJTI0_0
.set L0_0_set_12, LBB0_12-LJTI0_0
.set L0_0_set_16, LBB0_16-LJTI0_0
LJTI0_0:
	.long	L0_0_set_14
	.long	L0_0_set_13
	.long	L0_0_set_12
	.long	L0_0_set_16
	.end_data_region
                                        ## -- End function
	.comm	_WM8903_AUDIO_INTERFACE_1,4,2   ## @WM8903_AUDIO_INTERFACE_1
	.comm	_WM8903_AUDIO_INTERFACE_2,4,2   ## @WM8903_AUDIO_INTERFACE_2
	.comm	_WM8903_AUDIO_INTERFACE_3,4,2   ## @WM8903_AUDIO_INTERFACE_3
	.comm	_WM8903_CLOCK_RATES_0,4,2       ## @WM8903_CLOCK_RATES_0
	.comm	_WM8903_CLOCK_RATES_1,4,2       ## @WM8903_CLOCK_RATES_1
	.comm	_WM8903_DAC_DIGITAL_1,4,2       ## @WM8903_DAC_DIGITAL_1
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Ignoring hw_params for slave substream\n"

	.comm	_WM8903_DAC_SB_FILT,4,2         ## @WM8903_DAC_SB_FILT
	.comm	_sample_rates,8,3               ## @sample_rates
L_.str.1:                               ## @.str.1
	.asciz	"%dHz unsupported by ADC\n"

	.comm	_EINVAL,4,2                     ## @EINVAL
L_.str.2:                               ## @.str.2
	.asciz	"DSP fs = %dHz\n"

	.comm	_WM8903_SAMPLE_RATE_MASK,4,2    ## @WM8903_SAMPLE_RATE_MASK
	.comm	_WM8903_AIF_WL_MASK,4,2         ## @WM8903_AIF_WL_MASK
L_.str.3:                               ## @.str.3
	.asciz	"MCLK = %dHz, target sample rate = %dHz\n"

	.comm	_clk_sys_ratios,8,3             ## @clk_sys_ratios
	.comm	_WM8903_MCLKDIV2,4,2            ## @WM8903_MCLKDIV2
	.comm	_WM8903_CLK_SYS_RATE_MASK,4,2   ## @WM8903_CLK_SYS_RATE_MASK
	.comm	_WM8903_CLK_SYS_MODE_MASK,4,2   ## @WM8903_CLK_SYS_MODE_MASK
	.comm	_WM8903_CLK_SYS_RATE_SHIFT,4,2  ## @WM8903_CLK_SYS_RATE_SHIFT
	.comm	_WM8903_CLK_SYS_MODE_SHIFT,4,2  ## @WM8903_CLK_SYS_MODE_SHIFT
L_.str.4:                               ## @.str.4
	.asciz	"CLK_SYS_RATE=%x, CLK_SYS_MODE=%x div=%d\n"

L_.str.5:                               ## @.str.5
	.asciz	"Actual CLK_SYS = %dHz\n"

	.comm	_bclk_divs,8,3                  ## @bclk_divs
	.comm	_WM8903_BCLK_DIV_MASK,4,2       ## @WM8903_BCLK_DIV_MASK
	.comm	_WM8903_LRCLK_RATE_MASK,4,2     ## @WM8903_LRCLK_RATE_MASK
L_.str.6:                               ## @.str.6
	.asciz	"BCLK ratio %d for %dHz - actual BCLK = %dHz\n"

	.no_dead_strip	_wm8903_hw_params
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function wm8903_hw_params
_wm8903_hw_params:                      ; @wm8903_hw_params
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #160
	.cfi_def_cfa_offset 160
	stp	x28, x27, [sp, #64]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #80]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #96]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #112]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #128]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #144]            ; 16-byte Folded Spill
	add	x29, sp, #144
	.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	x25, x1
	mov	x22, x0
	ldr	x8, [x0]
	ldr	x8, [x8]
	ldr	x8, [x8]
	ldr	x19, [x8]
	ldp	x26, x23, [x19]
	mov	x0, x1
	bl	_params_rate
	mov	x20, x0
Lloh0:
	adrp	x8, _WM8903_AUDIO_INTERFACE_1@GOTPAGE
Lloh1:
	ldr	x8, [x8, _WM8903_AUDIO_INTERFACE_1@GOTPAGEOFF]
Lloh2:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_snd_soc_read
	mov	x24, x0
Lloh3:
	adrp	x8, _WM8903_AUDIO_INTERFACE_2@GOTPAGE
Lloh4:
	ldr	x8, [x8, _WM8903_AUDIO_INTERFACE_2@GOTPAGEOFF]
Lloh5:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_snd_soc_read
	mov	x21, x0
Lloh6:
	adrp	x8, _WM8903_AUDIO_INTERFACE_3@GOTPAGE
Lloh7:
	ldr	x8, [x8, _WM8903_AUDIO_INTERFACE_3@GOTPAGEOFF]
Lloh8:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_snd_soc_read
	mov	x27, x0
Lloh9:
	adrp	x8, _WM8903_CLOCK_RATES_0@GOTPAGE
Lloh10:
	ldr	x8, [x8, _WM8903_CLOCK_RATES_0@GOTPAGEOFF]
Lloh11:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_snd_soc_read
	mov	x28, x0
Lloh12:
	adrp	x8, _WM8903_CLOCK_RATES_1@GOTPAGE
Lloh13:
	ldr	x8, [x8, _WM8903_CLOCK_RATES_1@GOTPAGEOFF]
Lloh14:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_snd_soc_read
	str	w0, [sp, #56]                   ; 4-byte Folded Spill
Lloh15:
	adrp	x8, _WM8903_DAC_DIGITAL_1@GOTPAGE
Lloh16:
	ldr	x8, [x8, _WM8903_DAC_DIGITAL_1@GOTPAGEOFF]
Lloh17:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_snd_soc_read
	ldr	x8, [x23, #16]
	cmp	x8, x22
	b.eq	LBB0_5
; %bb.1:
	str	w21, [sp, #48]                  ; 4-byte Folded Spill
Lloh18:
	adrp	x8, _WM8903_DAC_SB_FILT@GOTPAGE
Lloh19:
	ldr	x8, [x8, _WM8903_DAC_SB_FILT@GOTPAGEOFF]
Lloh20:
	ldr	w8, [x8]
	orr	w9, w8, w0
	bic	w8, w0, w8
	mov	w10, #24001
	cmp	w20, w10
	csel	w8, w9, w8, lt
	str	w8, [sp, #52]                   ; 4-byte Folded Spill
Lloh21:
	adrp	x22, _sample_rates@GOTPAGE
Lloh22:
	ldr	x22, [x22, _sample_rates@GOTPAGEOFF]
	ldr	x0, [x22]
	ldr	w21, [x0]
	bl	_ARRAY_SIZE
	cmp	w0, #2
	stp	w28, w27, [sp, #40]             ; 8-byte Folded Spill
	b.lt	LBB0_6
; %bb.2:
	str	w24, [sp, #36]                  ; 4-byte Folded Spill
	mov	x28, x26
	mov	w24, #0
	subs	w8, w21, w20
	cneg	w26, w8, mi
	mov	w21, #1
	mov	w27, #24
LBB0_3:                                 ; =>This Inner Loop Header: Depth=1
	ldr	x0, [x22]
	ldr	w8, [x0, x27]
	subs	w8, w8, w20
	cneg	w8, w8, mi
	cmp	w8, w26
	csel	w24, w24, w21, gt
	csel	w26, w8, w26, lt
	add	x21, x21, #1
	bl	_ARRAY_SIZE
	add	x27, x27, #24
	cmp	x21, w0, sxtw
	b.lt	LBB0_3
; %bb.4:
	sxtw	x21, w24
	mov	x26, x28
	ldr	w24, [sp, #36]                  ; 4-byte Folded Reload
	b	LBB0_7
LBB0_5:
Lloh23:
	adrp	x1, l_.str@PAGE
Lloh24:
	add	x1, x1, l_.str@PAGEOFF
	mov	x0, x26
	bl	_dev_dbg
	b	LBB0_30
LBB0_6:
	mov	x21, #0
LBB0_7:
	ldr	x9, [x23, #8]
	ldr	x8, [x22]
	mov	w10, #24
	mul	x10, x21, x10
	ldr	w8, [x8, x10]
	cbz	x9, LBB0_10
; %bb.8:
	mov	w9, #30464
	movk	w9, #1, lsl #16
	cmp	w8, w9
	mov	w9, #22664
	movk	w9, #1, lsl #16
	ccmp	w8, w9, #4, ne
	b.ne	LBB0_10
; %bb.9:
Lloh25:
	adrp	x1, l_.str.1@PAGE
Lloh26:
	add	x1, x1, l_.str.1@PAGEOFF
	mov	x0, x26
	mov	x2, x20
	bl	_dev_err
	b	LBB0_13
LBB0_10:
	str	x8, [sp]
Lloh27:
	adrp	x1, l_.str.2@PAGE
Lloh28:
	add	x1, x1, l_.str.2@PAGEOFF
	mov	x0, x26
	bl	_dev_dbg
Lloh29:
	adrp	x8, _WM8903_SAMPLE_RATE_MASK@GOTPAGE
Lloh30:
	ldr	x8, [x8, _WM8903_SAMPLE_RATE_MASK@GOTPAGEOFF]
Lloh31:
	ldr	w8, [x8]
	str	w8, [sp, #36]                   ; 4-byte Folded Spill
	ldr	x8, [x22]
	mov	w9, #24
	madd	x8, x21, x9, x8
	ldr	w22, [x8, #4]
Lloh32:
	adrp	x8, _WM8903_AIF_WL_MASK@GOTPAGE
Lloh33:
	ldr	x8, [x8, _WM8903_AIF_WL_MASK@GOTPAGEOFF]
Lloh34:
	ldr	w21, [x8]
	mov	x0, x25
	bl	_params_format
	sub	w8, w0, #128
	cmp	w8, #3
	b.hi	LBB0_13
; %bb.11:
	bic	w12, w24, w21
Lloh35:
	adrp	x9, lJTI0_0@PAGE
Lloh36:
	add	x9, x9, lJTI0_0@PAGEOFF
	adr	x10, LBB0_12
	ldrb	w11, [x9, x8]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_12:
	lsl	w28, w20, #6
	orr	w12, w12, #0xc
	b	LBB0_16
LBB0_13:
Lloh37:
	adrp	x8, _EINVAL@GOTPAGE
Lloh38:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
Lloh39:
	ldr	w8, [x8]
	neg	w0, w8
	b	LBB0_31
LBB0_14:
	add	w8, w20, w20, lsl #1
	lsl	w28, w8, #4
	orr	w12, w12, #0x8
	b	LBB0_16
LBB0_15:
	add	w8, w20, w20, lsl #2
	lsl	w28, w8, #3
	orr	w12, w12, #0x4
LBB0_16:
	str	w12, [sp, #32]                  ; 4-byte Folded Spill
	b	LBB0_18
LBB0_17:
	str	w12, [sp, #32]                  ; 4-byte Folded Spill
	lsl	w28, w20, #5
LBB0_18:
	ldr	w8, [sp, #56]                   ; 4-byte Folded Reload
	ldr	w9, [sp, #36]                   ; 4-byte Folded Reload
	bic	w24, w8, w9
	ldr	w8, [x23]
	stp	x8, x20, [sp]
Lloh40:
	adrp	x1, l_.str.3@PAGE
Lloh41:
	add	x1, x1, l_.str.3@PAGEOFF
	str	x26, [sp, #56]                  ; 8-byte Folded Spill
	mov	x0, x26
	bl	_dev_dbg
	ldr	w21, [x23]
Lloh42:
	adrp	x25, _clk_sys_ratios@GOTPAGE
Lloh43:
	ldr	x25, [x25, _clk_sys_ratios@GOTPAGEOFF]
	ldr	x0, [x25]
	ldp	w26, w27, [x0, #8]
	bl	_ARRAY_SIZE
	cmp	w0, #2
	b.lt	LBB0_22
; %bb.19:
	str	w24, [sp, #28]                  ; 4-byte Folded Spill
	str	w22, [sp, #36]                  ; 4-byte Folded Spill
	mov	x22, #0
	mov	w24, #0
	mul	w8, w27, w26
	sdiv	w8, w21, w8
	subs	w8, w8, w20
	cneg	w26, w8, mi
	mov	w27, #1
LBB0_20:                                ; =>This Inner Loop Header: Depth=1
	ldr	w8, [x23]
	ldr	x0, [x25]
	add	x9, x0, x22
	ldp	w10, w9, [x9, #32]
	mul	w9, w9, w10
	sdiv	w8, w8, w9
	subs	w8, w8, w20
	cneg	w8, w8, mi
	cmp	w8, w26
	csel	w24, w24, w27, gt
	csel	w26, w8, w26, lt
	add	x27, x27, #1
	bl	_ARRAY_SIZE
	add	x22, x22, #24
	cmp	x27, w0, sxtw
	b.lt	LBB0_20
; %bb.21:
	sxtw	x8, w24
	ldr	w22, [sp, #36]                  ; 4-byte Folded Reload
	ldr	w24, [sp, #28]                  ; 4-byte Folded Reload
	b	LBB0_23
LBB0_22:
	mov	x8, #0
LBB0_23:
	orr	w10, w22, w24
	ldr	x9, [x25]
	mov	w11, #24
	madd	x11, x8, x11, x9
	ldr	w12, [x11, #8]
Lloh44:
	adrp	x11, _WM8903_MCLKDIV2@GOTPAGE
Lloh45:
	ldr	x11, [x11, _WM8903_MCLKDIV2@GOTPAGEOFF]
Lloh46:
	ldr	w11, [x11]
	cmp	w12, #2
	b.ne	LBB0_25
; %bb.24:
	ldr	w12, [sp, #40]                  ; 4-byte Folded Reload
	orr	w26, w11, w12
	ldr	w11, [x23]
	cmp	w11, #0
	cinc	w11, w11, lt
	asr	w22, w11, #1
	b	LBB0_26
LBB0_25:
	ldr	w12, [sp, #40]                  ; 4-byte Folded Reload
	bic	w26, w12, w11
	ldr	w22, [x23]
LBB0_26:
Lloh47:
	adrp	x11, _WM8903_CLK_SYS_RATE_MASK@GOTPAGE
Lloh48:
	ldr	x11, [x11, _WM8903_CLK_SYS_RATE_MASK@GOTPAGEOFF]
Lloh49:
	ldr	w11, [x11]
Lloh50:
	adrp	x12, _WM8903_CLK_SYS_MODE_MASK@GOTPAGE
Lloh51:
	ldr	x12, [x12, _WM8903_CLK_SYS_MODE_MASK@GOTPAGEOFF]
Lloh52:
	ldr	w12, [x12]
	orr	w11, w12, w11
	bic	w10, w10, w11
	mov	w11, #24
	madd	x8, x8, x11, x9
	ldr	w9, [x8]
Lloh53:
	adrp	x11, _WM8903_CLK_SYS_RATE_SHIFT@GOTPAGE
Lloh54:
	ldr	x11, [x11, _WM8903_CLK_SYS_RATE_SHIFT@GOTPAGEOFF]
Lloh55:
	ldr	w11, [x11]
	lsl	w11, w9, w11
Lloh56:
	adrp	x12, _WM8903_CLK_SYS_MODE_SHIFT@GOTPAGE
Lloh57:
	ldr	x12, [x12, _WM8903_CLK_SYS_MODE_SHIFT@GOTPAGEOFF]
	orr	w10, w11, w10
Lloh58:
	ldr	w11, [x12]
	ldp	w8, w12, [x8, #12]
	lsl	w11, w12, w11
	orr	w27, w10, w11
	stp	x12, x8, [sp, #8]
	str	x9, [sp]
Lloh59:
	adrp	x1, l_.str.4@PAGE
Lloh60:
	add	x1, x1, l_.str.4@PAGEOFF
	ldr	x21, [sp, #56]                  ; 8-byte Folded Reload
	mov	x0, x21
	bl	_dev_dbg
	str	x22, [sp]
Lloh61:
	adrp	x1, l_.str.5@PAGE
Lloh62:
	add	x1, x1, l_.str.5@PAGEOFF
	mov	x0, x21
	bl	_dev_dbg
	add	w8, w22, w22, lsl #2
	lsl	w23, w8, #1
Lloh63:
	adrp	x22, _bclk_divs@GOTPAGE
Lloh64:
	ldr	x22, [x22, _bclk_divs@GOTPAGEOFF]
	ldr	x0, [x22]
	bl	_ARRAY_SIZE
	cmp	w0, #2
	b.lt	LBB0_28
; %bb.27:
	ldr	x0, [x22]
	ldr	w8, [x0, #44]
	sdiv	w8, w23, w8
	cmp	w8, w28
	b.ge	LBB0_32
LBB0_28:
	mov	x24, #0
LBB0_29:
Lloh65:
	adrp	x8, _WM8903_BCLK_DIV_MASK@GOTPAGE
Lloh66:
	ldr	x8, [x8, _WM8903_BCLK_DIV_MASK@GOTPAGEOFF]
Lloh67:
	ldr	w8, [x8]
	ldr	w9, [sp, #48]                   ; 4-byte Folded Reload
	bic	w21, w9, w8
Lloh68:
	adrp	x8, _WM8903_LRCLK_RATE_MASK@GOTPAGE
Lloh69:
	ldr	x8, [x8, _WM8903_LRCLK_RATE_MASK@GOTPAGEOFF]
Lloh70:
	ldr	w8, [x8]
	ldr	w9, [sp, #44]                   ; 4-byte Folded Reload
	bic	w25, w9, w8
	ldr	x8, [x22]
	and	x9, x24, #0xffffffff
	add	x9, x9, w24, uxtw #1
	lsl	x24, x9, #3
	add	x8, x8, x24
	ldrsw	x8, [x8, #20]
	mov	w9, #26215
	movk	w9, #26214, lsl #16
	mul	x9, x8, x9
	lsr	x10, x9, #63
	asr	x9, x9, #34
	add	w9, w9, w10
	sdiv	w8, w23, w8
	stp	x28, x8, [sp, #8]
	str	x9, [sp]
Lloh71:
	adrp	x1, l_.str.6@PAGE
Lloh72:
	add	x1, x1, l_.str.6@PAGEOFF
	ldr	x0, [sp, #56]                   ; 8-byte Folded Reload
	bl	_dev_dbg
	ldr	x8, [x22]
	add	x8, x8, x24
	ldr	w8, [x8, #12]
	orr	w21, w8, w21
	sdiv	w8, w28, w20
	orr	w20, w8, w25
Lloh73:
	adrp	x8, _WM8903_CLOCK_RATES_0@GOTPAGE
Lloh74:
	ldr	x8, [x8, _WM8903_CLOCK_RATES_0@GOTPAGEOFF]
Lloh75:
	ldr	w1, [x8]
	mov	x0, x19
	mov	x2, x26
	bl	_snd_soc_write
Lloh76:
	adrp	x8, _WM8903_CLOCK_RATES_1@GOTPAGE
Lloh77:
	ldr	x8, [x8, _WM8903_CLOCK_RATES_1@GOTPAGEOFF]
Lloh78:
	ldr	w1, [x8]
	mov	x0, x19
	mov	x2, x27
	bl	_snd_soc_write
Lloh79:
	adrp	x8, _WM8903_AUDIO_INTERFACE_1@GOTPAGE
Lloh80:
	ldr	x8, [x8, _WM8903_AUDIO_INTERFACE_1@GOTPAGEOFF]
Lloh81:
	ldr	w1, [x8]
	mov	x0, x19
	ldr	w2, [sp, #32]                   ; 4-byte Folded Reload
	bl	_snd_soc_write
Lloh82:
	adrp	x8, _WM8903_AUDIO_INTERFACE_2@GOTPAGE
Lloh83:
	ldr	x8, [x8, _WM8903_AUDIO_INTERFACE_2@GOTPAGEOFF]
Lloh84:
	ldr	w1, [x8]
	mov	x0, x19
	mov	x2, x21
	bl	_snd_soc_write
Lloh85:
	adrp	x8, _WM8903_AUDIO_INTERFACE_3@GOTPAGE
Lloh86:
	ldr	x8, [x8, _WM8903_AUDIO_INTERFACE_3@GOTPAGEOFF]
Lloh87:
	ldr	w1, [x8]
	mov	x0, x19
	mov	x2, x20
	bl	_snd_soc_write
Lloh88:
	adrp	x8, _WM8903_DAC_DIGITAL_1@GOTPAGE
Lloh89:
	ldr	x8, [x8, _WM8903_DAC_DIGITAL_1@GOTPAGEOFF]
Lloh90:
	ldr	w1, [x8]
	mov	x0, x19
	ldr	w2, [sp, #52]                   ; 4-byte Folded Reload
	bl	_snd_soc_write
LBB0_30:
	mov	w0, #0
LBB0_31:
	ldp	x29, x30, [sp, #144]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #128]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #112]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #96]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #80]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #64]             ; 16-byte Folded Reload
	add	sp, sp, #160
	ret
LBB0_32:
	mov	w25, #1
	mov	w21, #68
LBB0_33:                                ; =>This Inner Loop Header: Depth=1
	mov	x24, x25
	add	x25, x25, #1
	bl	_ARRAY_SIZE
	cmp	x25, w0, sxtw
	b.ge	LBB0_29
; %bb.34:                               ;   in Loop: Header=BB0_33 Depth=1
	ldr	x0, [x22]
	ldr	w8, [x0, x21]
	sdiv	w8, w23, w8
	add	x21, x21, #24
	cmp	w8, w28
	b.ge	LBB0_33
	b	LBB0_29
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh21, Lloh22
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpAdd	Lloh23, Lloh24
	.loh AdrpAdd	Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpAdd	Lloh27, Lloh28
	.loh AdrpAdd	Lloh35, Lloh36
	.loh AdrpLdrGotLdr	Lloh37, Lloh38, Lloh39
	.loh AdrpLdrGot	Lloh42, Lloh43
	.loh AdrpAdd	Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh44, Lloh45, Lloh46
	.loh AdrpLdrGot	Lloh63, Lloh64
	.loh AdrpAdd	Lloh61, Lloh62
	.loh AdrpAdd	Lloh59, Lloh60
	.loh AdrpLdrGotLdr	Lloh56, Lloh57, Lloh58
	.loh AdrpLdrGotLdr	Lloh53, Lloh54, Lloh55
	.loh AdrpLdrGotLdr	Lloh50, Lloh51, Lloh52
	.loh AdrpLdrGotLdr	Lloh47, Lloh48, Lloh49
	.loh AdrpLdrGotLdr	Lloh88, Lloh89, Lloh90
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpLdrGotLdr	Lloh82, Lloh83, Lloh84
	.loh AdrpLdrGotLdr	Lloh79, Lloh80, Lloh81
	.loh AdrpLdrGotLdr	Lloh76, Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh73, Lloh74, Lloh75
	.loh AdrpAdd	Lloh71, Lloh72
	.loh AdrpLdrGotLdr	Lloh68, Lloh69, Lloh70
	.loh AdrpLdrGotLdr	Lloh65, Lloh66, Lloh67
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_12-LBB0_12)>>2
	.byte	(LBB0_14-LBB0_12)>>2
	.byte	(LBB0_15-LBB0_12)>>2
	.byte	(LBB0_17-LBB0_12)>>2
                                        ; -- End function
	.comm	_WM8903_AUDIO_INTERFACE_1,4,2   ; @WM8903_AUDIO_INTERFACE_1
	.comm	_WM8903_AUDIO_INTERFACE_2,4,2   ; @WM8903_AUDIO_INTERFACE_2
	.comm	_WM8903_AUDIO_INTERFACE_3,4,2   ; @WM8903_AUDIO_INTERFACE_3
	.comm	_WM8903_CLOCK_RATES_0,4,2       ; @WM8903_CLOCK_RATES_0
	.comm	_WM8903_CLOCK_RATES_1,4,2       ; @WM8903_CLOCK_RATES_1
	.comm	_WM8903_DAC_DIGITAL_1,4,2       ; @WM8903_DAC_DIGITAL_1
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Ignoring hw_params for slave substream\n"

	.comm	_WM8903_DAC_SB_FILT,4,2         ; @WM8903_DAC_SB_FILT
	.comm	_sample_rates,8,3               ; @sample_rates
l_.str.1:                               ; @.str.1
	.asciz	"%dHz unsupported by ADC\n"

	.comm	_EINVAL,4,2                     ; @EINVAL
l_.str.2:                               ; @.str.2
	.asciz	"DSP fs = %dHz\n"

	.comm	_WM8903_SAMPLE_RATE_MASK,4,2    ; @WM8903_SAMPLE_RATE_MASK
	.comm	_WM8903_AIF_WL_MASK,4,2         ; @WM8903_AIF_WL_MASK
l_.str.3:                               ; @.str.3
	.asciz	"MCLK = %dHz, target sample rate = %dHz\n"

	.comm	_clk_sys_ratios,8,3             ; @clk_sys_ratios
	.comm	_WM8903_MCLKDIV2,4,2            ; @WM8903_MCLKDIV2
	.comm	_WM8903_CLK_SYS_RATE_MASK,4,2   ; @WM8903_CLK_SYS_RATE_MASK
	.comm	_WM8903_CLK_SYS_MODE_MASK,4,2   ; @WM8903_CLK_SYS_MODE_MASK
	.comm	_WM8903_CLK_SYS_RATE_SHIFT,4,2  ; @WM8903_CLK_SYS_RATE_SHIFT
	.comm	_WM8903_CLK_SYS_MODE_SHIFT,4,2  ; @WM8903_CLK_SYS_MODE_SHIFT
l_.str.4:                               ; @.str.4
	.asciz	"CLK_SYS_RATE=%x, CLK_SYS_MODE=%x div=%d\n"

l_.str.5:                               ; @.str.5
	.asciz	"Actual CLK_SYS = %dHz\n"

	.comm	_bclk_divs,8,3                  ; @bclk_divs
	.comm	_WM8903_BCLK_DIV_MASK,4,2       ; @WM8903_BCLK_DIV_MASK
	.comm	_WM8903_LRCLK_RATE_MASK,4,2     ; @WM8903_LRCLK_RATE_MASK
l_.str.6:                               ; @.str.6
	.asciz	"BCLK ratio %d for %dHz - actual BCLK = %dHz\n"

	.no_dead_strip	_wm8903_hw_params
.subsections_via_symbols
