	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function sony_input_configured
_sony_input_configured:                 ## @sony_input_configured
	.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
	pushq	%rax
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r15
	callq	_hid_get_drvdata
	movq	%rax, %r13
	movq	%rax, %rdi
	callq	_sony_set_device_id
	testl	%eax, %eax
	js	LBB0_6
## %bb.1:
	movq	%r13, %rdi
	callq	_sony_check_add
	movl	%eax, %r14d
	testl	%eax, %eax
	js	LBB0_25
## %bb.2:
	movq	%r13, %rdi
	callq	_sony_allocate_output_report
	testl	%eax, %eax
	js	LBB0_8
## %bb.3:
	movl	(%r13), %eax
	movq	_NAVIGATION_CONTROLLER_USB@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_10
## %bb.4:
	movq	_HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPCREL(%rip), %rax
	movl	4(%r15), %ecx
	orl	(%rax), %ecx
	movq	_HID_QUIRK_SKIP_OUTPUT_REPORT_ID@GOTPCREL(%rip), %rax
	orl	(%rax), %ecx
	movl	%ecx, 4(%r15)
	movl	$1, 4(%r13)
	movq	%r15, %rdi
	callq	_sixaxis_set_operational_usb
	testl	%eax, %eax
	jns	LBB0_12
	jmp	LBB0_5
LBB0_6:
	movl	%eax, %r14d
	leaq	L_.str(%rip), %rsi
LBB0_7:
	movq	%r15, %rdi
	xorl	%eax, %eax
	callq	_hid_err
	cmpq	$0, 40(%r13)
	jne	LBB0_37
	jmp	LBB0_38
LBB0_8:
	movl	%eax, %ebx
	leaq	L_.str.1(%rip), %rsi
	jmp	LBB0_9
LBB0_10:
	movq	_NAVIGATION_CONTROLLER_BT@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_26
## %bb.11:
	movq	_HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	orl	%eax, 4(%r15)
	movq	%r15, %rdi
	callq	_sixaxis_set_operational_bt
	testl	%eax, %eax
	js	LBB0_5
LBB0_12:
	movq	_sixaxis_send_output_report@GOTPCREL(%rip), %rbx
LBB0_13:
	movl	(%rbx), %esi
	movq	%r13, %rdi
	callq	_sony_init_output_report
LBB0_14:
	movl	(%r13), %eax
	movq	_SONY_LED_SUPPORT@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_17
## %bb.15:
	movq	%r13, %rdi
	callq	_sony_leds_init
	testl	%eax, %eax
	js	LBB0_29
## %bb.16:
	movl	(%r13), %eax
LBB0_17:
	movq	_SONY_BATTERY_SUPPORT@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_21
## %bb.18:
	movq	%r13, %rdi
	movl	%r14d, %esi
	callq	_sony_battery_probe
	testl	%eax, %eax
	js	LBB0_29
## %bb.19:
	movq	%r15, %rdi
	callq	_hid_hw_open
	testl	%eax, %eax
	js	LBB0_30
## %bb.20:
	movl	(%r13), %eax
LBB0_21:
	movq	_SONY_FF_SUPPORT@GOTPCREL(%rip), %rcx
	xorl	%r14d, %r14d
	testl	%eax, (%rcx)
	je	LBB0_43
## %bb.22:
	movq	%r13, %rdi
	callq	_sony_init_ff
	testl	%eax, %eax
	jns	LBB0_43
## %bb.23:
	movl	%eax, %ebx
	movq	%r15, %rdi
	callq	_hid_hw_close
	jmp	LBB0_24
LBB0_29:
	movl	%eax, %r14d
	cmpq	$0, 40(%r13)
	jne	LBB0_37
	jmp	LBB0_38
LBB0_26:
	movq	_SIXAXIS_CONTROLLER_USB@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_31
## %bb.27:
	movq	_HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPCREL(%rip), %rax
	movl	4(%r15), %ecx
	orl	(%rax), %ecx
	movq	_HID_QUIRK_SKIP_OUTPUT_REPORT_ID@GOTPCREL(%rip), %rax
	orl	(%rax), %ecx
	movl	%ecx, 4(%r15)
	movl	$1, 4(%r13)
	movq	%r15, %rdi
	callq	_sixaxis_set_operational_usb
	testl	%eax, %eax
	js	LBB0_5
LBB0_28:
	movq	%r13, %rdi
	callq	_sony_register_sensors
	testl	%eax, %eax
	je	LBB0_12
LBB0_34:
	movl	%eax, %r12d
	movq	16(%r13), %rdi
	leaq	L_.str.3(%rip), %rsi
LBB0_35:
	movl	%r12d, %edx
	xorl	%eax, %eax
	callq	_hid_err
