	.file	"extr_spi-rockchip.c_rockchip_spi_transfer_one.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"No buffer for transfer\n"
.LC1:
	.string	"Transfer is too long (%d)\n"
	.text
	.p2align 4
	.type	rockchip_spi_transfer_one, @function
rockchip_spi_transfer_one:
.LFB0:
	.cfi_startproc
	endbr64
	push	r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	mov	r14, rsi
	push	r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	mov	r13, rdi
	push	r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	push	rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	mov	rbp, rdx
	push	rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	call	spi_master_get_devdata@PLT
	mov	rdi, QWORD PTR ROCKCHIP_SPI_SSIENR[rip]
	add	rdi, QWORD PTR 8[rax]
	mov	r12, rax
	call	readl_relaxed@PLT
	mov	edi, eax
	test	eax, eax
	jne	.L19
.L2:
	call	WARN_ON@PLT
	mov	edx, DWORD PTR 12[rbp]
	test	edx, edx
	jne	.L3
	mov	eax, DWORD PTR 8[rbp]
	test	eax, eax
	je	.L20
.L3:
	mov	edx, DWORD PTR 4[rbp]
	cmp	edx, DWORD PTR ROCKCHIP_SPI_MAX_TRANLEN[rip]
	jg	.L21
	xor	eax, eax
	cmp	DWORD PTR 0[rbp], 8
	setg	al
	add	eax, 1
	mov	DWORD PTR [r12], eax
	mov	rax, QWORD PTR 0[r13]
	test	rax, rax
	je	.L22
	mov	rdx, rbp
	mov	rsi, r14
	mov	rdi, r13
	call	rax
	mov	rdx, rbp
	mov	rsi, r14
	mov	rdi, r12
	mov	ebx, eax
	mov	ecx, eax
	call	rockchip_spi_config@PLT
	test	ebx, ebx
	je	.L8
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	rdx, rbp
	mov	rsi, r13
	pop	rbp
	.cfi_def_cfa_offset 32
	mov	rdi, r12
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	jmp	rockchip_spi_prepare_dma@PLT
	.p2align 4,,10
	.p2align 3
.L22:
	.cfi_restore_state
	xor	ecx, ecx
	mov	rdx, rbp
	mov	rsi, r14
	mov	rdi, r12
	call	rockchip_spi_config@PLT
.L8:
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	rsi, rbp
	mov	rdi, r12
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	jmp	rockchip_spi_prepare_irq@PLT
	.p2align 4,,10
	.p2align 3
.L19:
	.cfi_restore_state
	mov	rdi, QWORD PTR ROCKCHIP_SPI_SR[rip]
	add	rdi, QWORD PTR 8[r12]
	call	readl_relaxed@PLT
	xor	edi, edi
	test	DWORD PTR SR_BUSY[rip], eax
	setne	dil
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L20:
	mov	edi, DWORD PTR 4[r12]
	lea	rsi, .LC0[rip]
	xor	eax, eax
	call	dev_err@PLT
	mov	eax, DWORD PTR EINVAL[rip]
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	neg	eax
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L21:
	.cfi_restore_state
	mov	edi, DWORD PTR 4[r12]
	lea	rsi, .LC1[rip]
	xor	eax, eax
	call	dev_err@PLT
	mov	eax, DWORD PTR EINVAL[rip]
	pop	rbx
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	neg	eax
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	rockchip_spi_transfer_one, .-rockchip_spi_transfer_one
	.comm	SR_BUSY,4,4
	.comm	ROCKCHIP_SPI_SSIENR,8,8
	.comm	ROCKCHIP_SPI_SR,8,8
	.comm	ROCKCHIP_SPI_MAX_TRANLEN,4,4
	.comm	EINVAL,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_spi-rockchip.c_rockchip_spi_transfer_one.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"No buffer for transfer\012\000"
	.align	2
.LC1:
	.ascii	"Transfer is too long (%d)\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	rockchip_spi_transfer_one, %function
rockchip_spi_transfer_one:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, lr}
	mov	r7, r1
	mov	r4, r2
	mov	r6, r0
	bl	spi_master_get_devdata
	ldr	r3, .L22
	mov	r5, r0
	ldr	r3, [r3]
	ldr	r0, [r0, #8]
	add	r0, r0, r3
	bl	readl_relaxed
	cmp	r0, #0
	bne	.L18
.L2:
	bl	WARN_ON
	ldr	r3, [r4, #12]
	cmp	r3, #0
	bne	.L3
	ldr	r3, [r4, #8]
	cmp	r3, #0
	beq	.L19
.L3:
	ldr	r3, .L22+4
	ldr	r2, [r4, #4]
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L20
	ldr	r2, [r4]
	ldr	r3, [r6]
	cmp	r2, #9
	movlt	r2, #1
	movge	r2, #2
	cmp	r3, #0
	str	r2, [r5]
	beq	.L21
	mov	r2, r4
	mov	r1, r7
	mov	r0, r6
	blx	r3
	mov	r8, r0
	mov	r3, r0
	mov	r1, r7
	mov	r2, r4
	mov	r0, r5
	bl	rockchip_spi_config
	cmp	r8, #0
	beq	.L8
	mov	r2, r4
	mov	r1, r6
	mov	r0, r5
	pop	{r4, r5, r6, r7, r8, lr}
	b	rockchip_spi_prepare_dma
.L21:
	mov	r1, r7
	mov	r2, r4
	mov	r0, r5
	bl	rockchip_spi_config
.L8:
	mov	r1, r4
	mov	r0, r5
	pop	{r4, r5, r6, r7, r8, lr}
	b	rockchip_spi_prepare_irq
.L18:
	ldr	r3, .L22+8
	ldr	r0, [r5, #8]
	ldr	r3, [r3]
	add	r0, r0, r3
	bl	readl_relaxed
	ldr	r3, .L22+12
	ldr	r3, [r3]
	tst	r0, r3
	movne	r0, #1
	moveq	r0, #0
	b	.L2
.L19:
	ldr	r0, [r5, #4]
	ldr	r1, .L22+16
	bl	dev_err
	ldr	r3, .L22+20
	ldr	r0, [r3]
	rsb	r0, r0, #0
	pop	{r4, r5, r6, r7, r8, pc}
.L20:
	ldr	r0, [r5, #4]
	ldr	r1, .L22+24
	bl	dev_err
	ldr	r3, .L22+20
	ldr	r0, [r3]
	rsb	r0, r0, #0
	pop	{r4, r5, r6, r7, r8, pc}
.L23:
	.align	2
.L22:
	.word	ROCKCHIP_SPI_SSIENR
	.word	ROCKCHIP_SPI_MAX_TRANLEN
	.word	ROCKCHIP_SPI_SR
	.word	SR_BUSY
	.word	.LC0
	.word	EINVAL
	.word	.LC1
	.size	rockchip_spi_transfer_one, .-rockchip_spi_transfer_one
	.comm	SR_BUSY,4,4
	.comm	ROCKCHIP_SPI_SSIENR,4,4
	.comm	ROCKCHIP_SPI_SR,4,4
	.comm	ROCKCHIP_SPI_MAX_TRANLEN,4,4
	.comm	EINVAL,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
