	.file	"extr_leds-aat1290.c_init_mm_current_scale.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	init_mm_current_scale, @function
init_mm_current_scale:
.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
	sub	rsp, 8
	.cfi_def_cfa_offset 32
	mov	edi, DWORD PTR [rsi]
	call	AAT1290_MAX_MM_CURRENT@PLT
	mov	rdi, QWORD PTR 8[rbp]
	mov	edx, DWORD PTR GFP_KERNEL[rip]
	mov	esi, 60
	mov	ebx, eax
	call	devm_kzalloc@PLT
	mov	QWORD PTR 0[rbp], rax
	test	rax, rax
	je	.L2
	mov	edx, DWORD PTR AAT1290_MM_CURRENT_SCALE_SIZE[rip]
	xor	esi, esi
	mov	ecx, 20
	lea	rdi, max_mm_current_percent.1937[rip]
	test	edx, edx
	jg	.L3
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L10:
	mov	ecx, DWORD PTR [rdi+rsi*4]
.L3:
	imul	ecx, ebx
	movsx	rdx, ecx
	sar	ecx, 31
	imul	rdx, rdx, 1374389535
	sar	rdx, 37
	sub	edx, ecx
	mov	DWORD PTR [rax+rsi*4], edx
	add	rsi, 1
	cmp	DWORD PTR AAT1290_MM_CURRENT_SCALE_SIZE[rip], esi
	jg	.L10
.L4:
	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	eax, DWORD PTR ENOMEM[rip]
	add	rsp, 8
	.cfi_def_cfa_offset 24
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	neg	eax
	ret
	.cfi_endproc
.LFE0:
	.size	init_mm_current_scale, .-init_mm_current_scale
	.section	.rodata
	.align 32
	.type	max_mm_current_percent.1937, @object
	.size	max_mm_current_percent.1937, 60
max_mm_current_percent.1937:
	.long	20
	.long	22
	.long	25
	.long	28
	.long	32
	.long	36
	.long	40
	.long	45
	.long	50
	.long	56
	.long	63
	.long	71
	.long	79
	.long	89
	.long	100
	.comm	GFP_KERNEL,4,4
	.comm	ENOMEM,4,4
	.comm	AAT1290_MM_CURRENT_SCALE_SIZE,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_leds-aat1290.c_init_mm_current_scale.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_mm_current_scale, %function
init_mm_current_scale:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, lr}
	mov	r5, r0
	ldr	r0, [r1]
	bl	AAT1290_MAX_MM_CURRENT
	ldr	r3, .L9
	mov	r4, r0
	mov	r1, #60
	ldr	r0, [r5, #4]
	ldr	r2, [r3]
	bl	devm_kzalloc
	cmp	r0, #0
	str	r0, [r5]
	beq	.L2
	ldr	lr, .L9+4
	ldr	r3, [lr]
	cmp	r3, #0
	ble	.L3
	mov	r3, #20
	mov	r2, #0
	ldr	ip, .L9+8
	ldr	r5, .L9+12
	sub	r1, r0, #4
	b	.L4
.L8:
	ldr	r3, [ip], #4
.L4:
	mul	r3, r4, r3
	smull	r6, r0, r5, r3
	asr	r3, r3, #31
	rsb	r3, r3, r0, asr #5
	str	r3, [r1, #4]!
	ldr	r3, [lr]
	add	r2, r2, #1
	cmp	r3, r2
	bgt	.L8
.L3:
	mov	r0, #0
	pop	{r4, r5, r6, pc}
.L2:
	ldr	r3, .L9+16
	ldr	r0, [r3]
	rsb	r0, r0, #0
	pop	{r4, r5, r6, pc}
.L10:
	.align	2
.L9:
	.word	GFP_KERNEL
	.word	AAT1290_MM_CURRENT_SCALE_SIZE
	.word	.LANCHOR0+4
	.word	1374389535
	.word	ENOMEM
	.size	init_mm_current_scale, .-init_mm_current_scale
	.comm	GFP_KERNEL,4,4
	.comm	ENOMEM,4,4
	.comm	AAT1290_MM_CURRENT_SCALE_SIZE,4,4
	.section	.rodata
	.align	2
	.set	.LANCHOR0,. + 0
	.type	max_mm_current_percent.4221, %object
	.size	max_mm_current_percent.4221, 60
max_mm_current_percent.4221:
	.word	20
	.word	22
	.word	25
	.word	28
	.word	32
	.word	36
	.word	40
	.word	45
	.word	50
	.word	56
	.word	63
	.word	71
	.word	79
	.word	89
	.word	100
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
