	.file	"extr_da9055.c_da9055_hw_params.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	da9055_hw_params, @function
da9055_hw_params:
.LFB0:
	.cfi_startproc
	endbr64
	push	r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	push	r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	push	rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	mov	rbp, rsi
	push	rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	sub	rsp, 8
	.cfi_def_cfa_offset 48
	mov	r12, QWORD PTR [rdx]
	mov	rdi, r12
	call	snd_soc_component_get_drvdata@PLT
	mov	rdi, rbp
	mov	rbx, rax
	call	params_width@PLT
	cmp	eax, 24
	je	.L2
	jg	.L3
	cmp	eax, 16
	je	.L4
	cmp	eax, 20
	jne	.L16
	mov	ecx, DWORD PTR DA9055_AIF_WORD_S20_3LE[rip]
	.p2align 4,,10
	.p2align 3
.L8:
	mov	edx, DWORD PTR DA9055_AIF_WORD_LENGTH_MASK[rip]
	mov	esi, DWORD PTR DA9055_AIF_CTRL[rip]
	mov	rdi, r12
	call	snd_soc_component_update_bits@PLT
	mov	rdi, rbp
	call	params_rate@PLT
	cmp	eax, 32000
	je	.L10
	jg	.L11
	cmp	eax, 12000
	je	.L12
	jle	.L40
	cmp	eax, 16000
	je	.L17
	cmp	eax, 22050
	jne	.L16
	mov	edx, DWORD PTR DA9055_SR_22050[rip]
	mov	ebp, 2822400
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L11:
	cmp	eax, 88200
	je	.L19
	jle	.L41
	mov	edx, DWORD PTR DA9055_SR_96000[rip]
	mov	ebp, 3072000
	cmp	eax, 96000
	jne	.L16
.L24:
	cmp	QWORD PTR [rbx], 0
	mov	esi, DWORD PTR DA9055_SR[rip]
	je	.L25
.L38:
	mov	rdi, r12
	call	snd_soc_component_write@PLT
	mov	rax, QWORD PTR [rbx]
	mov	edx, DWORD PTR DA9055_PLL_EN[rip]
	mov	esi, DWORD PTR DA9055_PLL_CTRL[rip]
	cmp	rax, rbp
	je	.L27
	test	rax, rax
	je	.L27
	mov	r13d, DWORD PTR 8[rbx]
	test	r13d, r13d
	jne	.L28
	or	edx, DWORD PTR DA9055_PLL_SRM_EN[rip]
	mov	rdi, r12
	mov	ecx, edx
	call	snd_soc_component_update_bits@PLT
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	eax, r13d
	pop	rbx
	.cfi_def_cfa_offset 32
	pop	rbp
	.cfi_def_cfa_offset 24
	pop	r12
	.cfi_def_cfa_offset 16
	pop	r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L41:
	.cfi_restore_state
	cmp	eax, 44100
	je	.L21
	cmp	eax, 48000
	jne	.L16
	mov	edx, DWORD PTR DA9055_SR_48000[rip]
	mov	ebp, 3072000
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L3:
	mov	ecx, DWORD PTR DA9055_AIF_WORD_S32_LE[rip]
	cmp	eax, 32
	je	.L8
.L16:
	mov	r13d, DWORD PTR EINVAL[rip]
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	pop	rbx
	.cfi_def_cfa_offset 32
	pop	rbp
	.cfi_def_cfa_offset 24
	neg	r13d
	pop	r12
	.cfi_def_cfa_offset 16
	mov	eax, r13d
	pop	r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L40:
	.cfi_restore_state
	cmp	eax, 8000
	je	.L14
	cmp	eax, 11025
	jne	.L16
	mov	edx, DWORD PTR DA9055_SR_11025[rip]
	mov	ebp, 2822400
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L25:
	mov	edx, DWORD PTR DA9055_SR_48000[rip]
	jmp	.L38
	.p2align 4,,10
	.p2align 3
.L27:
	mov	rdi, r12
	xor	ecx, ecx
	xor	r13d, r13d
	call	snd_soc_component_update_bits@PLT
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	eax, r13d
	pop	rbx
	.cfi_def_cfa_offset 32
	pop	rbp
	.cfi_def_cfa_offset 24
	pop	r12
	.cfi_def_cfa_offset 16
	pop	r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4:
	.cfi_restore_state
	mov	ecx, DWORD PTR DA9055_AIF_WORD_S16_LE[rip]
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L2:
	mov	ecx, DWORD PTR DA9055_AIF_WORD_S24_LE[rip]
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L17:
	mov	edx, DWORD PTR DA9055_SR_16000[rip]
	mov	ebp, 3072000
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L21:
	mov	edx, DWORD PTR DA9055_SR_44100[rip]
	mov	ebp, 2822400
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L14:
	mov	edx, DWORD PTR DA9055_SR_8000[rip]
	mov	ebp, 3072000
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L28:
	mov	rdi, r12
	mov	ecx, edx
	xor	r13d, r13d
	call	snd_soc_component_update_bits@PLT
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	eax, r13d
	pop	rbx
	.cfi_def_cfa_offset 32
	pop	rbp
	.cfi_def_cfa_offset 24
	pop	r12
	.cfi_def_cfa_offset 16
	pop	r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	.cfi_restore_state
	mov	edx, DWORD PTR DA9055_SR_12000[rip]
	mov	ebp, 3072000
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L19:
	mov	edx, DWORD PTR DA9055_SR_88200[rip]
	mov	ebp, 2822400
	jmp	.L24
	.p2align 4,,10
	.p2align 3
