	.file	"extr_rt5670.c_rt5670_set_bias_level.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	rt5670_set_bias_level, @function
rt5670_set_bias_level:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rdi
	push	rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	mov	ebx, esi
	sub	rsp, 8
	.cfi_def_cfa_offset 32
	call	snd_soc_component_get_drvdata@PLT
	cmp	ebx, 129
	je	.L2
	cmp	ebx, 130
	je	.L3
	cmp	ebx, 128
	je	.L10
.L5:
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xor	eax, eax
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2:
	.cfi_restore_state
	mov	rdi, rbp
	call	snd_soc_component_get_bias_level@PLT
	cmp	eax, 128
	jne	.L5
	mov	esi, DWORD PTR RT5670_PWR_ANLG1[rip]
	mov	edx, DWORD PTR RT5670_PWR_VREF1[rip]
	mov	rdi, rbp
	or	edx, DWORD PTR RT5670_PWR_MB[rip]
	or	edx, DWORD PTR RT5670_PWR_BG[rip]
	or	edx, DWORD PTR RT5670_PWR_VREF2[rip]
	mov	ecx, edx
	call	snd_soc_component_update_bits@PLT
	mov	edi, 10
	call	mdelay@PLT
	mov	edx, DWORD PTR RT5670_PWR_FV1[rip]
	mov	esi, DWORD PTR RT5670_PWR_ANLG1[rip]
	mov	rdi, rbp
	or	edx, DWORD PTR RT5670_PWR_FV2[rip]
	mov	ecx, edx
	call	snd_soc_component_update_bits@PLT
	mov	esi, DWORD PTR RT5670_CHARGE_PUMP[rip]
	mov	rdi, rbp
	mov	ecx, DWORD PTR RT5670_OSW_L_DIS[rip]
	mov	edx, DWORD PTR RT5670_OSW_L_MASK[rip]
	or	ecx, DWORD PTR RT5670_OSW_R_DIS[rip]
	or	edx, DWORD PTR RT5670_OSW_R_MASK[rip]
	call	snd_soc_component_update_bits@PLT
	mov	esi, DWORD PTR RT5670_DIG_MISC[rip]
	mov	rdi, rbp
	mov	ecx, 1
	mov	edx, 1
	call	snd_soc_component_update_bits@PLT
	mov	edx, DWORD PTR RT5670_LDO_SEL_MASK[rip]
	mov	ecx, 5
	mov	rdi, rbp
	mov	esi, DWORD PTR RT5670_PWR_ANLG1[rip]
	call	snd_soc_component_update_bits@PLT
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L10:
	mov	esi, DWORD PTR RT5670_PWR_ANLG1[rip]
	mov	rdi, rbp
	mov	edx, DWORD PTR RT5670_PWR_VREF1[rip]
	xor	ecx, ecx
	or	edx, DWORD PTR RT5670_PWR_VREF2[rip]
	or	edx, DWORD PTR RT5670_PWR_FV1[rip]
	or	edx, DWORD PTR RT5670_PWR_FV2[rip]
	call	snd_soc_component_update_bits@PLT
	mov	edx, DWORD PTR RT5670_LDO_SEL_MASK[rip]
	mov	esi, DWORD PTR RT5670_PWR_ANLG1[rip]
	mov	rdi, rbp
	mov	ecx, 3
	call	snd_soc_component_update_bits@PLT
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xor	eax, eax
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3:
	.cfi_restore_state
	mov	eax, DWORD PTR [rax]
	mov	esi, DWORD PTR RT5670_PWR_VREF1[rip]
	mov	ecx, DWORD PTR RT5670_PWR_MB[rip]
	mov	r10d, DWORD PTR RT5670_PWR_BG[rip]
	mov	edx, DWORD PTR RT5670_PWR_VREF2[rip]
	mov	r9d, DWORD PTR RT5670_PWR_FV1[rip]
	mov	edi, DWORD PTR RT5670_PWR_FV2[rip]
	mov	r8d, DWORD PTR RT5670_PWR_ANLG1[rip]
	test	eax, eax
	jne	.L11
	or	esi, ecx
	xor	ecx, ecx
	or	esi, r10d
	or	edx, esi
	mov	esi, r8d
	or	edx, r9d
	or	edx, edi
	mov	rdi, rbp
	call	snd_soc_component_update_bits@PLT