LBB0_36:
	movl	%r12d, %r14d
	cmpq	$0, 40(%r13)
	jne	LBB0_37
	jmp	LBB0_38
LBB0_30:
	movl	%eax, %r14d
	leaq	L_.str.10(%rip), %rsi
	jmp	LBB0_7
LBB0_31:
	movq	_SIXAXIS_CONTROLLER_BT@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_44
## %bb.32:
	movq	_HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	orl	%eax, 4(%r15)
	movq	%r15, %rdi
	callq	_sixaxis_set_operational_bt
	testl	%eax, %eax
	jns	LBB0_28
LBB0_5:
	movl	%eax, %ebx
	leaq	L_.str.2(%rip), %rsi
LBB0_9:
	movq	%r15, %rdi
	xorl	%eax, %eax
	callq	_hid_err
LBB0_24:
	movl	%ebx, %r14d
LBB0_25:
	cmpq	$0, 40(%r13)
	je	LBB0_38
LBB0_37:
	movq	16(%r13), %rdi
	movq	_dev_attr_bt_poll_interval@GOTPCREL(%rip), %rsi
	callq	_device_remove_file
LBB0_38:
	cmpq	$0, 32(%r13)
	je	LBB0_40
## %bb.39:
	movq	16(%r13), %rdi
	movq	_dev_attr_firmware_version@GOTPCREL(%rip), %rsi
	callq	_device_remove_file
LBB0_40:
	cmpq	$0, 24(%r13)
	je	LBB0_42
## %bb.41:
	movq	16(%r13), %rdi
	movq	_dev_attr_hardware_version@GOTPCREL(%rip), %rsi
	callq	_device_remove_file
LBB0_42:
	movq	%r13, %rdi
	callq	_sony_cancel_work_sync
	movq	%r13, %rdi
	callq	_sony_remove_dev_list
	movq	%r13, %rdi
	callq	_sony_release_device_id
LBB0_43:
	movl	%r14d, %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_44:
	movq	_DUALSHOCK4_CONTROLLER@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_49
## %bb.45:
	movq	%r13, %rdi
	callq	_dualshock4_get_calibration_data
	testl	%eax, %eax
	js	LBB0_52
## %bb.46:
	movq	%r13, %rdi
	callq	_dualshock4_get_version_info
	movq	16(%r13), %rdi
	testl	%eax, %eax
	js	LBB0_53
## %bb.47:
	movq	_dev_attr_firmware_version@GOTPCREL(%rip), %rsi
	callq	_device_create_file
	testl	%eax, %eax
	je	LBB0_56
## %bb.48:
	movl	%eax, %r12d
	xorps	%xmm0, %xmm0
	movups	%xmm0, 24(%r13)
	movq	16(%r13), %rdi
	leaq	L_.str.6(%rip), %rsi
	jmp	LBB0_35
LBB0_49:
	movq	_NSG_MRXU_REMOTE@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_54
## %bb.50:
	movq	_NSG_MRXU_MAX_X@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_NSG_MRXU_MAX_Y@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movl	$1, (%rsp)
	movq	%r13, %rdi
	movl	$2, %esi
	movl	$15, %r8d
	movl	$15, %r9d
	callq	_sony_register_touchpad
	testl	%eax, %eax
	je	LBB0_14
LBB0_51:
	movl	%eax, %r12d
	movq	16(%r13), %rdi
	leaq	L_.str.8(%rip), %rsi
	jmp	LBB0_35
LBB0_52:
	movl	%eax, %ebx
	leaq	L_.str.4(%rip), %rsi
	jmp	LBB0_9
LBB0_53:
	movl	%eax, %r12d
	leaq	L_.str.5(%rip), %rsi
	xorl	%eax, %eax
	callq	_hid_err
	jmp	LBB0_36
LBB0_54:
	movq	_MOTION_CONTROLLER@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_14
## %bb.55:
	movq	_motion_send_output_report@GOTPCREL(%rip), %rbx
	jmp	LBB0_13
LBB0_56:
	movq	16(%r13), %rdi
	movq	_dev_attr_hardware_version@GOTPCREL(%rip), %rsi
	callq	_device_create_file
	testl	%eax, %eax
	je	LBB0_58
## %bb.57:
	movl	%eax, %r12d
	movq	$0, 24(%r13)
	movq	16(%r13), %rdi
	leaq	L_.str.7(%rip), %rsi
	jmp	LBB0_35
LBB0_58:
	movl	$0, (%rsp)
	movq	%r13, %rdi
	movl	$2, %esi
	movl	$1920, %edx                     ## imm = 0x780
	movl	$942, %ecx                      ## imm = 0x3AE
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	_sony_register_touchpad
	testl	%eax, %eax
	jne	LBB0_51
