	.file	"extr_dwc3-st.c_st_dwc3_probe.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"reg-glue"
.LC1:
	.string	"st,syscfg"
.LC2:
	.string	"syscfg-reg"
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC3:
	.string	"glue-logic addr 0x%pK, syscfg-reg offset 0x%x\n"
	.section	.rodata.str1.1
.LC4:
	.string	"powerdown"
	.section	.rodata.str1.8
	.align 8
.LC5:
	.string	"could not get power controller\n"
	.section	.rodata.str1.1
.LC6:
	.string	"softreset"
	.section	.rodata.str1.8
	.align 8
.LC7:
	.string	"could not get reset controller\n"
	.section	.rodata.str1.1
.LC8:
	.string	"dwc3"
	.section	.rodata.str1.8
	.align 8
.LC9:
	.string	"failed to find dwc3 core node\n"
	.section	.rodata.str1.1
.LC10:
	.string	"failed to add dwc3 core\n"
	.section	.rodata.str1.8
	.align 8
.LC11:
	.string	"failed to find dwc3 core device\n"
	.section	.rodata.str1.1
.LC12:
	.string	"drd initialisation failed\n"
	.text
	.p2align 4
	.type	st_dwc3_probe, @function
st_dwc3_probe:
.LFB0:
	.cfi_startproc
	endbr64
	push	r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	mov	esi, 48
	push	r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	push	r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	push	rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	mov	rbp, rdi
	sub	rsp, 8
	.cfi_def_cfa_offset 48
	mov	edx, DWORD PTR GFP_KERNEL[rip]
	mov	r13, QWORD PTR [rdi]
	call	devm_kzalloc@PLT
	test	rax, rax
	je	.L20
	mov	esi, DWORD PTR IORESOURCE_MEM[rip]
	lea	rdx, .LC0[rip]
	mov	rdi, rbp
	mov	r12, rax
	call	platform_get_resource_byname@PLT
	mov	rdi, rbp
	mov	rsi, rax
	call	devm_ioremap_resource@PLT
	mov	QWORD PTR 24[r12], rax
	mov	rdi, rax
	call	IS_ERR@PLT
	test	rax, rax
	jne	.L21
	mov	rdi, r13
	lea	rsi, .LC1[rip]
	call	syscon_regmap_lookup_by_phandle@PLT
	mov	rdi, rax
	mov	r14, rax
	call	IS_ERR@PLT
	test	rax, rax
	jne	.L22
	mov	QWORD PTR 40[r12], rbp
	mov	esi, DWORD PTR IORESOURCE_MEM[rip]
	mov	rdi, rbp
	lea	rdx, .LC2[rip]
	mov	QWORD PTR 32[r12], r14
	call	platform_get_resource_byname@PLT
	test	rax, rax
	je	.L23
	mov	ecx, DWORD PTR [rax]
	mov	rdx, QWORD PTR 24[r12]
	lea	rsi, .LC3[rip]
	mov	rdi, rbp
	mov	DWORD PTR 20[r12], ecx
	call	dev_vdbg@PLT
	mov	rdi, rbp
	lea	rsi, .LC4[rip]
	call	devm_reset_control_get_exclusive@PLT
	mov	QWORD PTR [r12], rax
	mov	rdi, rax
	call	IS_ERR@PLT
	test	rax, rax
	jne	.L24
	mov	rdi, QWORD PTR [r12]
	call	reset_control_deassert@PLT
	mov	rdi, rbp
	lea	rsi, .LC6[rip]
	call	devm_reset_control_get_shared@PLT
	mov	QWORD PTR 8[r12], rax
	mov	rdi, rax
	call	IS_ERR@PLT
	test	rax, rax
	jne	.L25
	mov	rdi, QWORD PTR 8[r12]
	call	reset_control_deassert@PLT
	lea	rsi, .LC8[rip]
	mov	rdi, r13
	call	of_get_child_by_name@PLT
	mov	r14, rax
	test	rax, rax
	je	.L26
	mov	rdi, r13
	mov	rcx, rbp
	xor	edx, edx
	xor	esi, esi
	call	of_platform_populate@PLT
	mov	r13d, eax
	test	eax, eax
	jne	.L27
	mov	rdi, r14
	call	of_find_device_by_node@PLT
	mov	r13, rax
	test	rax, rax
	je	.L28
	mov	rdi, rax
	call	usb_get_dr_mode@PLT
	mov	rdi, r14
	mov	DWORD PTR 16[r12], eax
	call	of_node_put@PLT
	mov	rdi, r13
	call	of_dev_put@PLT
	mov	rdi, r12
	call	st_dwc3_drd_init@PLT
	mov	r13d, eax
	test	eax, eax
	jne	.L29
	mov	rdi, r12
	call	st_dwc3_init@PLT
	mov	rsi, r12
	mov	rdi, rbp
	call	platform_set_drvdata@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L21:
	mov	rdi, QWORD PTR 24[r12]
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	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	PTR_ERR@PLT
	.p2align 4,,10
	.p2align 3
