	.file	"extr_ivtv-yuv.c_ivtv_yuv_close.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"ivtv_yuv_close\n"
	.text
	.p2align 4
	.globl	ivtv_yuv_close
	.type	ivtv_yuv_close, @function
ivtv_yuv_close:
.LFB0:
	.cfi_startproc
	endbr64
	push	r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	push	rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	mov	rbp, rdi
	lea	rdi, .LC0[rip]
	lea	r12, 8[rbp]
	sub	rsp, 8
	.cfi_def_cfa_offset 32
	call	IVTV_DEBUG_YUV@PLT
	mov	rdi, r12
	call	mutex_unlock@PLT
	lea	rdi, 12[rbp]
	call	ivtv_waitq@PLT
	mov	rdi, r12
	call	mutex_lock@PLT
	lea	rdi, 220[rbp]
	mov	esi, -1
	mov	QWORD PTR 224[rbp], 0
	call	atomic_set@PLT
	xor	esi, esi
	lea	rdi, 216[rbp]
	call	atomic_set@PLT
	mov	edi, DWORD PTR 16[rbp]
	mov	esi, 10392
	or	edi, 16777216
	call	write_reg@PLT
	mov	edi, DWORD PTR 20[rbp]
	mov	esi, 10292
	call	write_reg@PLT
	mov	edi, DWORD PTR 24[rbp]
	mov	esi, 10296
	call	write_reg@PLT
	mov	edi, DWORD PTR 28[rbp]
	mov	esi, 10300
	call	write_reg@PLT
	mov	edi, DWORD PTR 32[rbp]
	mov	esi, 10304
	call	write_reg@PLT
	mov	edi, DWORD PTR 36[rbp]
	mov	esi, 10308
	call	write_reg@PLT
	mov	edi, DWORD PTR 40[rbp]
	mov	esi, 10312
	call	write_reg@PLT
	mov	edi, DWORD PTR 44[rbp]
	mov	esi, 10324
	call	write_reg@PLT
	mov	edi, DWORD PTR 48[rbp]
	mov	esi, 10332
	call	write_reg@PLT
	mov	edi, DWORD PTR 52[rbp]
	mov	esi, 10340
	call	write_reg@PLT
	mov	edi, DWORD PTR 56[rbp]
	mov	esi, 10352
	call	write_reg@PLT
	mov	edi, DWORD PTR 60[rbp]
	mov	esi, 10356
	call	write_reg@PLT
	mov	edi, DWORD PTR 64[rbp]
	mov	esi, 10384
	call	write_reg@PLT
	mov	edi, DWORD PTR 68[rbp]
	mov	esi, 10396
	call	write_reg@PLT
	mov	edi, DWORD PTR 72[rbp]
	mov	esi, 10520
	call	write_reg@PLT
	mov	edi, DWORD PTR 76[rbp]
	mov	esi, 10524
	call	write_reg@PLT
	mov	edi, DWORD PTR 80[rbp]
	mov	esi, 10528
	call	write_reg@PLT
	mov	edi, DWORD PTR 84[rbp]
	mov	esi, 10532
	call	write_reg@PLT
	mov	edi, DWORD PTR 88[rbp]
	mov	esi, 10536
	call	write_reg@PLT
	mov	edi, DWORD PTR 92[rbp]
	mov	esi, 10540
	call	write_reg@PLT
	mov	edi, DWORD PTR 96[rbp]
	mov	esi, 10544
	call	write_reg@PLT
	mov	edi, DWORD PTR 100[rbp]
	mov	esi, 10548
	call	write_reg@PLT
	mov	edi, DWORD PTR 104[rbp]
	mov	esi, 10552
	call	write_reg@PLT
	mov	edi, DWORD PTR 108[rbp]
	mov	esi, 10556
	call	write_reg@PLT
	mov	edi, DWORD PTR 112[rbp]
	mov	esi, 10560
	call	write_reg@PLT
	mov	edi, DWORD PTR 116[rbp]
	mov	esi, 10564
	call	write_reg@PLT
	mov	edi, DWORD PTR 120[rbp]
	mov	esi, 10568
	call	write_reg@PLT
	mov	edi, DWORD PTR 124[rbp]
	mov	esi, 10572
	call	write_reg@PLT
	mov	edi, DWORD PTR 128[rbp]
	mov	esi, 10576
	call	write_reg@PLT
	mov	edi, DWORD PTR 132[rbp]
	mov	esi, 10580
	call	write_reg@PLT
	mov	edi, DWORD PTR 136[rbp]
	mov	esi, 10584
	call	write_reg@PLT
	mov	edi, DWORD PTR 140[rbp]
	mov	esi, 10588
	call	write_reg@PLT
	mov	edi, DWORD PTR 144[rbp]
	mov	esi, 10592
	call	write_reg@PLT
	mov	edi, DWORD PTR 148[rbp]
	mov	esi, 10596
	call	write_reg@PLT
	mov	edi, DWORD PTR 152[rbp]
	mov	esi, 10600
	call	write_reg@PLT
	mov	edi, DWORD PTR 156[rbp]
	mov	esi, 10604
	call	write_reg@PLT
	mov	edi, DWORD PTR 160[rbp]
	mov	esi, 10608
	call	write_reg@PLT
	mov	eax, DWORD PTR 20[rbp]
	xor	esi, esi
	mov	ecx, eax
	movzx	edx, ax
	sar	ecx, 16
	cmp	edx, ecx
	je	.L2
	sal	eax, 16
	cdq
	idiv	ecx
	mov	esi, eax
	sar	eax, 16
	sar	esi, 15
	and	esi, 1
	add	eax, esi
	sete	sil
	movzx	esi, sil
	add	esi, eax