## %bb.59:
	movq	%r13, %rdi
	callq	_sony_register_sensors
	testl	%eax, %eax
	jne	LBB0_34
## %bb.60:
	movq	_DUALSHOCK4_CONTROLLER_BT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%r13)
	je	LBB0_63
## %bb.61:
	movq	_DS4_BT_DEFAULT_POLL_INTERVAL_MS@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, 40(%r13)
	movq	16(%r13), %rdi
	movq	_dev_attr_bt_poll_interval@GOTPCREL(%rip), %rsi
	callq	_device_create_file
	testl	%eax, %eax
	je	LBB0_63
## %bb.62:
	movq	16(%r13), %rdi
	leaq	L_.str.9(%rip), %rsi
	movl	%eax, %edx
	callq	_hid_warn
LBB0_63:
	movq	_DUALSHOCK4_DONGLE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	_dualshock4_send_output_report@GOTPCREL(%rip), %rbx
	testl	%eax, (%r13)
	je	LBB0_13
## %bb.64:
	movq	%r13, %rdi
	addq	$52, %rdi
	movq	_dualshock4_calibration_work@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_INIT_WORK
	movl	$1, 8(%r13)
	movq	_DONGLE_DISCONNECTED@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 48(%r13)
	jmp	LBB0_13
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"failed to allocate the device id\n"

L_.str.1:                               ## @.str.1
	.asciz	"failed to allocate the output report buffer\n"

	.comm	_NAVIGATION_CONTROLLER_USB,4,2  ## @NAVIGATION_CONTROLLER_USB
	.comm	_HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP,4,2 ## @HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP
	.comm	_HID_QUIRK_SKIP_OUTPUT_REPORT_ID,4,2 ## @HID_QUIRK_SKIP_OUTPUT_REPORT_ID
L_.str.2:                               ## @.str.2
	.asciz	"Failed to set controller into operational mode\n"

	.comm	_sixaxis_send_output_report,4,2 ## @sixaxis_send_output_report
	.comm	_NAVIGATION_CONTROLLER_BT,4,2   ## @NAVIGATION_CONTROLLER_BT
	.comm	_SIXAXIS_CONTROLLER_USB,4,2     ## @SIXAXIS_CONTROLLER_USB
L_.str.3:                               ## @.str.3
	.asciz	"Unable to initialize motion sensors: %d\n"

	.comm	_SIXAXIS_CONTROLLER_BT,4,2      ## @SIXAXIS_CONTROLLER_BT
	.comm	_DUALSHOCK4_CONTROLLER,4,2      ## @DUALSHOCK4_CONTROLLER
L_.str.4:                               ## @.str.4
	.asciz	"Failed to get calibration data from Dualshock 4\n"

L_.str.5:                               ## @.str.5
	.asciz	"Failed to get version data from Dualshock 4\n"

	.comm	_dev_attr_firmware_version,4,2  ## @dev_attr_firmware_version
L_.str.6:                               ## @.str.6
	.asciz	"can't create sysfs firmware_version attribute err: %d\n"

	.comm	_dev_attr_hardware_version,4,2  ## @dev_attr_hardware_version
L_.str.7:                               ## @.str.7
	.asciz	"can't create sysfs hardware_version attribute err: %d\n"

L_.str.8:                               ## @.str.8
	.asciz	"Unable to initialize multi-touch slots: %d\n"

	.comm	_DUALSHOCK4_CONTROLLER_BT,4,2   ## @DUALSHOCK4_CONTROLLER_BT
	.comm	_DS4_BT_DEFAULT_POLL_INTERVAL_MS,8,3 ## @DS4_BT_DEFAULT_POLL_INTERVAL_MS
	.comm	_dev_attr_bt_poll_interval,4,2  ## @dev_attr_bt_poll_interval
L_.str.9:                               ## @.str.9
	.asciz	"can't create sysfs bt_poll_interval attribute err: %d\n"

	.comm	_DUALSHOCK4_DONGLE,4,2          ## @DUALSHOCK4_DONGLE
	.comm	_dualshock4_calibration_work,4,2 ## @dualshock4_calibration_work
	.comm	_DONGLE_DISCONNECTED,4,2        ## @DONGLE_DISCONNECTED
	.comm	_dualshock4_send_output_report,4,2 ## @dualshock4_send_output_report
	.comm	_NSG_MRXU_REMOTE,4,2            ## @NSG_MRXU_REMOTE
	.comm	_NSG_MRXU_MAX_X,4,2             ## @NSG_MRXU_MAX_X
	.comm	_NSG_MRXU_MAX_Y,4,2             ## @NSG_MRXU_MAX_Y
	.comm	_MOTION_CONTROLLER,4,2          ## @MOTION_CONTROLLER
	.comm	_motion_send_output_report,4,2  ## @motion_send_output_report
	.comm	_SONY_LED_SUPPORT,4,2           ## @SONY_LED_SUPPORT
	.comm	_SONY_BATTERY_SUPPORT,4,2       ## @SONY_BATTERY_SUPPORT