.L20:
	.cfi_restore_state
	mov	r13d, DWORD PTR ENOMEM[rip]
	neg	r13d
.L1:
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	eax, r13d
	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
	ret
	.p2align 4,,10
	.p2align 3
.L24:
	.cfi_restore_state
	lea	rsi, .LC5[rip]
	mov	rdi, rbp
	call	dev_err@PLT
	mov	rdi, QWORD PTR [r12]
	call	PTR_ERR@PLT
	mov	r13d, eax
.L7:
	mov	rdi, rbp
	call	platform_device_put@PLT
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	eax, r13d
	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
	ret
	.p2align 4,,10
	.p2align 3
.L22:
	.cfi_restore_state
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	rdi, r14
	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	PTR_ERR@PLT
	.p2align 4,,10
	.p2align 3
.L23:
	.cfi_restore_state
	mov	r13d, DWORD PTR ENXIO[rip]
	neg	r13d
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L27:
	lea	rsi, .LC10[rip]
	mov	rdi, rbp
	call	dev_err@PLT
.L12:
	mov	rdi, r14
	call	of_node_put@PLT
.L16:
	mov	rdi, QWORD PTR 8[r12]
	call	reset_control_assert@PLT
.L10:
	mov	rdi, QWORD PTR [r12]
	call	reset_control_assert@PLT
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L25:
	lea	rsi, .LC7[rip]
	mov	rdi, rbp
	call	dev_err@PLT
	mov	rdi, QWORD PTR 8[r12]
	call	PTR_ERR@PLT
	mov	r13d, eax
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L26:
	lea	rsi, .LC9[rip]
	mov	rdi, rbp
	call	dev_err@PLT
	mov	r13d, DWORD PTR ENODEV[rip]
	neg	r13d
	jmp	.L12
	.p2align 4,,10
	.p2align 3
.L29:
	lea	rsi, .LC12[rip]
	mov	rdi, rbp
	call	dev_err@PLT
	jmp	.L16
.L28:
	lea	rsi, .LC11[rip]
	mov	rdi, rbp
	call	dev_err@PLT
	mov	r13d, DWORD PTR ENODEV[rip]
	neg	r13d
	jmp	.L12
	.cfi_endproc
.LFE0:
	.size	st_dwc3_probe, .-st_dwc3_probe
	.comm	IORESOURCE_MEM,4,4
	.comm	GFP_KERNEL,4,4
	.comm	ENXIO,4,4
	.comm	ENOMEM,4,4
	.comm	ENODEV,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_dwc3-st.c_st_dwc3_probe.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"reg-glue\000"
	.align	2
.LC1:
	.ascii	"st,syscfg\000"
	.align	2
.LC2:
	.ascii	"syscfg-reg\000"
	.align	2
.LC3:
	.ascii	"glue-logic addr 0x%pK, syscfg-reg offset 0x%x\012\000"
	.align	2
.LC4:
	.ascii	"powerdown\000"
	.align	2
.LC5:
	.ascii	"could not get power controller\012\000"
	.align	2
.LC6:
	.ascii	"softreset\000"
	.align	2
.LC7:
	.ascii	"could not get reset controller\012\000"
	.align	2
.LC8:
	.ascii	"dwc3\000"
	.align	2
.LC9:
	.ascii	"failed to find dwc3 core node\012\000"
	.align	2
.LC10:
	.ascii	"failed to add dwc3 core\012\000"
	.align	2
.LC11:
	.ascii	"failed to find dwc3 core device\012\000"
	.align	2
.LC12:
	.ascii	"drd initialisation failed\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	st_dwc3_probe, %function