.L2:
	mov	eax, DWORD PTR 72[rbp]
	mov	ecx, eax
	movzx	edx, ax
	sar	ecx, 16
	cmp	edx, ecx
	je	.L6
	sal	eax, 16
	cdq
	idiv	ecx
	mov	edx, eax
	sar	eax, 16
	sar	edx, 15
	and	edx, 1
	add	eax, edx
	sete	dl
	movzx	edx, dl
	add	edx, eax
	mov	ecx, edx
.L3:
	mov	rdi, rbp
	call	ivtv_yuv_filter@PLT
	mov	esi, 10260
	xor	edi, edi
	call	write_reg@PLT
	mov	esi, 10284
	xor	edi, edi
	call	write_reg@PLT
	mov	esi, 10500
	xor	edi, edi
	call	write_reg@PLT
	xor	edi, edi
	mov	esi, 10512
	call	write_reg@PLT
	mov	rdi, QWORD PTR 208[rbp]
	test	rdi, rdi
	je	.L4
	call	kfree@PLT
	mov	esi, DWORD PTR 200[rbp]
	mov	edi, DWORD PTR 4[rbp]
	mov	QWORD PTR 208[rbp], 0
	mov	ecx, DWORD PTR PCI_DMA_TODEVICE[rip]
	mov	edx, 11520
	call	pci_unmap_single@PLT
.L4:
	mov	QWORD PTR 192[rbp], 0
	mov	rsi, rbp
	mov	edi, DWORD PTR IVTV_F_I_DECODING_YUV[rip]
	mov	QWORD PTR 184[rbp], 0
	mov	QWORD PTR 176[rbp], 0
	mov	QWORD PTR 168[rbp], 0
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	pop	rbp
	.cfi_def_cfa_offset 16
	pop	r12
	.cfi_def_cfa_offset 8
	jmp	clear_bit@PLT
	.p2align 4,,10
	.p2align 3
.L6:
	.cfi_restore_state
	mov	ecx, 1
	xor	edx, edx
	jmp	.L3
	.cfi_endproc
