	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function rohm_ts_soft_irq
_rohm_ts_soft_irq:                      ## @rohm_ts_soft_irq
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$104, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rsi, %r12
	movq	%rsp, -136(%rbp)                ## 8-byte Spill
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -48(%rbp)
	movq	16(%rsi), %r15
	movq	24(%rsi), %r14
	movq	_MAX_CONTACTS@GOTPCREL(%rip), %rbx
	movl	(%rbx), %eax
	shlq	$3, %rax
	callq	____chkstk_darwin
	addq	$15, %rax
	andq	$-16, %rax
	subq	%rax, %rsp
	movq	%rsp, -120(%rbp)                ## 8-byte Spill
	movl	(%rbx), %eax
	shlq	$2, %rax
	callq	____chkstk_darwin
	addq	$15, %rax
	andq	$-16, %rax
	subq	%rax, %rsp
	movq	%rsp, %r13
	movslq	(%r12), %rax
	movq	%rax, -104(%rbp)                ## 8-byte Spill
	movq	_INT_MASK@GOTPCREL(%rip), %rbx
	movl	(%rbx), %esi
	movq	_INT_ALL@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	%r14, %rdi
	callq	_i2c_smbus_write_byte_data
	testl	%eax, %eax
	jne	LBB0_23
## %bb.1:
	movq	_INT_CLEAR@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r14, %rdi
	movl	$255, %edx
	callq	_i2c_smbus_write_byte_data
	testl	%eax, %eax
	jne	LBB0_23
## %bb.2:
	movq	_POS_X1_H@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	leaq	-96(%rbp), %rdx
	movq	%r14, %rdi
	movl	$40, %ecx
	callq	_rohm_i2c_burst_read
	testl	%eax, %eax
	jne	LBB0_23
## %bb.3:
	movq	%r14, -128(%rbp)                ## 8-byte Spill
	movq	_TOUCH_GESTURE@GOTPCREL(%rip), %rax
	movslq	(%rax), %rcx
	movq	_POS_X1_H@GOTPCREL(%rip), %r11
	movslq	(%r11), %rax
	subq	%rax, %rcx
	movq	_TOUCH_MASK@GOTPCREL(%rip), %rdx
	movl	(%rdx), %esi
	andl	-96(%rbp,%rcx,4), %esi
	je	LBB0_12
## %bb.4:
	movq	%rbx, %r10
	movq	_POS_X1_L@GOTPCREL(%rip), %rcx
	movl	%esi, %r14d
	movslq	(%rcx), %r8
	subq	%rax, %r8
	movq	_POS_Y1_H@GOTPCREL(%rip), %rdx
	movslq	(%rdx), %rsi
	subq	%rax, %rsi
	movq	_POS_Y1_L@GOTPCREL(%rip), %rdx
	movslq	(%rdx), %r9
	subq	%rax, %r9
	movq	_POS_X2_H@GOTPCREL(%rip), %rdi
	movslq	(%rdi), %rdi
	subq	%rax, %rdi
	movq	_POS_X2_L@GOTPCREL(%rip), %rbx
	movslq	(%rbx), %rbx
	subq	%rax, %rbx
	movq	_POS_Y2_H@GOTPCREL(%rip), %rcx
	movslq	(%rcx), %rcx
	subq	%rax, %rcx
	movq	_POS_Y2_L@GOTPCREL(%rip), %rdx
	movslq	(%rdx), %rdx
	movdqa	-96(%rbp), %xmm0
	pinsrd	$1, -96(%rbp,%rsi,4), %xmm0
	pinsrd	$2, -96(%rbp,%rdi,4), %xmm0
	pinsrd	$3, -96(%rbp,%rcx,4), %xmm0
	subq	%rax, %rdx
	movd	-96(%rbp,%r8,4), %xmm1          ## xmm1 = mem[0],zero,zero,zero
	movl	%r14d, %esi
	pinsrd	$1, -96(%rbp,%r9,4), %xmm1
	pinsrd	$2, -96(%rbp,%rbx,4), %xmm1
	pinsrd	$3, -96(%rbp,%rdx,4), %xmm1
	pslld	$2, %xmm0
	por	%xmm0, %xmm1
	movq	-120(%rbp), %r9                 ## 8-byte Reload
	movdqa	%xmm1, (%r9)
	cmpl	$128, %r14d
	movq	%r13, %r14
	je	LBB0_7