st_dwc3_probe:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	ldr	r3, .L29
	push	{r4, r5, r6, r7, r8, lr}
	mov	r1, #28
	ldr	r2, [r3]
	mov	r4, r0
	ldr	r8, [r0]
	bl	devm_kzalloc
	subs	r5, r0, #0
	beq	.L20
	ldr	r7, .L29+4
	ldr	r2, .L29+8
	ldr	r1, [r7]
	mov	r0, r4
	bl	platform_get_resource_byname
	mov	r1, r0
	mov	r0, r4
	bl	devm_ioremap_resource
	str	r0, [r5, #16]
	bl	IS_ERR
	cmp	r0, #0
	bne	.L21
	ldr	r1, .L29+12
	mov	r0, r8
	bl	syscon_regmap_lookup_by_phandle
	mov	r6, r0
	bl	IS_ERR
	cmp	r0, #0
	bne	.L22
	mov	r0, r4
	ldr	r1, [r7]
	ldr	r2, .L29+16
	str	r4, [r5, #24]
	str	r6, [r5, #20]
	bl	platform_get_resource_byname
	cmp	r0, #0
	beq	.L23
	ldr	r3, [r0]
	ldr	r2, [r5, #16]
	str	r3, [r5, #12]
	ldr	r1, .L29+20
	mov	r0, r4
	bl	dev_vdbg
	ldr	r1, .L29+24
	mov	r0, r4
	bl	devm_reset_control_get_exclusive
	str	r0, [r5]
	bl	IS_ERR
	cmp	r0, #0
	bne	.L24
	ldr	r0, [r5]
	bl	reset_control_deassert
	ldr	r1, .L29+28
	mov	r0, r4
	bl	devm_reset_control_get_shared
	str	r0, [r5, #4]
	bl	IS_ERR
	subs	r6, r0, #0
	bne	.L25
	ldr	r0, [r5, #4]
	bl	reset_control_deassert
	ldr	r1, .L29+32
	mov	r0, r8
	bl	of_get_child_by_name
	subs	r7, r0, #0
	ldreq	r1, .L29+36
	beq	.L18
	mov	r2, r6
	mov	r1, r6
	mov	r0, r8
	mov	r3, r4
	bl	of_platform_populate
	subs	r6, r0, #0
	bne	.L26
	mov	r0, r7
	bl	of_find_device_by_node
	subs	r6, r0, #0
	beq	.L27
	bl	usb_get_dr_mode
	mov	r3, r0
	mov	r0, r7
	str	r3, [r5, #8]
	bl	of_node_put
	mov	r0, r6
	bl	of_dev_put
	mov	r0, r5
	bl	st_dwc3_drd_init
	subs	r6, r0, #0
	bne	.L28
	mov	r0, r5
	bl	st_dwc3_init
	mov	r1, r5
	mov	r0, r4
	bl	platform_set_drvdata
	b	.L1
.L21:
	ldr	r0, [r5, #16]
	pop	{r4, r5, r6, r7, r8, lr}
	b	PTR_ERR
.L20:
	ldr	r3, .L29+40
	ldr	r0, [r3]
	rsb	r6, r0, #0
.L1:
	mov	r0, r6
	pop	{r4, r5, r6, r7, r8, pc}
.L24:
	ldr	r1, .L29+44
	mov	r0, r4
	bl	dev_err
	ldr	r0, [r5]
	bl	PTR_ERR
	mov	r6, r0
.L7:
	mov	r0, r4
	bl	platform_device_put
	mov	r0, r6
	pop	{r4, r5, r6, r7, r8, pc}
.L22:
	mov	r0, r6
	pop	{r4, r5, r6, r7, r8, lr}
	b	PTR_ERR
.L23:
	ldr	r3, .L29+48
	ldr	r0, [r3]
	rsb	r6, r0, #0
	b	.L7
.L26:
	mov	r0, r4
	ldr	r1, .L29+52
	bl	dev_err
.L12:
	mov	r0, r7
	bl	of_node_put
.L16:
	ldr	r0, [r5, #4]
	bl	reset_control_assert
.L10:
	ldr	r0, [r5]
	bl	reset_control_assert
	b	.L7
.L25:
	ldr	r1, .L29+56
	mov	r0, r4
	bl	dev_err
	ldr	r0, [r5, #4]
	bl	PTR_ERR
	mov	r6, r0
	b	.L10
.L27:
	ldr	r1, .L29+60
.L18:
	mov	r0, r4
	bl	dev_err
	ldr	r3, .L29+64
	ldr	r6, [r3]
	rsb	r6, r6, #0
	b	.L12
.L28:
	mov	r0, r4
	ldr	r1, .L29+68
	bl	dev_err
	b	.L16
.L30:
	.align	2
.L29:
	.word	GFP_KERNEL
	.word	IORESOURCE_MEM
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC6
	.word	.LC8
	.word	.LC9
	.word	ENOMEM
	.word	.LC5
	.word	ENXIO
	.word	.LC10
	.word	.LC7
	.word	.LC11
	.word	ENODEV
	.word	.LC12
	.size	st_dwc3_probe, .-st_dwc3_probe
	.comm	IORESOURCE_MEM,4,4
	.comm	GFP_KERNEL,4,4
	.comm	ENXIO,4,4
	.comm	ENOMEM,4,4
	.comm	ENODEV,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