.L7:
	mov	esi, DWORD PTR RT5670_DIG_MISC[rip]
	mov	rdi, rbp
	xor	ecx, ecx
	mov	edx, 1
	call	snd_soc_component_update_bits@PLT
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xor	eax, eax
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L11:
	.cfi_restore_state
	or	esi, edx
	or	ecx, r10d
	or	esi, r9d
	mov	edx, esi
	mov	esi, r8d
	or	edx, edi
	mov	rdi, rbp
	or	edx, ecx
	call	snd_soc_component_update_bits@PLT
	jmp	.L7
	.cfi_endproc
.LFE0:
	.size	rt5670_set_bias_level, .-rt5670_set_bias_level
	.comm	RT5670_PWR_VREF2,4,4
	.comm	RT5670_PWR_VREF1,4,4
	.comm	RT5670_PWR_MB,4,4
	.comm	RT5670_PWR_FV2,4,4
	.comm	RT5670_PWR_FV1,4,4
	.comm	RT5670_PWR_BG,4,4
	.comm	RT5670_PWR_ANLG1,4,4
	.comm	RT5670_OSW_R_MASK,4,4
	.comm	RT5670_OSW_R_DIS,4,4
	.comm	RT5670_OSW_L_MASK,4,4
	.comm	RT5670_OSW_L_DIS,4,4
	.comm	RT5670_LDO_SEL_MASK,4,4
	.comm	RT5670_DIG_MISC,4,4
	.comm	RT5670_CHARGE_PUMP,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_rt5670.c_rt5670_set_bias_level.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	rt5670_set_bias_level, %function
rt5670_set_bias_level:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, lr}
	mov	r4, r1
	mov	r5, r0
	bl	snd_soc_component_get_drvdata
	cmp	r4, #129
	beq	.L2
	cmp	r4, #130
	beq	.L3
	cmp	r4, #128
	beq	.L10
.L5:
	mov	r0, #0
	pop	{r4, r5, r6, pc}
.L2:
	mov	r0, r5
	bl	snd_soc_component_get_bias_level
	cmp	r0, #128
	bne	.L5
	ldr	r2, .L11
	ldr	r3, .L11+4
	ldr	r1, .L11+8
	ldr	r0, [r2]
	ldr	r3, [r3]
	ldr	r2, .L11+12
	ldr	r1, [r1]
	ldr	r2, [r2]
	orr	r3, r3, r0
	ldr	r4, .L11+16
	orr	r3, r3, r1
	orr	r3, r3, r2
	mov	r2, r3
	ldr	r1, [r4]
	mov	r0, r5
	bl	snd_soc_component_update_bits
	mov	r0, #10
	bl	mdelay
	ldr	r3, .L11+20
	ldr	r2, .L11+24
	ldr	r3, [r3]
	ldr	r2, [r2]
	ldr	r1, [r4]
	orr	r3, r3, r2
	mov	r2, r3
	mov	r0, r5
	bl	snd_soc_component_update_bits
	ldr	r0, .L11+28
	ldr	r1, .L11+32
	ldr	r3, .L11+36
	ldr	r2, .L11+40
	ldr	ip, [r0]
	ldr	r3, [r3]
	ldr	r0, [r1]
	ldr	r2, [r2]
	ldr	r1, .L11+44
	orr	r3, ip, r3
	orr	r2, r0, r2
	ldr	r1, [r1]
	mov	r0, r5
	bl	snd_soc_component_update_bits
	mov	r3, #1
	ldr	r1, .L11+48
	mov	r2, r3
	mov	r0, r5
	ldr	r1, [r1]
	bl	snd_soc_component_update_bits
	ldr	r3, .L11+52
	mov	r0, r5
	ldr	r2, [r3]
	ldr	r1, [r4]
	mov	r3, #5
	bl	snd_soc_component_update_bits
	b	.L5