## %bb.5:
	cmpl	$129, %esi
	movq	-104(%rbp), %rdx                ## 8-byte Reload
	jne	LBB0_11
## %bb.6:
	movq	_dual_touch_threshold@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	8(%r12), %rdi
	movl	8(%rdi), %ecx
	incl	%ecx
	cmpl	(%rax,%rdx,4), %ecx
	movl	%ecx, 8(%rdi)
	movq	%r10, %rbx
	movl	$2, %ecx
	jae	LBB0_13
	jmp	LBB0_19
LBB0_12:
	movq	_untouch_threshold@GOTPCREL(%rip), %rax
	movq	(%rax), %r8
	movq	8(%r12), %rdi
	movl	(%rdi), %eax
	incl	%eax
	xorl	%ecx, %ecx
	movq	-104(%rbp), %rdx                ## 8-byte Reload
	cmpl	(%r8,%rdx,4), %eax
	movl	%eax, (%rdi)
	movq	-120(%rbp), %r9                 ## 8-byte Reload
	movq	%r13, %r14
	jb	LBB0_19
LBB0_13:
	movl	%esi, %r13d
	cmpl	%ecx, %edx
	movl	%ecx, -108(%rbp)                ## 4-byte Spill
	je	LBB0_15
## %bb.14:
	movl	%ecx, %ebx
	movl	(%rdi,%rbx,4), %eax
	movl	%eax, -104(%rbp)                ## 4-byte Spill
	xorl	%esi, %esi
	movl	$8, %edx
	callq	_memset
	movl	-108(%rbp), %ecx                ## 4-byte Reload
	movq	-120(%rbp), %r9                 ## 8-byte Reload
	movq	8(%r12), %rax
	movl	-104(%rbp), %edx                ## 4-byte Reload
	movl	%edx, (%rax,%rbx,4)
	movq	_INT_MASK@GOTPCREL(%rip), %rbx
LBB0_15:
	movq	_ROHM_TS_DISPLACEMENT_MAX@GOTPCREL(%rip), %rax
	movl	(%rax), %r8d
	movq	%r15, %rdi
	movq	%r14, %rsi
	movq	%r14, -120(%rbp)                ## 8-byte Spill
	movq	%r9, %r14
	movq	%r9, %rdx
	callq	_input_mt_assign_slots
	testl	%r13d, %r13d
	je	LBB0_18
## %bb.16:
	movl	-108(%rbp), %eax                ## 4-byte Reload
	cmpl	$2, %eax
	movl	$1, %ecx
	cmovael	%eax, %ecx
	movq	%rcx, -104(%rbp)                ## 8-byte Spill
	xorl	%r13d, %r13d
	.p2align	4, 0x90
LBB0_17:                                ## =>This Inner Loop Header: Depth=1
	movq	-120(%rbp), %rax                ## 8-byte Reload
	movl	(%rax,%r13,4), %esi
	movq	%r15, %rdi
	callq	_input_mt_slot
	movq	_MT_TOOL_FINGER@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r15, %rdi
	movl	$1, %edx
	callq	_input_mt_report_slot_state
	movq	_ABS_MT_POSITION_X@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	(%r14,%r13,8), %edx
	movq	%r15, %rdi
	callq	_input_report_abs
	movq	_ABS_MT_POSITION_Y@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movl	4(%r14,%r13,8), %edx
	movq	%r15, %rdi
	callq	_input_report_abs
	incq	%r13
	cmpq	%r13, -104(%rbp)                ## 8-byte Folded Reload
	jne	LBB0_17
LBB0_18:
	movq	%r15, %rdi
	callq	_input_mt_sync_frame
	movq	%r15, %rdi
	movl	$1, %esi
	callq	_input_mt_report_pointer_emulation
	movq	%r15, %rdi
	callq	_input_sync
	movl	-108(%rbp), %eax                ## 4-byte Reload
	movl	%eax, (%r12)
	movq	_POS_X1_H@GOTPCREL(%rip), %r11
	jmp	LBB0_19