.L10:
	mov	edx, DWORD PTR DA9055_SR_32000[rip]
	mov	ebp, 3072000
	jmp	.L24
	.cfi_endproc
.LFE0:
	.size	da9055_hw_params, .-da9055_hw_params
	.comm	EINVAL,4,4
	.comm	DA9055_SR_96000,4,4
	.comm	DA9055_SR_88200,4,4
	.comm	DA9055_SR_8000,4,4
	.comm	DA9055_SR_48000,4,4
	.comm	DA9055_SR_44100,4,4
	.comm	DA9055_SR_32000,4,4
	.comm	DA9055_SR_22050,4,4
	.comm	DA9055_SR_16000,4,4
	.comm	DA9055_SR_12000,4,4
	.comm	DA9055_SR_11025,4,4
	.comm	DA9055_SR,4,4
	.comm	DA9055_PLL_SRM_EN,4,4
	.comm	DA9055_PLL_EN,4,4
	.comm	DA9055_PLL_CTRL,4,4
	.comm	DA9055_AIF_WORD_S32_LE,4,4
	.comm	DA9055_AIF_WORD_S24_LE,4,4
	.comm	DA9055_AIF_WORD_S20_3LE,4,4
	.comm	DA9055_AIF_WORD_S16_LE,4,4
	.comm	DA9055_AIF_WORD_LENGTH_MASK,4,4
	.comm	DA9055_AIF_CTRL,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_da9055.c_da9055_hw_params.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	da9055_hw_params, %function