.L10:
	ldr	r3, .L11+4
	ldr	r2, .L11+12
	ldr	r1, .L11+20
	ldr	r2, [r2]
	ldr	r3, [r3]
	ldr	r0, .L11+24
	ldr	r1, [r1]
	ldr	r4, .L11+16
	orr	r3, r3, r2
	ldr	r2, [r0]
	orr	r3, r3, r1
	orr	r2, r3, r2
	ldr	r1, [r4]
	mov	r3, #0
	mov	r0, r5
	bl	snd_soc_component_update_bits
	ldr	r3, .L11+52
	mov	r0, r5
	ldr	r2, [r3]
	ldr	r1, [r4]
	mov	r3, #3
	bl	snd_soc_component_update_bits
	mov	r0, #0
	pop	{r4, r5, r6, pc}
.L3:
	ldr	r2, .L11
	ldr	r3, .L11+4
	ldr	r1, .L11+8
	ldr	lr, [r2]
	ldr	r2, [r3]
	ldr	r3, .L11+12
	ldr	ip, [r1]
	ldr	r1, .L11+20
	ldr	r4, [r3]
	orr	r2, lr, r2
	ldr	r3, [r0]
	orr	r2, r2, ip
	ldr	r1, [r1]
	ldr	r0, .L11+24
	orr	r2, r2, r4
	ldr	r0, [r0]
	orr	r2, r2, r1
	ldr	r1, .L11+16
	cmp	r3, #0
	orrne	r3, lr, ip
	orr	r2, r2, r0
	ldr	r1, [r1]
	mov	r0, r5
	bl	snd_soc_component_update_bits
	ldr	r3, .L11+48
	mov	r0, r5
	ldr	r1, [r3]
	mov	r2, #1
	mov	r3, #0
	bl	snd_soc_component_update_bits
	mov	r0, #0
	pop	{r4, r5, r6, pc}
.L12:
	.align	2
.L11:
	.word	RT5670_PWR_MB
	.word	RT5670_PWR_VREF1
	.word	RT5670_PWR_BG
	.word	RT5670_PWR_VREF2
	.word	RT5670_PWR_ANLG1
	.word	RT5670_PWR_FV1
	.word	RT5670_PWR_FV2
	.word	RT5670_OSW_L_DIS
	.word	RT5670_OSW_L_MASK
	.word	RT5670_OSW_R_DIS
	.word	RT5670_OSW_R_MASK
	.word	RT5670_CHARGE_PUMP
	.word	RT5670_DIG_MISC
	.word	RT5670_LDO_SEL_MASK
	.size	rt5670_set_bias_level, .-rt5670_set_bias_level
	.comm	RT5670_PWR_VREF2,4,4
	.comm	RT5670_PWR_VREF1,4,4
	.comm	RT5670_PWR_MB,4,4
	.comm	RT5670_PWR_FV2,4,4
	.comm	RT5670_PWR_FV1,4,4
	.comm	RT5670_PWR_BG,4,4
	.comm	RT5670_PWR_ANLG1,4,4
	.comm	RT5670_OSW_R_MASK,4,4
	.comm	RT5670_OSW_R_DIS,4,4
	.comm	RT5670_OSW_L_MASK,4,4
	.comm	RT5670_OSW_L_DIS,4,4
	.comm	RT5670_LDO_SEL_MASK,4,4
	.comm	RT5670_DIG_MISC,4,4
	.comm	RT5670_CHARGE_PUMP,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