LBB0_7:
	movq	_single_touch_threshold@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	8(%r12), %rdi
	movl	4(%rdi), %ecx
	incl	%ecx
	movq	-104(%rbp), %rdx                ## 8-byte Reload
	cmpl	(%rax,%rdx,4), %ecx
	movl	%ecx, 4(%rdi)
	movq	%r10, %rbx
	jae	LBB0_8
LBB0_19:
	movq	_TOUCH_GESTURE@GOTPCREL(%rip), %rax
	movslq	(%rax), %rax
	movslq	(%r11), %rcx
	subq	%rcx, %rax
	movq	_CALIBRATION_REQUEST@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	testl	%ecx, -96(%rbp,%rax,4)
	movq	-128(%rbp), %r14                ## 8-byte Reload
	je	LBB0_22
## %bb.20:
	movq	%r12, %rdi
	callq	_rohm_ts_manual_calibration
	testl	%eax, %eax
	je	LBB0_22
## %bb.21:
	leaq	L_.str.1(%rip), %rsi
	movq	%r14, %rdi
	movl	%eax, %edx
	callq	_dev_warn
LBB0_22:
	movq	_CALIBRATION_DONE@GOTPCREL(%rip), %rax
	movq	_SLEEP_OUT@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	orl	(%rax), %edx
	movq	_SLEEP_IN@GOTPCREL(%rip), %rax
	orl	(%rax), %edx
	movl	(%rbx), %esi
	movq	_PROGRAM_LOAD_DONE@GOTPCREL(%rip), %rax
	orl	(%rax), %edx
	movq	%r14, %rdi
	callq	_i2c_smbus_write_byte_data
	jmp	LBB0_23
LBB0_11:
	leaq	L_.str(%rip), %rsi
	movq	-128(%rbp), %rdi                ## 8-byte Reload
	callq	_dev_dbg
LBB0_23:
	movq	_IRQ_HANDLED@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	-136(%rbp), %rsp                ## 8-byte Reload
	movq	___stack_chk_guard@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	cmpq	-48(%rbp), %rcx
	jne	LBB0_25
## %bb.24:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_8:
	movl	8(%r9), %eax
	movl	$1, %ecx
	testl	%eax, %eax
	je	LBB0_13
## %bb.9:
	movl	12(%r9), %r8d
	testl	%r8d, %r8d
	je	LBB0_13
## %bb.10:
	movl	%eax, (%r9)
	movl	%r8d, 4(%r9)
	movq	$0, 8(%r9)
	jmp	LBB0_13
LBB0_25:
	callq	___stack_chk_fail
	.cfi_endproc
                                        ## -- End function
	.comm	_MAX_CONTACTS,4,2               ## @MAX_CONTACTS
	.comm	_INT_MASK,4,2                   ## @INT_MASK
	.comm	_INT_ALL,4,2                    ## @INT_ALL
	.comm	_IRQ_HANDLED,4,2                ## @IRQ_HANDLED
	.comm	_INT_CLEAR,4,2                  ## @INT_CLEAR
	.comm	_POS_X1_H,4,2                   ## @POS_X1_H
	.comm	_TOUCH_GESTURE,4,2              ## @TOUCH_GESTURE
	.comm	_TOUCH_MASK,4,2                 ## @TOUCH_MASK
	.comm	_POS_X1_L,4,2                   ## @POS_X1_L
	.comm	_POS_Y1_H,4,2                   ## @POS_Y1_H
	.comm	_POS_Y1_L,4,2                   ## @POS_Y1_L
	.comm	_POS_X2_H,4,2                   ## @POS_X2_H
	.comm	_POS_X2_L,4,2                   ## @POS_X2_L
	.comm	_POS_Y2_H,4,2                   ## @POS_Y2_H
	.comm	_POS_Y2_L,4,2                   ## @POS_Y2_L
	.comm	_untouch_threshold,8,3          ## @untouch_threshold
	.comm	_single_touch_threshold,8,3     ## @single_touch_threshold
	.comm	_dual_touch_threshold,8,3       ## @dual_touch_threshold
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Three or more touches are not supported\n"

	.comm	_ROHM_TS_DISPLACEMENT_MAX,4,2   ## @ROHM_TS_DISPLACEMENT_MAX
	.comm	_MT_TOOL_FINGER,4,2             ## @MT_TOOL_FINGER
	.comm	_ABS_MT_POSITION_X,4,2          ## @ABS_MT_POSITION_X
	.comm	_ABS_MT_POSITION_Y,4,2          ## @ABS_MT_POSITION_Y
	.comm	_CALIBRATION_REQUEST,4,2        ## @CALIBRATION_REQUEST