da9055_hw_params:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, lr}
	ldr	r5, [r2]
	mov	r4, r1
	mov	r0, r5
	bl	snd_soc_component_get_drvdata
	mov	r6, r0
	mov	r0, r4
	bl	params_width
	sub	r3, r0, #16
	cmp	r3, #16
	ldrls	pc, [pc, r3, asl #2]
	b	.L16
.L4:
	.word	.L7
	.word	.L16
	.word	.L16
	.word	.L16
	.word	.L6
	.word	.L16
	.word	.L16
	.word	.L16
	.word	.L5
	.word	.L16
	.word	.L16
	.word	.L16
	.word	.L16
	.word	.L16
	.word	.L16
	.word	.L16
	.word	.L3
.L16:
	ldr	r3, .L35
	ldr	r4, [r3]
	rsb	r4, r4, #0
	mov	r0, r4
	pop	{r4, r5, r6, pc}
.L3:
	ldr	r3, .L35+4
	ldr	r3, [r3]
.L8:
	ldr	r2, .L35+8
	ldr	r1, .L35+12
	ldr	r2, [r2]
	ldr	r1, [r1]
	mov	r0, r5
	bl	snd_soc_component_update_bits
	mov	r0, r4
	bl	params_rate
	cmp	r0, #32000
	beq	.L10
	bgt	.L11
	ldr	r3, .L35+16
	cmp	r0, r3
	beq	.L12
	ble	.L32
	cmp	r0, #16000
	beq	.L17
	ldr	r3, .L35+20
	cmp	r0, r3
	bne	.L16
	ldr	r3, .L35+24
	ldr	r4, .L35+28
	ldr	r2, [r3]
.L24:
	ldr	r1, [r6]
	ldr	r3, .L35+32
	cmp	r1, #0
	ldr	r1, [r3]
	ldreq	r3, .L35+36
	mov	r0, r5
	ldreq	r2, [r3]
	bl	snd_soc_component_write
	ldr	r3, [r6]
	ldr	r2, .L35+40
	cmp	r3, r4
	cmpne	r3, #0
	ldr	r3, .L35+44
	ldr	r1, [r2]
	movne	r4, #1
	moveq	r4, #0
	ldr	r2, [r3]
	bne	.L33
	mov	r0, r5
	mov	r3, r4
	bl	snd_soc_component_update_bits
	mov	r0, r4
	pop	{r4, r5, r6, pc}
.L5:
	ldr	r3, .L35+48
	ldr	r3, [r3]
	b	.L8
.L6:
	ldr	r3, .L35+52
	ldr	r3, [r3]
	b	.L8
.L7:
	ldr	r3, .L35+56
	ldr	r3, [r3]
	b	.L8
.L32:
	cmp	r0, #8000
	beq	.L14
	ldr	r3, .L35+60
	cmp	r0, r3
	bne	.L16
	ldr	r3, .L35+64
	ldr	r4, .L35+28
	ldr	r2, [r3]
	b	.L24
.L11:
	ldr	r3, .L35+68
	cmp	r0, r3
	beq	.L19
	ble	.L34
	ldr	r3, .L35+72
	cmp	r0, r3
	bne	.L16
	ldr	r3, .L35+76
	ldr	r4, .L35+80
	ldr	r2, [r3]
	b	.L24
.L34:
	ldr	r3, .L35+84
	cmp	r0, r3
	beq	.L21
	ldr	r3, .L35+88
	cmp	r0, r3
	bne	.L16
	ldr	r3, .L35+36
	ldr	r4, .L35+80
	ldr	r2, [r3]
	b	.L24
.L33:
	ldr	r4, [r6, #4]
	cmp	r4, #0
	bne	.L28
	ldr	r3, .L35+92
	mov	r0, r5
	ldr	r3, [r3]
	orr	r3, r2, r3
	mov	r2, r3
	bl	snd_soc_component_update_bits
	mov	r0, r4
	pop	{r4, r5, r6, pc}
.L28:
	mov	r4, #0
	mov	r0, r5
	mov	r3, r2
	bl	snd_soc_component_update_bits
	mov	r0, r4
	pop	{r4, r5, r6, pc}
.L19:
	ldr	r3, .L35+96
	ldr	r4, .L35+28
	ldr	r2, [r3]
	b	.L24
.L12:
	ldr	r3, .L35+100
	ldr	r4, .L35+80
	ldr	r2, [r3]
	b	.L24
.L10:
	ldr	r3, .L35+104
	ldr	r4, .L35+80
	ldr	r2, [r3]
	b	.L24
.L21:
	ldr	r3, .L35+108
	ldr	r4, .L35+28
	ldr	r2, [r3]
	b	.L24
.L14:
	ldr	r3, .L35+112
	ldr	r4, .L35+80
	ldr	r2, [r3]
	b	.L24
.L17:
	ldr	r3, .L35+116
	ldr	r4, .L35+80
	ldr	r2, [r3]
	b	.L24
.L36:
	.align	2
.L35:
	.word	EINVAL
	.word	DA9055_AIF_WORD_S32_LE
	.word	DA9055_AIF_WORD_LENGTH_MASK
	.word	DA9055_AIF_CTRL
	.word	12000
	.word	22050
	.word	DA9055_SR_22050
	.word	2822400
	.word	DA9055_SR
	.word	DA9055_SR_48000
	.word	DA9055_PLL_CTRL
	.word	DA9055_PLL_EN
	.word	DA9055_AIF_WORD_S24_LE
	.word	DA9055_AIF_WORD_S20_3LE
	.word	DA9055_AIF_WORD_S16_LE
	.word	11025
	.word	DA9055_SR_11025
	.word	88200
	.word	96000
	.word	DA9055_SR_96000
	.word	3072000
	.word	44100
	.word	48000
	.word	DA9055_PLL_SRM_EN
	.word	DA9055_SR_88200
	.word	DA9055_SR_12000
	.word	DA9055_SR_32000
	.word	DA9055_SR_44100
	.word	DA9055_SR_8000
	.word	DA9055_SR_16000
	.size	da9055_hw_params, .-da9055_hw_params
	.comm	EINVAL,4,4
	.comm	DA9055_SR_96000,4,4
	.comm	DA9055_SR_88200,4,4
	.comm	DA9055_SR_8000,4,4
	.comm	DA9055_SR_48000,4,4
	.comm	DA9055_SR_44100,4,4
	.comm	DA9055_SR_32000,4,4
	.comm	DA9055_SR_22050,4,4
	.comm	DA9055_SR_16000,4,4
	.comm	DA9055_SR_12000,4,4
	.comm	DA9055_SR_11025,4,4
	.comm	DA9055_SR,4,4
	.comm	DA9055_PLL_SRM_EN,4,4
	.comm	DA9055_PLL_EN,4,4
	.comm	DA9055_PLL_CTRL,4,4
	.comm	DA9055_AIF_WORD_S32_LE,4,4
	.comm	DA9055_AIF_WORD_S24_LE,4,4
	.comm	DA9055_AIF_WORD_S20_3LE,4,4
	.comm	DA9055_AIF_WORD_S16_LE,4,4
	.comm	DA9055_AIF_WORD_LENGTH_MASK,4,4
	.comm	DA9055_AIF_CTRL,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
