	.file	"extr_xlnx_spdif.c_xlnx_spdif_hw_params.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	xlnx_spdif_hw_params, @function
xlnx_spdif_hw_params:
.LFB0:
	.cfi_startproc
	endbr64
	push	r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	mov	r12, rsi
	push	rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	push	rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	mov	edi, DWORD PTR [rdx]
	call	dev_get_drvdata@PLT
	mov	ebx, DWORD PTR MAX_CHANNELS[rip]
	mov	rdi, r12
	imul	ebx, DWORD PTR AES_SAMPLE_WIDTH[rip]
	mov	rbp, rax
	call	params_rate@PLT
	mov	edi, DWORD PTR 8[rbp]
	imul	ebx, eax
	mov	esi, ebx
	call	DIV_ROUND_CLOSEST@PLT
	cmp	eax, 48
	jg	.L2
	cmp	eax, 3
	jle	.L3
	sub	eax, 4
	cmp	eax, 44
	ja	.L3
	lea	rdx, .L5[rip]
	movsx	rax, DWORD PTR [rdx+rax*4]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L5:
	.long	.L10-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L9-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L12-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L7-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L6-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L3-.L5
	.long	.L4-.L5
	.text
.L12:
	mov	ebx, 2
.L8:
	mov	rdi, QWORD PTR XSPDIF_CONTROL_REG[rip]
	add	rdi, QWORD PTR 0[rbp]
	call	readl@PLT
	mov	edi, DWORD PTR XSPDIF_CLOCK_CONFIG_BITS_MASK[rip]
	mov	ecx, DWORD PTR XSPDIF_CLOCK_CONFIG_BITS_SHIFT[rip]
	mov	rsi, QWORD PTR XSPDIF_CONTROL_REG[rip]
	add	rsi, QWORD PTR 0[rbp]
	not	edi
	sal	ebx, cl
	and	edi, eax
	or	edi, ebx
	call	writel@PLT
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	xor	eax, eax
	pop	rbp
	.cfi_def_cfa_offset 16
	pop	r12
	.cfi_def_cfa_offset 8
	ret
.L9:
	.cfi_restore_state
	mov	ebx, 1
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L2:
	mov	ebx, 6
	cmp	eax, 64
	je	.L8
.L3:
	mov	eax, DWORD PTR EINVAL[rip]
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	pop	rbp
	.cfi_def_cfa_offset 16
	pop	r12
	.cfi_def_cfa_offset 8
	neg	eax
	ret
.L4:
	.cfi_restore_state
	mov	ebx, 5
	jmp	.L8
.L10:
	xor	ebx, ebx
	jmp	.L8
.L7:
	mov	ebx, 3
	jmp	.L8
.L6:
	mov	ebx, 4
	jmp	.L8
	.cfi_endproc
.LFE0:
	.size	xlnx_spdif_hw_params, .-xlnx_spdif_hw_params
	.comm	XSPDIF_CONTROL_REG,8,8
	.comm	XSPDIF_CLOCK_CONFIG_BITS_SHIFT,4,4
	.comm	XSPDIF_CLOCK_CONFIG_BITS_MASK,4,4
	.comm	MAX_CHANNELS,4,4
	.comm	EINVAL,4,4
	.comm	AES_SAMPLE_WIDTH,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_xlnx_spdif.c_xlnx_spdif_hw_params.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	xlnx_spdif_hw_params, %function
xlnx_spdif_hw_params:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, lr}
	ldr	r0, [r2]
	mov	r6, r1
	bl	dev_get_drvdata
	mov	r4, r0
	ldr	r2, .L16
	ldr	r3, .L16+4
	ldr	r5, [r2]
	ldr	r1, [r3]
	mov	r0, r6
	mul	r5, r1, r5
	ldr	r6, [r4, #4]
	bl	params_rate
	mov	r1, r0
	mov	r0, r6
	mul	r1, r5, r1
	bl	DIV_ROUND_CLOSEST
	cmp	r0, #48
	bgt	.L2
	cmp	r0, #3
	ble	.L3
	sub	r3, r0, #4
	cmp	r3, #44
	ldrls	pc, [pc, r3, asl #2]
	b	.L3
.L5:
	.word	.L10
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L9
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L12
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L7
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L6
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L4
.L12:
	mov	r5, #2
.L8:
	ldr	r6, .L16+8
	ldr	r0, [r4]
	ldr	r3, [r6]
	add	r0, r0, r3
	bl	readl
	ldr	r2, .L16+12
	ldr	r3, .L16+16
	ldr	ip, [r2]
	ldr	r1, [r4]
	ldr	r2, [r6]
	ldr	r3, [r3]
	bic	r0, r0, ip
	add	r1, r1, r2
	orr	r0, r0, r5, lsl r3
	bl	writel
	mov	r0, #0
	pop	{r4, r5, r6, pc}
.L9:
	mov	r5, #1
	b	.L8
.L2:
	cmp	r0, #64
	moveq	r5, #6
	beq	.L8
.L3:
	ldr	r3, .L16+20
	ldr	r0, [r3]
	rsb	r0, r0, #0
	pop	{r4, r5, r6, pc}
.L4:
	mov	r5, #5
	b	.L8
.L10:
	mov	r5, #0
	b	.L8
.L7:
	mov	r5, #3
	b	.L8
.L6:
	mov	r5, #4
	b	.L8
.L17:
	.align	2
.L16:
	.word	MAX_CHANNELS
	.word	AES_SAMPLE_WIDTH
	.word	XSPDIF_CONTROL_REG
	.word	XSPDIF_CLOCK_CONFIG_BITS_MASK
	.word	XSPDIF_CLOCK_CONFIG_BITS_SHIFT
	.word	EINVAL
	.size	xlnx_spdif_hw_params, .-xlnx_spdif_hw_params
	.comm	XSPDIF_CONTROL_REG,4,4
	.comm	XSPDIF_CLOCK_CONFIG_BITS_SHIFT,4,4
	.comm	XSPDIF_CLOCK_CONFIG_BITS_MASK,4,4
	.comm	MAX_CHANNELS,4,4
	.comm	EINVAL,4,4
	.comm	AES_SAMPLE_WIDTH,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