L_.str.1:                               ## @.str.1
	.asciz	"manual calibration failed: %d\n"

	.comm	_CALIBRATION_DONE,4,2           ## @CALIBRATION_DONE
	.comm	_SLEEP_OUT,4,2                  ## @SLEEP_OUT
	.comm	_SLEEP_IN,4,2                   ## @SLEEP_IN
	.comm	_PROGRAM_LOAD_DONE,4,2          ## @PROGRAM_LOAD_DONE
	.no_dead_strip	_rohm_ts_soft_irq
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function rohm_ts_soft_irq
_rohm_ts_soft_irq:                      ; @rohm_ts_soft_irq
	.cfi_startproc
; %bb.0:
	stp	x28, x27, [sp, #-96]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 96
	stp	x26, x25, [sp, #16]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #32]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #48]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #64]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #80]             ; 16-byte Folded Spill
	add	x29, sp, #80
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	sub	sp, sp, #64
	mov	x20, x1
	mov	x25, sp
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-88]
	ldp	x21, x19, [x1, #16]
Lloh3:
	adrp	x12, _MAX_CONTACTS@GOTPAGE
Lloh4:
	ldr	x12, [x12, _MAX_CONTACTS@GOTPAGEOFF]
	ldr	w8, [x12]
	lsl	x8, x8, #3
	mov	x9, x8
Lloh5:
	adrp	x16, ___chkstk_darwin@GOTPAGE
Lloh6:
	ldr	x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
	blr	x16
	mov	x9, sp
	add	x8, x8, #15
	and	x8, x8, #0xffffffff0
	sub	x22, x9, x8
	mov	sp, x22
	ldr	w8, [x12]
	lsl	x8, x8, #2
	mov	x9, x8
Lloh7:
	adrp	x16, ___chkstk_darwin@GOTPAGE
Lloh8:
	ldr	x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
	blr	x16
	mov	x9, sp
	add	x8, x8, #15
	and	x8, x8, #0x7fffffff0
	sub	x23, x9, x8
	mov	sp, x23
	ldrsw	x28, [x1]
Lloh9:
	adrp	x26, _INT_MASK@GOTPAGE
Lloh10:
	ldr	x26, [x26, _INT_MASK@GOTPAGEOFF]
	ldr	w1, [x26]
Lloh11:
	adrp	x8, _INT_ALL@GOTPAGE
Lloh12:
	ldr	x8, [x8, _INT_ALL@GOTPAGEOFF]
Lloh13:
	ldr	w2, [x8]
	mov	x0, x19
	bl	_i2c_smbus_write_byte_data
	cbnz	w0, LBB0_26
; %bb.1:
Lloh14:
	adrp	x8, _INT_CLEAR@GOTPAGE
Lloh15:
	ldr	x8, [x8, _INT_CLEAR@GOTPAGEOFF]
Lloh16:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #255
	bl	_i2c_smbus_write_byte_data
	cbnz	w0, LBB0_26
; %bb.2:
Lloh17:
	adrp	x27, _POS_X1_H@GOTPAGE
Lloh18:
	ldr	x27, [x27, _POS_X1_H@GOTPAGEOFF]
	ldr	w1, [x27]
	sub	x24, x29, #128
	sub	x2, x29, #128
	mov	x0, x19
	mov	w3, #40
	bl	_rohm_i2c_burst_read
	cbnz	w0, LBB0_26
; %bb.3:
Lloh19:
	adrp	x15, _TOUCH_GESTURE@GOTPAGE
Lloh20:
	ldr	x15, [x15, _TOUCH_GESTURE@GOTPAGEOFF]
	ldr	w9, [x15]
	ldr	w8, [x27]
	sub	w9, w9, w8
	ldr	w9, [x24, w9, sxtw #2]
Lloh21:
	adrp	x10, _TOUCH_MASK@GOTPAGE
Lloh22:
	ldr	x10, [x10, _TOUCH_MASK@GOTPAGEOFF]
Lloh23:
	ldr	w10, [x10]
	ands	w24, w10, w9
	b.eq	LBB0_8
; %bb.4:
	ldur	w9, [x29, #-128]
Lloh24:
	adrp	x10, _POS_X1_L@GOTPAGE
Lloh25:
	ldr	x10, [x10, _POS_X1_L@GOTPAGEOFF]
Lloh26:
	ldr	w10, [x10]
	sub	w10, w10, w8
	sub	x11, x29, #128
	ldr	w10, [x11, w10, sxtw #2]
	orr	w9, w10, w9, lsl #2
Lloh27:
	adrp	x10, _POS_Y1_H@GOTPAGE
Lloh28:
	ldr	x10, [x10, _POS_Y1_H@GOTPAGEOFF]
Lloh29:
	ldr	w10, [x10]
	sub	w10, w10, w8
	ldr	w10, [x11, w10, sxtw #2]
Lloh30:
	adrp	x12, _POS_Y1_L@GOTPAGE
Lloh31:
	ldr	x12, [x12, _POS_Y1_L@GOTPAGEOFF]
Lloh32:
	ldr	w12, [x12]
	sub	w12, w12, w8
	ldr	w12, [x11, w12, sxtw #2]
Lloh33:
	adrp	x13, _POS_X2_H@GOTPAGE
Lloh34:
	ldr	x13, [x13, _POS_X2_H@GOTPAGEOFF]
Lloh35:
	ldr	w13, [x13]
	sub	w13, w13, w8
	ldr	w13, [x11, w13, sxtw #2]
Lloh36:
	adrp	x14, _POS_X2_L@GOTPAGE
Lloh37:
	ldr	x14, [x14, _POS_X2_L@GOTPAGEOFF]
	orr	w10, w12, w10, lsl #2
Lloh38:
	ldr	w12, [x14]
	sub	w12, w12, w8
	ldr	w12, [x11, w12, sxtw #2]
	stp	w9, w10, [x22]
	orr	w9, w12, w13, lsl #2
Lloh39:
	adrp	x10, _POS_Y2_H@GOTPAGE
Lloh40:
	ldr	x10, [x10, _POS_Y2_H@GOTPAGEOFF]
Lloh41:
	ldr	w10, [x10]
	sub	w10, w10, w8
Lloh42:
	adrp	x12, _POS_Y2_L@GOTPAGE
Lloh43:
	ldr	x12, [x12, _POS_Y2_L@GOTPAGEOFF]
Lloh44:
	ldr	w12, [x12]
	sub	w8, w12, w8
	ldr	w10, [x11, w10, sxtw #2]
	ldr	w8, [x11, w8, sxtw #2]
	orr	w8, w8, w10, lsl #2
	stp	w9, w8, [x22, #8]
	cmp	w24, #128
	b.eq	LBB0_10
; %bb.5:
	cmp	w24, #129
	b.ne	LBB0_14
; %bb.6:
Lloh45:
	adrp	x8, _dual_touch_threshold@GOTPAGE
Lloh46:
	ldr	x8, [x8, _dual_touch_threshold@GOTPAGEOFF]
Lloh47:
	ldr	x8, [x8]
	ldr	w8, [x8, x28, lsl #2]
	ldr	x0, [x20, #8]
	ldr	w9, [x0, #8]
	add	w9, w9, #1
	str	w9, [x0, #8]
	cmp	w9, w8
	b.lo	LBB0_22
; %bb.7:
	stur	wzr, [x29, #-136]               ; 4-byte Folded Spill
	mov	w3, #2
	b	LBB0_16
LBB0_8:
Lloh48:
	adrp	x8, _untouch_threshold@GOTPAGE
Lloh49:
	ldr	x8, [x8, _untouch_threshold@GOTPAGEOFF]
Lloh50:
	ldr	x8, [x8]
	ldr	w8, [x8, x28, lsl #2]
	ldr	x0, [x20, #8]
	ldr	w9, [x0]
	add	w9, w9, #1
	str	w9, [x0]
	cmp	w9, w8
	b.lo	LBB0_22
; %bb.9:
	mov	w3, #0
	mov	w8, #1
	stur	w8, [x29, #-136]                ; 4-byte Folded Spill
	b	LBB0_16
LBB0_10:
Lloh51:
	adrp	x8, _single_touch_threshold@GOTPAGE
Lloh52:
	ldr	x8, [x8, _single_touch_threshold@GOTPAGEOFF]
Lloh53:
	ldr	x8, [x8]
	ldr	w8, [x8, x28, lsl #2]
	ldr	x0, [x20, #8]
	ldr	w9, [x0, #4]
	add	w9, w9, #1
	str	w9, [x0, #4]
	cmp	w9, w8
	b.lo	LBB0_22
; %bb.11:
	ldr	w8, [x22, #8]
	cbz	w8, LBB0_15
; %bb.12:
	ldr	w9, [x22, #12]
	cbz	w9, LBB0_15
; %bb.13:
	stp	w8, w9, [x22]
	mov	w8, #1
	stur	w8, [x29, #-136]                ; 4-byte Folded Spill
	mov	w3, #1
	str	xzr, [x22, #8]
	b	LBB0_16
LBB0_14:
Lloh54:
	adrp	x1, l_.str@PAGE
Lloh55:
	add	x1, x1, l_.str@PAGEOFF
	mov	x0, x19
	bl	_dev_dbg
	b	LBB0_26
LBB0_15:
	mov	w8, #1
	stur	w8, [x29, #-136]                ; 4-byte Folded Spill
	mov	w3, #1
LBB0_16:
	cmp	w28, w3
	stur	w3, [x29, #-132]                ; 4-byte Folded Spill
	b.eq	LBB0_18
; %bb.17:
	mov	w8, w3
	lsl	x28, x8, #2
	ldr	w8, [x0, x28]
	stur	w8, [x29, #-140]                ; 4-byte Folded Spill
	mov	w1, #0
	mov	w2, #8
	bl	_memset
	ldur	w3, [x29, #-132]                ; 4-byte Folded Reload
	ldr	x8, [x20, #8]
	ldur	w9, [x29, #-140]                ; 4-byte Folded Reload
	str	w9, [x8, x28]
LBB0_18:
Lloh56:
	adrp	x8, _ROHM_TS_DISPLACEMENT_MAX@GOTPAGE
Lloh57:
	ldr	x8, [x8, _ROHM_TS_DISPLACEMENT_MAX@GOTPAGEOFF]
Lloh58:
	ldr	w4, [x8]
	mov	x0, x21
	mov	x1, x23
	mov	x2, x22
	bl	_input_mt_assign_slots
	cbz	w24, LBB0_21
; %bb.19:
	ldr	w1, [x23]
	mov	x0, x21
	bl	_input_mt_slot
Lloh59:
	adrp	x8, _MT_TOOL_FINGER@GOTPAGE
Lloh60:
	ldr	x8, [x8, _MT_TOOL_FINGER@GOTPAGEOFF]
Lloh61:
	ldr	w1, [x8]
	mov	x0, x21
	mov	w2, #1
	bl	_input_mt_report_slot_state
Lloh62:
	adrp	x28, _ABS_MT_POSITION_X@GOTPAGE
Lloh63:
	ldr	x28, [x28, _ABS_MT_POSITION_X@GOTPAGEOFF]
	ldr	w1, [x28]
	ldr	w2, [x22]
	mov	x0, x21
	bl	_input_report_abs
Lloh64:
	adrp	x24, _ABS_MT_POSITION_Y@GOTPAGE
Lloh65:
	ldr	x24, [x24, _ABS_MT_POSITION_Y@GOTPAGEOFF]
	ldr	w1, [x24]
	ldr	w2, [x22, #4]
	mov	x0, x21
	bl	_input_report_abs
	ldur	w8, [x29, #-136]                ; 4-byte Folded Reload
	tbnz	w8, #0, LBB0_21
; %bb.20:
	ldr	w1, [x23, #4]
	mov	x0, x21
	bl	_input_mt_slot
Lloh66:
	adrp	x8, _MT_TOOL_FINGER@GOTPAGE
Lloh67:
	ldr	x8, [x8, _MT_TOOL_FINGER@GOTPAGEOFF]
Lloh68:
	ldr	w1, [x8]
	mov	x0, x21
	mov	w2, #1
	bl	_input_mt_report_slot_state
	ldr	w1, [x28]
	ldr	w2, [x22, #8]
	mov	x0, x21
	bl	_input_report_abs
	ldr	w1, [x24]
	ldr	w2, [x22, #12]
	mov	x0, x21
	bl	_input_report_abs
LBB0_21:
	mov	x0, x21
	bl	_input_mt_sync_frame
	mov	x0, x21
	mov	w1, #1
	bl	_input_mt_report_pointer_emulation
	mov	x0, x21
	bl	_input_sync
	ldur	w8, [x29, #-132]                ; 4-byte Folded Reload
	str	w8, [x20]
Lloh69:
	adrp	x15, _TOUCH_GESTURE@GOTPAGE
Lloh70:
	ldr	x15, [x15, _TOUCH_GESTURE@GOTPAGEOFF]
LBB0_22:
	ldr	w8, [x15]
	ldr	w9, [x27]
	sub	w8, w8, w9
	sub	x9, x29, #128
	ldr	w8, [x9, w8, sxtw #2]
Lloh71:
	adrp	x9, _CALIBRATION_REQUEST@GOTPAGE
Lloh72:
	ldr	x9, [x9, _CALIBRATION_REQUEST@GOTPAGEOFF]
Lloh73:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_25
; %bb.23:
	mov	x0, x20
	bl	_rohm_ts_manual_calibration
	cbz	w0, LBB0_25
; %bb.24:
	mov	x2, x0
Lloh74:
	adrp	x1, l_.str.1@PAGE
Lloh75:
	add	x1, x1, l_.str.1@PAGEOFF
	mov	x0, x19
	bl	_dev_warn
LBB0_25:
	ldr	w1, [x26]
Lloh76:
	adrp	x8, _CALIBRATION_DONE@GOTPAGE
Lloh77:
	ldr	x8, [x8, _CALIBRATION_DONE@GOTPAGEOFF]
Lloh78:
	ldr	w8, [x8]
Lloh79:
	adrp	x9, _SLEEP_OUT@GOTPAGE
Lloh80:
	ldr	x9, [x9, _SLEEP_OUT@GOTPAGEOFF]
Lloh81:
	ldr	w9, [x9]
	orr	w8, w9, w8
Lloh82:
	adrp	x9, _SLEEP_IN@GOTPAGE
Lloh83:
	ldr	x9, [x9, _SLEEP_IN@GOTPAGEOFF]
Lloh84:
	ldr	w9, [x9]
	orr	w8, w8, w9
Lloh85:
	adrp	x9, _PROGRAM_LOAD_DONE@GOTPAGE
Lloh86:
	ldr	x9, [x9, _PROGRAM_LOAD_DONE@GOTPAGEOFF]
Lloh87:
	ldr	w9, [x9]
	orr	w2, w8, w9
	mov	x0, x19
	bl	_i2c_smbus_write_byte_data
LBB0_26:
Lloh88:
	adrp	x8, _IRQ_HANDLED@GOTPAGE
Lloh89:
	ldr	x8, [x8, _IRQ_HANDLED@GOTPAGEOFF]
Lloh90:
	ldr	w0, [x8]
	mov	sp, x25
	ldur	x8, [x29, #-88]
Lloh91:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh92:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh93:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_28
; %bb.27:
	sub	sp, x29, #80
	ldp	x29, x30, [sp, #80]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #64]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #48]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #32]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #16]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp], #96             ; 16-byte Folded Reload
	ret
LBB0_28:
	bl	___stack_chk_fail
	.loh AdrpLdrGotLdr	Lloh11, Lloh12, Lloh13
	.loh AdrpLdrGot	Lloh9, Lloh10
	.loh AdrpLdrGot	Lloh7, Lloh8
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGot	Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.loh AdrpLdrGot	Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh42, Lloh43, Lloh44
	.loh AdrpLdrGotLdr	Lloh39, Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh36, Lloh37, Lloh38
	.loh AdrpLdrGotLdr	Lloh33, Lloh34, Lloh35
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh45, Lloh46, Lloh47
	.loh AdrpLdrGotLdr	Lloh48, Lloh49, Lloh50
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpAdd	Lloh54, Lloh55
	.loh AdrpLdrGotLdr	Lloh56, Lloh57, Lloh58
	.loh AdrpLdrGot	Lloh64, Lloh65
	.loh AdrpLdrGot	Lloh62, Lloh63
	.loh AdrpLdrGotLdr	Lloh59, Lloh60, Lloh61
	.loh AdrpLdrGotLdr	Lloh66, Lloh67, Lloh68
	.loh AdrpLdrGot	Lloh69, Lloh70
	.loh AdrpLdrGotLdr	Lloh71, Lloh72, Lloh73
	.loh AdrpAdd	Lloh74, Lloh75
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpLdrGotLdr	Lloh82, Lloh83, Lloh84
	.loh AdrpLdrGotLdr	Lloh79, Lloh80, Lloh81
	.loh AdrpLdrGotLdr	Lloh76, Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh91, Lloh92, Lloh93
	.loh AdrpLdrGotLdr	Lloh88, Lloh89, Lloh90
	.cfi_endproc
                                        ; -- End function
	.comm	_MAX_CONTACTS,4,2               ; @MAX_CONTACTS
	.comm	_INT_MASK,4,2                   ; @INT_MASK
	.comm	_INT_ALL,4,2                    ; @INT_ALL
	.comm	_IRQ_HANDLED,4,2                ; @IRQ_HANDLED
	.comm	_INT_CLEAR,4,2                  ; @INT_CLEAR
	.comm	_POS_X1_H,4,2                   ; @POS_X1_H
	.comm	_TOUCH_GESTURE,4,2              ; @TOUCH_GESTURE
	.comm	_TOUCH_MASK,4,2                 ; @TOUCH_MASK
	.comm	_POS_X1_L,4,2                   ; @POS_X1_L
	.comm	_POS_Y1_H,4,2                   ; @POS_Y1_H
	.comm	_POS_Y1_L,4,2                   ; @POS_Y1_L
	.comm	_POS_X2_H,4,2                   ; @POS_X2_H
	.comm	_POS_X2_L,4,2                   ; @POS_X2_L
	.comm	_POS_Y2_H,4,2                   ; @POS_Y2_H
	.comm	_POS_Y2_L,4,2                   ; @POS_Y2_L
	.comm	_untouch_threshold,8,3          ; @untouch_threshold
	.comm	_single_touch_threshold,8,3     ; @single_touch_threshold
	.comm	_dual_touch_threshold,8,3       ; @dual_touch_threshold
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Three or more touches are not supported\n"

	.comm	_ROHM_TS_DISPLACEMENT_MAX,4,2   ; @ROHM_TS_DISPLACEMENT_MAX
	.comm	_MT_TOOL_FINGER,4,2             ; @MT_TOOL_FINGER
	.comm	_ABS_MT_POSITION_X,4,2          ; @ABS_MT_POSITION_X
	.comm	_ABS_MT_POSITION_Y,4,2          ; @ABS_MT_POSITION_Y
	.comm	_CALIBRATION_REQUEST,4,2        ; @CALIBRATION_REQUEST
l_.str.1:                               ; @.str.1
	.asciz	"manual calibration failed: %d\n"

	.comm	_CALIBRATION_DONE,4,2           ; @CALIBRATION_DONE
	.comm	_SLEEP_OUT,4,2                  ; @SLEEP_OUT
	.comm	_SLEEP_IN,4,2                   ; @SLEEP_IN
	.comm	_PROGRAM_LOAD_DONE,4,2          ; @PROGRAM_LOAD_DONE
	.no_dead_strip	_rohm_ts_soft_irq
.subsections_via_symbols