.LFE0:
	.size	ivtv_yuv_close, .-ivtv_yuv_close
	.comm	PCI_DMA_TODEVICE,4,4
	.comm	IVTV_F_I_DECODING_YUV,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_ivtv-yuv.c_ivtv_yuv_close.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"ivtv_yuv_close\012\000"
	.global	__aeabi_idiv
	.text
	.align	2
	.global	ivtv_yuv_close
	.syntax unified
	.arm
	.fpu softvfp
	.type	ivtv_yuv_close, %function
ivtv_yuv_close:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, lr}
	mov	r4, r0
	mov	r5, #0
	add	r6, r0, #8
	ldr	r0, .L12
	bl	IVTV_DEBUG_YUV
	mov	r0, r6
	bl	mutex_unlock
	add	r0, r4, #12
	bl	ivtv_waitq
	mov	r0, r6
	bl	mutex_lock
	mvn	r1, #0
	str	r5, [r4, #196]
	add	r0, r4, #192
	bl	atomic_set
	mov	r1, r5
	add	r0, r4, #188
	bl	atomic_set
	ldr	r0, [r4, #16]
	ldr	r1, .L12+4
	orr	r0, r0, #16777216
	bl	write_reg
	ldr	r1, .L12+8
	ldr	r0, [r4, #20]
	bl	write_reg
	ldr	r1, .L12+12
	ldr	r0, [r4, #24]
	bl	write_reg
	ldr	r1, .L12+16
	ldr	r0, [r4, #28]
	bl	write_reg
	mov	r1, #10304
	ldr	r0, [r4, #32]
	bl	write_reg
	ldr	r1, .L12+20
	ldr	r0, [r4, #36]
	bl	write_reg
	ldr	r1, .L12+24
	ldr	r0, [r4, #40]
	bl	write_reg
	ldr	r1, .L12+28
	ldr	r0, [r4, #44]
	bl	write_reg
	ldr	r1, .L12+32
	ldr	r0, [r4, #48]
	bl	write_reg
	ldr	r1, .L12+36
	ldr	r0, [r4, #52]
	bl	write_reg
	ldr	r1, .L12+40
	ldr	r0, [r4, #56]
	bl	write_reg
	ldr	r1, .L12+44
	ldr	r0, [r4, #60]
	bl	write_reg
	ldr	r1, .L12+48
	ldr	r0, [r4, #64]
	bl	write_reg
	ldr	r1, .L12+52
	ldr	r0, [r4, #68]
	bl	write_reg
	ldr	r1, .L12+56
	ldr	r0, [r4, #72]
	bl	write_reg
	ldr	r1, .L12+60
	ldr	r0, [r4, #76]
	bl	write_reg
	ldr	r1, .L12+64
	ldr	r0, [r4, #80]
	bl	write_reg
	ldr	r1, .L12+68
	ldr	r0, [r4, #84]
	bl	write_reg
	ldr	r1, .L12+72
	ldr	r0, [r4, #88]
	bl	write_reg
	ldr	r1, .L12+76
	ldr	r0, [r4, #92]
	bl	write_reg
	ldr	r1, .L12+80
	ldr	r0, [r4, #96]
	bl	write_reg
	ldr	r1, .L12+84
	ldr	r0, [r4, #100]
	bl	write_reg
	ldr	r1, .L12+88
	ldr	r0, [r4, #104]
	bl	write_reg
	ldr	r1, .L12+92
	ldr	r0, [r4, #108]
	bl	write_reg
	mov	r1, #10560
	ldr	r0, [r4, #112]
	bl	write_reg
	ldr	r1, .L12+96
	ldr	r0, [r4, #116]
	bl	write_reg
	ldr	r1, .L12+100
	ldr	r0, [r4, #120]
	bl	write_reg
	ldr	r1, .L12+104
	ldr	r0, [r4, #124]
	bl	write_reg
	ldr	r1, .L12+108
	ldr	r0, [r4, #128]
	bl	write_reg
	ldr	r1, .L12+112
	ldr	r0, [r4, #132]
	bl	write_reg
	ldr	r1, .L12+116
	ldr	r0, [r4, #136]
	bl	write_reg
	ldr	r1, .L12+120
	ldr	r0, [r4, #140]
	bl	write_reg
	ldr	r1, .L12+124
	ldr	r0, [r4, #144]
	bl	write_reg
	ldr	r1, .L12+128
	ldr	r0, [r4, #148]
	bl	write_reg
	ldr	r1, .L12+132
	ldr	r0, [r4, #152]
	bl	write_reg
	ldr	r1, .L12+136
	ldr	r0, [r4, #156]
	bl	write_reg
	ldr	r0, [r4, #160]
	ldr	r1, .L12+140
	bl	write_reg
	ldr	r0, [r4, #20]
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	cmp	r3, r0, asr #16
	beq	.L2
	asr	r1, r0, #16
	lsl	r0, r0, #16
	bl	__aeabi_idiv
	asr	r3, r0, #15
	and	r5, r3, #1
	adds	r5, r5, r0, asr #16
	moveq	r0, #1
	movne	r0, #0
	add	r5, r0, r5
.L2:
	ldr	r0, [r4, #72]
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	cmp	r3, r0, asr #16
	asr	r1, r0, #16
	beq	.L6
	lsl	r0, r0, #16
	bl	__aeabi_idiv
	asr	r3, r0, #15
	and	r2, r3, #1
	adds	r2, r2, r0, asr #16
	moveq	r0, #1
	movne	r0, #0
	add	r2, r0, r2
	mov	r3, r2
.L3:
	mov	r1, r5
	mov	r0, r4
	bl	ivtv_yuv_filter
	ldr	r1, .L12+144
	mov	r0, #0
	bl	write_reg
	ldr	r1, .L12+148
	mov	r0, #0
	bl	write_reg
	ldr	r1, .L12+152
	mov	r0, #0
	bl	write_reg
	mov	r0, #0
	ldr	r1, .L12+156
	bl	write_reg
	ldr	r0, [r4, #184]
	cmp	r0, #0
	beq	.L4
	bl	kfree
	mov	r2, #0
	ldr	r3, .L12+160
	str	r2, [r4, #184]
	ldr	r3, [r3]
	mov	r2, #11520
	ldr	r1, [r4, #180]
	ldr	r0, [r4, #4]
	bl	pci_unmap_single
.L4:
	mov	r3, #0
	ldr	r2, .L12+164
	mov	r1, r4
	str	r3, [r4, #176]
	str	r3, [r4, #172]
	str	r3, [r4, #168]
	str	r3, [r4, #164]
	ldr	r0, [r2]
	pop	{r4, r5, r6, lr}
	b	clear_bit
.L6:
	mov	r3, #1
	mov	r2, #0
	b	.L3
.L13:
	.align	2
.L12:
	.word	.LC0
	.word	10392
	.word	10292
	.word	10296
	.word	10300
	.word	10308
	.word	10312
	.word	10324
	.word	10332
	.word	10340
	.word	10352
	.word	10356
	.word	10384
	.word	10396
	.word	10520
	.word	10524
	.word	10528
	.word	10532
	.word	10536
	.word	10540
	.word	10544
	.word	10548
	.word	10552
	.word	10556
	.word	10564
	.word	10568
	.word	10572
	.word	10576
	.word	10580
	.word	10584
	.word	10588
	.word	10592
	.word	10596
	.word	10600
	.word	10604
	.word	10608
	.word	10260
	.word	10284
	.word	10500
	.word	10512
	.word	PCI_DMA_TODEVICE
	.word	IVTV_F_I_DECODING_YUV
	.size	ivtv_yuv_close, .-ivtv_yuv_close
	.comm	PCI_DMA_TODEVICE,4,4
	.comm	IVTV_F_I_DECODING_YUV,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