L_.str.10:                              ## @.str.10
	.asciz	"hw open failed\n"

	.comm	_SONY_FF_SUPPORT,4,2            ## @SONY_FF_SUPPORT
	.no_dead_strip	_sony_input_configured
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function sony_input_configured
_sony_input_configured:                 ; @sony_input_configured
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #64
	.cfi_def_cfa_offset 64
	stp	x22, x21, [sp, #16]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #32]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #48]             ; 16-byte Folded Spill
	add	x29, sp, #48
	.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
	mov	x21, x0
	bl	_hid_get_drvdata
	mov	x19, x0
	bl	_sony_set_device_id
	tbnz	w0, #31, LBB0_5
; %bb.1:
	mov	x0, x19
	bl	_sony_check_add
	mov	x20, x0
	tbnz	w0, #31, LBB0_35
; %bb.2:
	mov	x0, x19
	bl	_sony_allocate_output_report
	tbnz	w0, #31, LBB0_7
; %bb.3:
	ldr	w8, [x19]
Lloh0:
	adrp	x9, _NAVIGATION_CONTROLLER_USB@GOTPAGE
Lloh1:
	ldr	x9, [x9, _NAVIGATION_CONTROLLER_USB@GOTPAGEOFF]
Lloh2:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_8
; %bb.4:
Lloh3:
	adrp	x8, _HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPAGE
Lloh4:
	ldr	x8, [x8, _HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPAGEOFF]
Lloh5:
	ldr	w8, [x8]
	ldr	w9, [x21, #4]
Lloh6:
	adrp	x10, _HID_QUIRK_SKIP_OUTPUT_REPORT_ID@GOTPAGE
Lloh7:
	ldr	x10, [x10, _HID_QUIRK_SKIP_OUTPUT_REPORT_ID@GOTPAGEOFF]
	orr	w8, w9, w8
Lloh8:
	ldr	w9, [x10]
	orr	w8, w9, w8
	str	w8, [x21, #4]
	mov	w8, #1
	str	w8, [x19, #4]
	mov	x0, x21
	bl	_sixaxis_set_operational_usb
	tbz	w0, #31, LBB0_10
	b	LBB0_32
LBB0_5:
	mov	x20, x0
Lloh9:
	adrp	x1, l_.str@PAGE
Lloh10:
	add	x1, x1, l_.str@PAGEOFF
LBB0_6:
	mov	x0, x21
	bl	_hid_err
	b	LBB0_35
LBB0_7:
	mov	x22, x0
Lloh11:
	adrp	x1, l_.str.1@PAGE
Lloh12:
	add	x1, x1, l_.str.1@PAGEOFF
	b	LBB0_33
LBB0_8:
Lloh13:
	adrp	x9, _NAVIGATION_CONTROLLER_BT@GOTPAGE
Lloh14:
	ldr	x9, [x9, _NAVIGATION_CONTROLLER_BT@GOTPAGEOFF]
Lloh15:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_23
; %bb.9:
Lloh16:
	adrp	x8, _HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPAGE
Lloh17:
	ldr	x8, [x8, _HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPAGEOFF]
Lloh18:
	ldr	w8, [x8]
	ldr	w9, [x21, #4]
	orr	w8, w9, w8
	str	w8, [x21, #4]
	mov	x0, x21
	bl	_sixaxis_set_operational_bt
	tbnz	w0, #31, LBB0_32
LBB0_10:
Lloh19:
	adrp	x8, _sixaxis_send_output_report@GOTPAGE
Lloh20:
	ldr	x8, [x8, _sixaxis_send_output_report@GOTPAGEOFF]
LBB0_11:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_sony_init_output_report
LBB0_12:
	ldr	w8, [x19]
Lloh21:
	adrp	x9, _SONY_LED_SUPPORT@GOTPAGE
Lloh22:
	ldr	x9, [x9, _SONY_LED_SUPPORT@GOTPAGEOFF]
Lloh23:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_15
; %bb.13:
	mov	x0, x19
	bl	_sony_leds_init
	tbnz	w0, #31, LBB0_22
; %bb.14:
	ldr	w8, [x19]
LBB0_15:
Lloh24:
	adrp	x9, _SONY_BATTERY_SUPPORT@GOTPAGE
Lloh25:
	ldr	x9, [x9, _SONY_BATTERY_SUPPORT@GOTPAGEOFF]
Lloh26:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_19
; %bb.16:
	mov	x0, x19
	mov	x1, x20
	bl	_sony_battery_probe
	tbnz	w0, #31, LBB0_22
; %bb.17:
	mov	x0, x21
	bl	_hid_hw_open
	tbnz	w0, #31, LBB0_28
; %bb.18:
	ldr	w8, [x19]
LBB0_19:
Lloh27:
	adrp	x9, _SONY_FF_SUPPORT@GOTPAGE
Lloh28:
	ldr	x9, [x9, _SONY_FF_SUPPORT@GOTPAGEOFF]
Lloh29:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_21
; %bb.20:
	mov	x0, x19
	bl	_sony_init_ff
	tbnz	w0, #31, LBB0_29
LBB0_21:
	mov	w20, #0
	b	LBB0_42
LBB0_22:
	mov	x20, x0
	b	LBB0_35
LBB0_23:
Lloh30:
	adrp	x9, _SIXAXIS_CONTROLLER_USB@GOTPAGE
Lloh31:
	ldr	x9, [x9, _SIXAXIS_CONTROLLER_USB@GOTPAGEOFF]
Lloh32:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_30
; %bb.24:
Lloh33:
	adrp	x8, _HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPAGE
Lloh34:
	ldr	x8, [x8, _HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPAGEOFF]
Lloh35:
	ldr	w8, [x8]
	ldr	w9, [x21, #4]
Lloh36:
	adrp	x10, _HID_QUIRK_SKIP_OUTPUT_REPORT_ID@GOTPAGE
Lloh37:
	ldr	x10, [x10, _HID_QUIRK_SKIP_OUTPUT_REPORT_ID@GOTPAGEOFF]
	orr	w8, w9, w8
Lloh38:
	ldr	w9, [x10]
	orr	w8, w9, w8
	str	w8, [x21, #4]
	mov	w8, #1
	str	w8, [x19, #4]
	mov	x0, x21
	bl	_sixaxis_set_operational_usb
	tbnz	w0, #31, LBB0_32
LBB0_25:
	mov	x0, x19
	bl	_sony_register_sensors
	cbz	w0, LBB0_10
LBB0_26:
	mov	x22, x0
	ldr	x0, [x19, #16]
	str	x22, [sp]
Lloh39:
	adrp	x1, l_.str.3@PAGE
Lloh40:
	add	x1, x1, l_.str.3@PAGEOFF
LBB0_27:
	bl	_hid_err
	mov	x20, x22
	b	LBB0_35
LBB0_28:
	mov	x20, x0
Lloh41:
	adrp	x1, l_.str.10@PAGE
Lloh42:
	add	x1, x1, l_.str.10@PAGEOFF
	b	LBB0_6
LBB0_29:
	mov	x20, x0
	mov	x0, x21
	bl	_hid_hw_close
	b	LBB0_35
LBB0_30:
Lloh43:
	adrp	x9, _SIXAXIS_CONTROLLER_BT@GOTPAGE
Lloh44:
	ldr	x9, [x9, _SIXAXIS_CONTROLLER_BT@GOTPAGEOFF]
Lloh45:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_43
; %bb.31:
Lloh46:
	adrp	x8, _HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPAGE
Lloh47:
	ldr	x8, [x8, _HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP@GOTPAGEOFF]
Lloh48:
	ldr	w8, [x8]
	ldr	w9, [x21, #4]
	orr	w8, w9, w8
	str	w8, [x21, #4]
	mov	x0, x21
	bl	_sixaxis_set_operational_bt
	tbz	w0, #31, LBB0_25
LBB0_32:
	mov	x22, x0
Lloh49:
	adrp	x1, l_.str.2@PAGE
Lloh50:
	add	x1, x1, l_.str.2@PAGEOFF
LBB0_33:
	mov	x0, x21
LBB0_34:
	bl	_hid_err
	mov	x20, x22
LBB0_35:
	ldr	x8, [x19, #40]
	cbz	x8, LBB0_37
; %bb.36:
	ldr	x0, [x19, #16]
Lloh51:
	adrp	x1, _dev_attr_bt_poll_interval@GOTPAGE
Lloh52:
	ldr	x1, [x1, _dev_attr_bt_poll_interval@GOTPAGEOFF]
	bl	_device_remove_file
LBB0_37:
	ldr	x8, [x19, #32]
	cbz	x8, LBB0_39
; %bb.38:
	ldr	x0, [x19, #16]
Lloh53:
	adrp	x1, _dev_attr_firmware_version@GOTPAGE
Lloh54:
	ldr	x1, [x1, _dev_attr_firmware_version@GOTPAGEOFF]
	bl	_device_remove_file
LBB0_39:
	ldr	x8, [x19, #24]
	cbz	x8, LBB0_41
; %bb.40:
	ldr	x0, [x19, #16]
Lloh55:
	adrp	x1, _dev_attr_hardware_version@GOTPAGE
Lloh56:
	ldr	x1, [x1, _dev_attr_hardware_version@GOTPAGEOFF]
	bl	_device_remove_file
LBB0_41:
	mov	x0, x19
	bl	_sony_cancel_work_sync
	mov	x0, x19
	bl	_sony_remove_dev_list
	mov	x0, x19
	bl	_sony_release_device_id
LBB0_42:
	mov	x0, x20
	ldp	x29, x30, [sp, #48]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #32]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #64
	ret
LBB0_43:
Lloh57:
	adrp	x9, _DUALSHOCK4_CONTROLLER@GOTPAGE
Lloh58:
	ldr	x9, [x9, _DUALSHOCK4_CONTROLLER@GOTPAGEOFF]
Lloh59:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_48
; %bb.44:
	mov	x0, x19
	bl	_dualshock4_get_calibration_data
	tbnz	w0, #31, LBB0_51
; %bb.45:
	mov	x0, x19
	bl	_dualshock4_get_version_info
	mov	x22, x0
	ldr	x0, [x19, #16]
	tbnz	w22, #31, LBB0_52
; %bb.46:
Lloh60:
	adrp	x1, _dev_attr_firmware_version@GOTPAGE
Lloh61:
	ldr	x1, [x1, _dev_attr_firmware_version@GOTPAGEOFF]
	bl	_device_create_file
	cbz	w0, LBB0_55
; %bb.47:
	mov	x22, x0
	stp	xzr, xzr, [x19, #24]
	ldr	x0, [x19, #16]
	str	x22, [sp]
Lloh62:
	adrp	x1, l_.str.6@PAGE
Lloh63:
	add	x1, x1, l_.str.6@PAGEOFF
	b	LBB0_27
LBB0_48:
Lloh64:
	adrp	x9, _NSG_MRXU_REMOTE@GOTPAGE
Lloh65:
	ldr	x9, [x9, _NSG_MRXU_REMOTE@GOTPAGEOFF]
Lloh66:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_53
; %bb.49:
Lloh67:
	adrp	x8, _NSG_MRXU_MAX_X@GOTPAGE
Lloh68:
	ldr	x8, [x8, _NSG_MRXU_MAX_X@GOTPAGEOFF]
Lloh69:
	ldr	w2, [x8]
Lloh70:
	adrp	x8, _NSG_MRXU_MAX_Y@GOTPAGE
Lloh71:
	ldr	x8, [x8, _NSG_MRXU_MAX_Y@GOTPAGEOFF]
Lloh72:
	ldr	w3, [x8]
	mov	x0, x19
	mov	w1, #2
	mov	w4, #15
	mov	w5, #15
	mov	w6, #1
	bl	_sony_register_touchpad
	cbz	w0, LBB0_12
LBB0_50:
	mov	x22, x0
	ldr	x0, [x19, #16]
	str	x22, [sp]
Lloh73:
	adrp	x1, l_.str.8@PAGE
Lloh74:
	add	x1, x1, l_.str.8@PAGEOFF
	b	LBB0_27
LBB0_51:
	mov	x22, x0
Lloh75:
	adrp	x1, l_.str.4@PAGE
Lloh76:
	add	x1, x1, l_.str.4@PAGEOFF
	b	LBB0_33
LBB0_52:
Lloh77:
	adrp	x1, l_.str.5@PAGE
Lloh78:
	add	x1, x1, l_.str.5@PAGEOFF
	b	LBB0_34
LBB0_53:
Lloh79:
	adrp	x9, _MOTION_CONTROLLER@GOTPAGE
Lloh80:
	ldr	x9, [x9, _MOTION_CONTROLLER@GOTPAGEOFF]
Lloh81:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_12
; %bb.54:
Lloh82:
	adrp	x8, _motion_send_output_report@GOTPAGE
Lloh83:
	ldr	x8, [x8, _motion_send_output_report@GOTPAGEOFF]
	b	LBB0_11
LBB0_55:
	ldr	x0, [x19, #16]
Lloh84:
	adrp	x1, _dev_attr_hardware_version@GOTPAGE
Lloh85:
	ldr	x1, [x1, _dev_attr_hardware_version@GOTPAGEOFF]
	bl	_device_create_file
	cbz	w0, LBB0_57
; %bb.56:
	mov	x22, x0
	str	xzr, [x19, #24]
	ldr	x0, [x19, #16]
	str	x22, [sp]
Lloh86:
	adrp	x1, l_.str.7@PAGE
Lloh87:
	add	x1, x1, l_.str.7@PAGEOFF
	b	LBB0_27
LBB0_57:
	mov	x0, x19
	mov	w1, #2
	mov	w2, #1920
	mov	w3, #942
	mov	w4, #0
	mov	w5, #0
	mov	w6, #0
	bl	_sony_register_touchpad
	cbnz	w0, LBB0_50
; %bb.58:
	mov	x0, x19
	bl	_sony_register_sensors
	cbnz	w0, LBB0_26
; %bb.59:
	ldr	w8, [x19]
Lloh88:
	adrp	x9, _DUALSHOCK4_CONTROLLER_BT@GOTPAGE
Lloh89:
	ldr	x9, [x9, _DUALSHOCK4_CONTROLLER_BT@GOTPAGEOFF]
Lloh90:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_62
; %bb.60:
Lloh91:
	adrp	x8, _DS4_BT_DEFAULT_POLL_INTERVAL_MS@GOTPAGE
Lloh92:
	ldr	x8, [x8, _DS4_BT_DEFAULT_POLL_INTERVAL_MS@GOTPAGEOFF]
Lloh93:
	ldr	x8, [x8]
	str	x8, [x19, #40]
	ldr	x0, [x19, #16]
Lloh94:
	adrp	x1, _dev_attr_bt_poll_interval@GOTPAGE
Lloh95:
	ldr	x1, [x1, _dev_attr_bt_poll_interval@GOTPAGEOFF]
	bl	_device_create_file
	cbz	w0, LBB0_62
; %bb.61:
	mov	x2, x0
	ldr	x0, [x19, #16]
Lloh96:
	adrp	x1, l_.str.9@PAGE
Lloh97:
	add	x1, x1, l_.str.9@PAGEOFF
	bl	_hid_warn
LBB0_62:
	ldr	w8, [x19]
Lloh98:
	adrp	x9, _DUALSHOCK4_DONGLE@GOTPAGE
Lloh99:
	ldr	x9, [x9, _DUALSHOCK4_DONGLE@GOTPAGEOFF]
Lloh100:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_64
; %bb.63:
	add	x0, x19, #52
Lloh101:
	adrp	x8, _dualshock4_calibration_work@GOTPAGE
Lloh102:
	ldr	x8, [x8, _dualshock4_calibration_work@GOTPAGEOFF]
Lloh103:
	ldr	w1, [x8]
	bl	_INIT_WORK
	mov	w8, #1
	str	w8, [x19, #8]
Lloh104:
	adrp	x8, _DONGLE_DISCONNECTED@GOTPAGE
Lloh105:
	ldr	x8, [x8, _DONGLE_DISCONNECTED@GOTPAGEOFF]
Lloh106:
	ldr	w8, [x8]
	str	w8, [x19, #48]
LBB0_64:
Lloh107:
	adrp	x8, _dualshock4_send_output_report@GOTPAGE
Lloh108:
	ldr	x8, [x8, _dualshock4_send_output_report@GOTPAGEOFF]
	b	LBB0_11
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpAdd	Lloh9, Lloh10
	.loh AdrpAdd	Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh16, Lloh17, Lloh18
	.loh AdrpLdrGot	Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh36, Lloh37, Lloh38
	.loh AdrpLdrGotLdr	Lloh33, Lloh34, Lloh35
	.loh AdrpAdd	Lloh39, Lloh40
	.loh AdrpAdd	Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh43, Lloh44, Lloh45
	.loh AdrpLdrGotLdr	Lloh46, Lloh47, Lloh48
	.loh AdrpAdd	Lloh49, Lloh50
	.loh AdrpLdrGot	Lloh51, Lloh52
	.loh AdrpLdrGot	Lloh53, Lloh54
	.loh AdrpLdrGot	Lloh55, Lloh56
	.loh AdrpLdrGotLdr	Lloh57, Lloh58, Lloh59
	.loh AdrpLdrGot	Lloh60, Lloh61
	.loh AdrpAdd	Lloh62, Lloh63
	.loh AdrpLdrGotLdr	Lloh64, Lloh65, Lloh66
	.loh AdrpLdrGotLdr	Lloh70, Lloh71, Lloh72
	.loh AdrpLdrGotLdr	Lloh67, Lloh68, Lloh69
	.loh AdrpAdd	Lloh73, Lloh74
	.loh AdrpAdd	Lloh75, Lloh76
	.loh AdrpAdd	Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh79, Lloh80, Lloh81
	.loh AdrpLdrGot	Lloh82, Lloh83
	.loh AdrpLdrGot	Lloh84, Lloh85
	.loh AdrpAdd	Lloh86, Lloh87
	.loh AdrpLdrGotLdr	Lloh88, Lloh89, Lloh90
	.loh AdrpLdrGot	Lloh94, Lloh95
	.loh AdrpLdrGotLdr	Lloh91, Lloh92, Lloh93
	.loh AdrpAdd	Lloh96, Lloh97
	.loh AdrpLdrGotLdr	Lloh98, Lloh99, Lloh100
	.loh AdrpLdrGotLdr	Lloh104, Lloh105, Lloh106
	.loh AdrpLdrGotLdr	Lloh101, Lloh102, Lloh103
	.loh AdrpLdrGot	Lloh107, Lloh108
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"failed to allocate the device id\n"

l_.str.1:                               ; @.str.1
	.asciz	"failed to allocate the output report buffer\n"

	.comm	_NAVIGATION_CONTROLLER_USB,4,2  ; @NAVIGATION_CONTROLLER_USB
	.comm	_HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP,4,2 ; @HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP
	.comm	_HID_QUIRK_SKIP_OUTPUT_REPORT_ID,4,2 ; @HID_QUIRK_SKIP_OUTPUT_REPORT_ID
l_.str.2:                               ; @.str.2
	.asciz	"Failed to set controller into operational mode\n"

	.comm	_sixaxis_send_output_report,4,2 ; @sixaxis_send_output_report
	.comm	_NAVIGATION_CONTROLLER_BT,4,2   ; @NAVIGATION_CONTROLLER_BT
	.comm	_SIXAXIS_CONTROLLER_USB,4,2     ; @SIXAXIS_CONTROLLER_USB
l_.str.3:                               ; @.str.3
	.asciz	"Unable to initialize motion sensors: %d\n"

	.comm	_SIXAXIS_CONTROLLER_BT,4,2      ; @SIXAXIS_CONTROLLER_BT
	.comm	_DUALSHOCK4_CONTROLLER,4,2      ; @DUALSHOCK4_CONTROLLER
l_.str.4:                               ; @.str.4
	.asciz	"Failed to get calibration data from Dualshock 4\n"

l_.str.5:                               ; @.str.5
	.asciz	"Failed to get version data from Dualshock 4\n"

	.comm	_dev_attr_firmware_version,4,2  ; @dev_attr_firmware_version
l_.str.6:                               ; @.str.6
	.asciz	"can't create sysfs firmware_version attribute err: %d\n"

	.comm	_dev_attr_hardware_version,4,2  ; @dev_attr_hardware_version
l_.str.7:                               ; @.str.7
	.asciz	"can't create sysfs hardware_version attribute err: %d\n"

l_.str.8:                               ; @.str.8
	.asciz	"Unable to initialize multi-touch slots: %d\n"

	.comm	_DUALSHOCK4_CONTROLLER_BT,4,2   ; @DUALSHOCK4_CONTROLLER_BT
	.comm	_DS4_BT_DEFAULT_POLL_INTERVAL_MS,8,3 ; @DS4_BT_DEFAULT_POLL_INTERVAL_MS
	.comm	_dev_attr_bt_poll_interval,4,2  ; @dev_attr_bt_poll_interval
l_.str.9:                               ; @.str.9
	.asciz	"can't create sysfs bt_poll_interval attribute err: %d\n"

	.comm	_DUALSHOCK4_DONGLE,4,2          ; @DUALSHOCK4_DONGLE
	.comm	_dualshock4_calibration_work,4,2 ; @dualshock4_calibration_work
	.comm	_DONGLE_DISCONNECTED,4,2        ; @DONGLE_DISCONNECTED
	.comm	_dualshock4_send_output_report,4,2 ; @dualshock4_send_output_report
	.comm	_NSG_MRXU_REMOTE,4,2            ; @NSG_MRXU_REMOTE
	.comm	_NSG_MRXU_MAX_X,4,2             ; @NSG_MRXU_MAX_X
	.comm	_NSG_MRXU_MAX_Y,4,2             ; @NSG_MRXU_MAX_Y
	.comm	_MOTION_CONTROLLER,4,2          ; @MOTION_CONTROLLER
	.comm	_motion_send_output_report,4,2  ; @motion_send_output_report
	.comm	_SONY_LED_SUPPORT,4,2           ; @SONY_LED_SUPPORT
	.comm	_SONY_BATTERY_SUPPORT,4,2       ; @SONY_BATTERY_SUPPORT
l_.str.10:                              ; @.str.10
	.asciz	"hw open failed\n"

	.comm	_SONY_FF_SUPPORT,4,2            ; @SONY_FF_SUPPORT
	.no_dead_strip	_sony_input_configured
.subsections_via_symbols
