	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function msp_probe
LCPI0_0:
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_msp_probe:                             ## @msp_probe
	.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	$88, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %rbx
	testq	%rsi, %rsi
	jne	LBB0_2
## %bb.1:
	movl	16(%rbx), %edi
	leaq	L_.str(%rip), %rsi
	movl	$4, %edx
	callq	_strscpy
LBB0_2:
	movq	%rbx, %rdi
	callq	_msp_reset
	cmpl	$-1, %eax
	je	LBB0_6
## %bb.3:
	movq	_GFP_KERNEL@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	%rbx, %rdi
	movl	$160, %esi
	callq	_devm_kzalloc
	testq	%rax, %rax
	je	LBB0_7
## %bb.4:
	movq	%rax, %r14
	leaq	144(%rax), %rdi
	movq	_msp_ops@GOTPCREL(%rip), %rdx
	movq	%rbx, %rsi
	callq	_v4l2_i2c_subdev_init
	movq	_V4L2_STD_NTSC@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 128(%r14)
	movq	_V4L2_STD_ALL@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 124(%r14)
	movq	_V4L2_TUNER_MODE_STEREO@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 120(%r14)
	movl	$-1, (%r14)
	movq	$0, 112(%r14)
	leaq	108(%r14), %rdi
	callq	_init_waitqueue_head
	movq	_MSP_INPUT_DEFAULT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 104(%r14)
	movq	_MSP_OUTPUT_DEFAULT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 100(%r14)
	movq	%rbx, %rdi
	movl	$30, %esi
	callq	_msp_read_dsp
	movl	%eax, 4(%r14)
	cmpl	$-1, %eax
	je	LBB0_8
## %bb.5:
	movq	%rbx, %rdi
	movl	$31, %esi
	callq	_msp_read_dsp
	movq	%rax, %r9
	movl	%r9d, 8(%r14)
	movl	4(%r14), %r8d
	jmp	LBB0_9
LBB0_6:
	movq	_msp_debug@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	leaq	L_.str.1(%rip), %rcx
	xorl	%r13d, %r13d
	jmp	LBB0_13
LBB0_7:
	movq	_ENOMEM@GOTPCREL(%rip), %rax
	xorl	%r13d, %r13d
	jmp	LBB0_14
LBB0_8:
	movl	8(%r14), %r9d
	movl	$-1, %r8d
LBB0_9:
	movq	_msp_debug@GOTPCREL(%rip), %r15
	movl	(%r15), %edx
	leaq	L_.str.2(%rip), %rcx
	xorl	%r13d, %r13d
	movq	%rbx, %rdi
	movl	$1, %esi
                                        ## kill: def $r9d killed $r9d killed $r9
	xorl	%eax, %eax
	callq	_dev_dbg_lvl
	movl	4(%r14), %edx
	cmpl	$-1, %edx
	je	LBB0_12
## %bb.10:
	testl	%edx, %edx
	jne	LBB0_16
## %bb.11:
	movl	8(%r14), %eax
	testl	%eax, %eax
	jne	LBB0_17
LBB0_12:
	movl	(%r15), %edx
	leaq	L_.str.3(%rip), %rcx
LBB0_13:
	movq	%rbx, %rdi
	movl	$1, %esi
	xorl	%eax, %eax
	callq	_dev_dbg_lvl
	movq	_ENODEV@GOTPCREL(%rip), %rax
LBB0_14:
	subl	(%rax), %r13d
LBB0_15:
	movl	%r13d, %eax
	addq	$88, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_16:
	movl	8(%r14), %eax
LBB0_17:
	movq	%rbx, -80(%rbp)                 ## 8-byte Spill
	movl	%edx, %edi
	shrl	$4, %edi
	andl	$15, %edi
	movl	%eax, -72(%rbp)                 ## 4-byte Spill
	shrl	$8, %eax
	movzbl	%al, %esi
	imull	$205, %esi, %eax
	shrl	$10, %eax
	andl	$-2, %eax
	leal	(%rax,%rax,4), %ecx
	movl	%esi, %eax
	subb	%cl, %al
	movl	%edx, -60(%rbp)                 ## 4-byte Spill
	movl	%edx, %r9d
	andl	$15, %r9d
	leal	64(%r9), %edx
	xorl	%r8d, %r8d
	cmpb	$5, %al
	setb	%r8b
	testl	%edi, %edi
	setne	%cl
	movb	%cl, -56(%rbp)                  ## 1-byte Spill
	orb	%r8b, %cl
	movzbl	%cl, %ecx
	movl	%ecx, -48(%rbp)                 ## 4-byte Spill
	xorl	%r12d, %r12d
	xorl	%ebx, %ebx
	cmpl	$68, %edx
	setae	%bl
	cmovael	%ecx, %r12d
	xorl	%r10d, %r10d
	movl	%edx, -64(%rbp)                 ## 4-byte Spill
	cmpl	$71, %edx
	setae	%r10b
	sete	%r15b
	movb	%r15b, -41(%rbp)                ## 1-byte Spill
	leal	128(%rbx,%rbx), %ecx
	movl	$129, %r13d
	cmovbl	%ecx, %r13d
	testl	%edi, %edi
	sete	%r11b
	xorl	%ecx, %ecx
	cmpb	$7, %al
	setb	%cl
	movl	%r10d, %edx
	andb	%cl, %dl
	movzbl	%dl, %edx
	movd	%edx, %xmm0
	andb	%r8b, %bl
	cmpb	$1, %al
	movzbl	%bl, %edx
	pinsrb	$4, %edx, %xmm0
	sete	%dl
	andb	%r15b, %dl
	testl	%edi, %edi
	pinsrb	$8, %ecx, %xmm0
	movzbl	%dl, %edx
	pinsrb	$12, %edx, %xmm0
	movdqa	LCPI0_0(%rip), %xmm1            ## xmm1 = [1,1,1,1]
	pand	%xmm1, %xmm0
	pextrd	$1, %xmm0, %edx
	movl	$1, %r15d
	cmovel	%edx, %r15d
	addl	$3, %edi
	movl	%edi, -68(%rbp)                 ## 4-byte Spill
	imull	$10000, %edi, %edx              ## imm = 0x2710
	orl	%r9d, %edx
	leal	(%rsi,%rsi,4), %edi
	leal	(%rdx,%rdi,2), %r9d
	addl	$4000, %r9d                     ## imm = 0xFA0
	leal	-10(%rsi), %edi
	cmpl	$10, %edi
	setb	%bl
	leal	-50(%rsi), %edi
	cmpl	$10, %edi
	setb	%dl
	orb	%bl, %dl
	movzbl	%dl, %edx
	movd	%edx, %xmm2
	pinsrb	$4, %r10d, %xmm2
	pinsrb	$8, %r8d, %xmm2
	orb	-56(%rbp), %cl                  ## 1-byte Folded Reload
	movzbl	%cl, %ecx
	pinsrb	$12, %ecx, %xmm2
	movl	%r9d, 12(%r14)
	pand	%xmm1, %xmm2
	movdqu	%xmm2, 16(%r14)
	movl	-48(%rbp), %ecx                 ## 4-byte Reload
	movl	%ecx, 32(%r14)
	movl	%ecx, 40(%r14)
	movl	%r12d, 44(%r14)
	movl	%r15d, 36(%r14)
	movdqu	%xmm0, 48(%r14)
	cmpb	$2, %al
	sete	%al
	movb	-41(%rbp), %cl                  ## 1-byte Reload
	andb	%cl, %al
	movzbl	%al, %eax
	movl	%eax, 64(%r14)
	andb	%cl, %r11b
	movq	%rsi, -56(%rbp)                 ## 8-byte Spill
	leal	-30(%rsi), %eax
	cmpl	$10, %eax
	setb	%al
	andb	%r11b, %al
	movzbl	%al, %eax
	movl	%eax, 68(%r14)
	movq	_opmode@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	leal	-130(%rax), %ecx
	cmpl	$-2, %ecx
	cmovael	%eax, %r13d
	movl	%r13d, 72(%r14)
	leaq	96(%r14), %r12
	movq	%r12, %rdi
	movl	$6, %esi
	callq	_v4l2_ctrl_handler_init
	cmpl	$0, 56(%r14)
	je	LBB0_19
## %bb.18:
	movq	_V4L2_CID_AUDIO_BASS@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	$32768, (%rsp)                  ## imm = 0x8000
	movq	_msp_ctrl_ops@GOTPCREL(%rip), %r13
	movq	%r12, %rdi
	movq	%r13, %rsi
	xorl	%ecx, %ecx
	movl	$65535, %r8d                    ## imm = 0xFFFF
	movl	$655, %r9d                      ## imm = 0x28F
	callq	_v4l2_ctrl_new_std
	movq	_V4L2_CID_AUDIO_TREBLE@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	$32768, (%rsp)                  ## imm = 0x8000
	movq	%r12, %rdi
	movq	%r13, %rsi
	xorl	%ecx, %ecx
	movl	$65535, %r8d                    ## imm = 0xFFFF
	movl	$655, %r9d                      ## imm = 0x28F
	callq	_v4l2_ctrl_new_std
	movq	_V4L2_CID_AUDIO_LOUDNESS@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	$0, (%rsp)
	movq	%r12, %rdi
	movq	%r13, %rsi
	xorl	%ecx, %ecx
	movl	$1, %r8d
	movl	$1, %r9d
	callq	_v4l2_ctrl_new_std
LBB0_19:
	movq	_V4L2_CID_AUDIO_VOLUME@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	$58880, (%rsp)                  ## imm = 0xE600
	movq	_msp_ctrl_ops@GOTPCREL(%rip), %rbx
	xorl	%r13d, %r13d
	movq	%r12, %rdi
	movq	%rbx, %rsi
	xorl	%ecx, %ecx
	movl	$65535, %r8d                    ## imm = 0xFFFF
	movl	$655, %r9d                      ## imm = 0x28F
	callq	_v4l2_ctrl_new_std
	movq	%rax, 80(%r14)
	movq	_V4L2_CID_AUDIO_BALANCE@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	$32768, (%rsp)                  ## imm = 0x8000
	movq	%r12, %rdi
	movq	%rbx, %rsi
	xorl	%ecx, %ecx
	movl	$65535, %r8d                    ## imm = 0xFFFF
	movl	$655, %r9d                      ## imm = 0x28F
	callq	_v4l2_ctrl_new_std
	movq	_V4L2_CID_AUDIO_MUTE@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	$0, (%rsp)
	movq	%r12, %rdi
	movq	%rbx, %rsi
	xorl	%ecx, %ecx
	movl	$1, %r8d
	movl	$1, %r9d
	callq	_v4l2_ctrl_new_std
	movq	%rax, 88(%r14)
	movq	%r12, 144(%r14)
	movl	96(%r14), %ebx
	testl	%ebx, %ebx
	je	LBB0_21
## %bb.20:
	movq	%r12, %rdi
	callq	_v4l2_ctrl_handler_free
	movl	%ebx, %r13d
	jmp	LBB0_15
LBB0_21:
	movl	-60(%rbp), %eax                 ## 4-byte Reload
	movzbl	%ah, %eax
	addl	$64, %eax
	movl	%eax, -48(%rbp)                 ## 4-byte Spill
	movl	-72(%rbp), %r15d                ## 4-byte Reload
	andl	$31, %r15d
	movq	%r14, %rsi
	addq	$80, %rsi
	movl	$2, %edi
	callq	_v4l2_ctrl_cluster
	movq	%r12, %rdi
	callq	_v4l2_ctrl_handler_setup
	cmpl	$0, 20(%r14)
	leaq	L_.str.6(%rip), %rax
	leaq	L_.str.7(%rip), %rcx
	cmoveq	%rax, %rcx
	movq	-80(%rbp), %r12                 ## 8-byte Reload
	movq	8(%r12), %rdx
	leaq	L_.str.8(%rip), %rsi
	cmoveq	%rax, %rsi
	movl	(%rdx), %edx
	cmpl	$0, 16(%r14)
	leaq	L_.str.5(%rip), %rdi
	cmoveq	%rax, %rdi
	cmoveq	%rax, %rcx
	movq	_opmode_str@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movslq	72(%r14), %rbx
	movl	(%rax,%rbx,4), %eax
	movl	%eax, 40(%rsp)
	movq	%rsi, 32(%rsp)
	movq	%rcx, 24(%rsp)
	movq	%rdi, 16(%rsp)
	movl	%edx, 8(%rsp)
	movl	%r15d, (%rsp)
	leaq	L_.str.4(%rip), %rsi
	movq	%r12, %rdi
	movl	-68(%rbp), %edx                 ## 4-byte Reload
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
                                        ## kill: def $ecx killed $ecx killed $rcx
	movl	-64(%rbp), %r8d                 ## 4-byte Reload
	movl	-48(%rbp), %r9d                 ## 4-byte Reload
	callq	_dev_info
	movl	72(%r14), %eax
	addl	$-128, %eax
	cmpl	$2, %eax
	ja	LBB0_15
## %bb.22:
	cltq
	leaq	l_switch.table.msp_probe(%rip), %rcx
	movq	(%rcx,%rax,8), %rdi
	leaq	L_.str.9(%rip), %rdx
	movq	%r12, %rsi
	callq	_kthread_run
	movl	%eax, 76(%r14)
	movl	%eax, %edi
	callq	_IS_ERR
	testq	%rax, %rax
	je	LBB0_24
## %bb.23:
	leaq	L_.str.10(%rip), %rsi
	movq	%r12, %rdi
	callq	_dev_warn
LBB0_24:
	movq	%r12, %rdi
	callq	_msp_wake_thread
	jmp	LBB0_15
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"msp3400"

	.comm	_msp_debug,4,2                  ## @msp_debug
L_.str.1:                               ## @.str.1
	.asciz	"msp3400 not found\n"

	.comm	_ENODEV,4,2                     ## @ENODEV
	.comm	_GFP_KERNEL,4,2                 ## @GFP_KERNEL
	.comm	_ENOMEM,4,2                     ## @ENOMEM
	.comm	_msp_ops,4,2                    ## @msp_ops
	.comm	_V4L2_STD_NTSC,4,2              ## @V4L2_STD_NTSC
	.comm	_V4L2_STD_ALL,4,2               ## @V4L2_STD_ALL
	.comm	_V4L2_TUNER_MODE_STEREO,4,2     ## @V4L2_TUNER_MODE_STEREO
	.comm	_MSP_INPUT_DEFAULT,4,2          ## @MSP_INPUT_DEFAULT
	.comm	_MSP_OUTPUT_DEFAULT,4,2         ## @MSP_OUTPUT_DEFAULT
L_.str.2:                               ## @.str.2
	.asciz	"rev1=0x%04x, rev2=0x%04x\n"

L_.str.3:                               ## @.str.3
	.asciz	"not an msp3400 (cannot read chip version)\n"

	.comm	_opmode,4,2                     ## @opmode
	.comm	_msp_ctrl_ops,4,2               ## @msp_ctrl_ops
	.comm	_V4L2_CID_AUDIO_BASS,4,2        ## @V4L2_CID_AUDIO_BASS
	.comm	_V4L2_CID_AUDIO_TREBLE,4,2      ## @V4L2_CID_AUDIO_TREBLE
	.comm	_V4L2_CID_AUDIO_LOUDNESS,4,2    ## @V4L2_CID_AUDIO_LOUDNESS
	.comm	_V4L2_CID_AUDIO_VOLUME,4,2      ## @V4L2_CID_AUDIO_VOLUME
	.comm	_V4L2_CID_AUDIO_BALANCE,4,2     ## @V4L2_CID_AUDIO_BALANCE
	.comm	_V4L2_CID_AUDIO_MUTE,4,2        ## @V4L2_CID_AUDIO_MUTE
L_.str.4:                               ## @.str.4
	.asciz	"MSP%d4%02d%c-%c%d found on %s: supports %s%s%s, mode is %s\n"

L_.str.5:                               ## @.str.5
	.asciz	"nicam"

L_.str.6:                               ## @.str.6
	.space	1

L_.str.7:                               ## @.str.7
	.asciz	" and "

L_.str.8:                               ## @.str.8
	.asciz	"radio"

	.comm	_opmode_str,8,3                 ## @opmode_str
L_.str.9:                               ## @.str.9
	.asciz	"msp34xx"

L_.str.10:                              ## @.str.10
	.asciz	"kernel_thread() failed\n"

	.comm	_MEDIA_ENT_F_IF_AUD_DECODER,4,2 ## @MEDIA_ENT_F_IF_AUD_DECODER
	.comm	_MEDIA_PAD_FL_SINK,4,2          ## @MEDIA_PAD_FL_SINK
	.comm	_MEDIA_PAD_FL_SOURCE,4,2        ## @MEDIA_PAD_FL_SOURCE
	.comm	_MSP3400_PAD_IF_INPUT,8,3       ## @MSP3400_PAD_IF_INPUT
	.comm	_MSP3400_PAD_OUT,8,3            ## @MSP3400_PAD_OUT
	.comm	_PAD_SIGNAL_AUDIO,8,3           ## @PAD_SIGNAL_AUDIO
	.no_dead_strip	_msp_probe
	.section	__DATA,__const
	.p2align	3                               ## @switch.table.msp_probe
l_switch.table.msp_probe:
	.quad	_msp3400c_thread
	.quad	_msp34xxg_thread
	.quad	_msp3410d_thread

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3                               ; -- Begin function msp_probe
lCPI0_0:
	.long	1                               ; 0x1
	.long	2                               ; 0x2
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_msp_probe:                             ; @msp_probe
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #128
	.cfi_def_cfa_offset 128
	stp	x28, x27, [sp, #32]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #48]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #64]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #80]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #96]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #112]            ; 16-byte Folded Spill
	add	x29, sp, #112
	.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
	mov	x19, x0
	cbnz	x1, LBB0_2
; %bb.1:
	ldr	w0, [x19, #16]
Lloh0:
	adrp	x1, l_.str@PAGE
Lloh1:
	add	x1, x1, l_.str@PAGEOFF
	mov	w2, #4
	bl	_strscpy
LBB0_2:
	mov	x0, x19
	bl	_msp_reset
	cmn	w0, #1
	b.eq	LBB0_6
; %bb.3:
Lloh2:
	adrp	x8, _GFP_KERNEL@GOTPAGE
Lloh3:
	ldr	x8, [x8, _GFP_KERNEL@GOTPAGEOFF]
Lloh4:
	ldr	w2, [x8]
	mov	x0, x19
	mov	w1, #160
	bl	_devm_kzalloc
	cbz	x0, LBB0_7
; %bb.4:
	mov	x20, x0
	add	x0, x0, #144
Lloh5:
	adrp	x2, _msp_ops@GOTPAGE
Lloh6:
	ldr	x2, [x2, _msp_ops@GOTPAGEOFF]
	mov	x1, x19
	bl	_v4l2_i2c_subdev_init
Lloh7:
	adrp	x8, _V4L2_STD_NTSC@GOTPAGE
Lloh8:
	ldr	x8, [x8, _V4L2_STD_NTSC@GOTPAGEOFF]
Lloh9:
	ldr	w8, [x8]
	str	w8, [x20, #128]
Lloh10:
	adrp	x8, _V4L2_STD_ALL@GOTPAGE
Lloh11:
	ldr	x8, [x8, _V4L2_STD_ALL@GOTPAGEOFF]
Lloh12:
	ldr	w8, [x8]
Lloh13:
	adrp	x9, _V4L2_TUNER_MODE_STEREO@GOTPAGE
Lloh14:
	ldr	x9, [x9, _V4L2_TUNER_MODE_STEREO@GOTPAGEOFF]
Lloh15:
	ldr	w9, [x9]
	stp	w9, w8, [x20, #120]
	mov	w8, #-1
	str	w8, [x20]
	str	xzr, [x20, #112]
	add	x0, x20, #108
	bl	_init_waitqueue_head
Lloh16:
	adrp	x8, _MSP_INPUT_DEFAULT@GOTPAGE
Lloh17:
	ldr	x8, [x8, _MSP_INPUT_DEFAULT@GOTPAGEOFF]
Lloh18:
	ldr	w8, [x8]
Lloh19:
	adrp	x9, _MSP_OUTPUT_DEFAULT@GOTPAGE
Lloh20:
	ldr	x9, [x9, _MSP_OUTPUT_DEFAULT@GOTPAGEOFF]
Lloh21:
	ldr	w9, [x9]
	stp	w9, w8, [x20, #100]
	mov	x0, x19
	mov	w1, #30
	bl	_msp_read_dsp
	str	w0, [x20, #4]
	cmn	w0, #1
	b.eq	LBB0_8
; %bb.5:
	mov	x0, x19
	mov	w1, #31
	bl	_msp_read_dsp
	str	w0, [x20, #8]
	ldr	w8, [x20, #4]
                                        ; kill: def $w0 killed $w0 killed $x0 def $x0
	b	LBB0_9
LBB0_6:
Lloh22:
	adrp	x8, _msp_debug@GOTPAGE
Lloh23:
	ldr	x8, [x8, _msp_debug@GOTPAGEOFF]
Lloh24:
	ldr	w2, [x8]
Lloh25:
	adrp	x3, l_.str.1@PAGE
Lloh26:
	add	x3, x3, l_.str.1@PAGEOFF
	b	LBB0_13
LBB0_7:
Lloh27:
	adrp	x8, _ENOMEM@GOTPAGE
Lloh28:
	ldr	x8, [x8, _ENOMEM@GOTPAGEOFF]
	b	LBB0_14
LBB0_8:
	ldr	w0, [x20, #8]
	mov	w8, #-1
LBB0_9:
Lloh29:
	adrp	x21, _msp_debug@GOTPAGE
Lloh30:
	ldr	x21, [x21, _msp_debug@GOTPAGEOFF]
	ldr	w2, [x21]
	stp	x8, x0, [sp]
Lloh31:
	adrp	x3, l_.str.2@PAGE
Lloh32:
	add	x3, x3, l_.str.2@PAGEOFF
	mov	x0, x19
	mov	w1, #1
	bl	_dev_dbg_lvl
	ldr	w27, [x20, #4]
	cmn	w27, #1
	b.eq	LBB0_12
; %bb.10:
	cbnz	w27, LBB0_16
; %bb.11:
	ldr	w28, [x20, #8]
	cbnz	w28, LBB0_17
LBB0_12:
	ldr	w2, [x21]
Lloh33:
	adrp	x3, l_.str.3@PAGE
Lloh34:
	add	x3, x3, l_.str.3@PAGEOFF
LBB0_13:
	mov	x0, x19
	mov	w1, #1
	bl	_dev_dbg_lvl
Lloh35:
	adrp	x8, _ENODEV@GOTPAGE
Lloh36:
	ldr	x8, [x8, _ENODEV@GOTPAGEOFF]
LBB0_14:
	ldr	w8, [x8]
	neg	w26, w8
LBB0_15:
	mov	x0, x26
	ldp	x29, x30, [sp, #112]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #96]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #80]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #64]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #48]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #32]             ; 16-byte Folded Reload
	add	sp, sp, #128
	ret
LBB0_16:
	ldr	w28, [x20, #8]
LBB0_17:
	lsr	w8, w28, #8
	ubfx	w21, w28, #8, #8
	mov	w9, #205
	mul	w9, w21, w9
	lsr	w9, w9, #11
	mov	w13, #10
	msub	w8, w9, w13, w8
	mov	w22, #64
	bfxil	w22, w27, #0, #4
	and	w14, w8, #0xff
	cmp	w14, #5
	cset	w9, lo
	mov	w15, #15
	tst	w15, w27, lsr #4
	cset	w11, ne
	orr	w10, w11, w9
	cmp	w22, #67
	csel	w12, w10, wzr, hi
	cset	w16, hi
	mov	w17, #128
	mov	w0, #130
	csel	w17, w0, w17, hi
	ands	w15, w15, w27, lsr #4
	add	w23, w15, #3
	mov	w15, #10000
	mul	w15, w23, w15
	bfxil	w15, w27, #0, #4
	madd	w13, w21, w13, w15
	add	w13, w13, #4000
	and	w15, w16, w9
	csinc	w16, w15, wzr, eq
	cset	w0, eq
	sub	w1, w21, #10
	sub	w2, w21, #50
	cmp	w1, #10
	ccmp	w2, #10, #0, hs
	cset	w1, lo
	stp	w13, w1, [x20, #12]
	cmp	w14, #7
	cset	w13, lo
	cmp	w22, #71
	cset	w14, eq
	sub	w1, w21, #30
	cmp	w1, #10
Lloh37:
	adrp	x1, _opmode@GOTPAGE
Lloh38:
	ldr	x1, [x1, _opmode@GOTPAGEOFF]
Lloh39:
	ldr	w1, [x1]
	cset	w2, lo
	sub	w3, w1, #130
	mov	w4, #129
	cmp	w22, #70
	csel	w17, w4, w17, hi
	cset	w4, hi
	stp	w4, w9, [x20, #20]
	orr	w9, w11, w13
	stp	w9, w10, [x20, #28]
	stp	w16, w10, [x20, #36]
	and	w9, w4, w13
	stp	w12, w9, [x20, #44]
	stp	w15, w13, [x20, #52]
	dup.2s	v0, w8
	movi	d1, #0x0000ff000000ff
	and.8b	v0, v0, v1
Lloh40:
	adrp	x8, lCPI0_0@PAGE
Lloh41:
	ldr	d1, [x8, lCPI0_0@PAGEOFF]
	cmeq.2s	v0, v0, v1
	dup.2s	v1, w14
	and.8b	v0, v1, v0
	stur	d0, [x20, #60]
	and	w8, w0, w14
	and	w8, w8, w2
	cmn	w3, #2
	csel	w9, w17, w1, lo
	stp	w8, w9, [x20, #68]
	add	x24, x20, #96
	mov	x0, x24
	mov	w1, #6
	bl	_v4l2_ctrl_handler_init
	ldr	w8, [x20, #56]
	cbz	w8, LBB0_19
; %bb.18:
Lloh42:
	adrp	x8, _V4L2_CID_AUDIO_BASS@GOTPAGE
Lloh43:
	ldr	x8, [x8, _V4L2_CID_AUDIO_BASS@GOTPAGEOFF]
Lloh44:
	ldr	w2, [x8]
Lloh45:
	adrp	x25, _msp_ctrl_ops@GOTPAGE
Lloh46:
	ldr	x25, [x25, _msp_ctrl_ops@GOTPAGEOFF]
	mov	x0, x24
	mov	x1, x25
	mov	w3, #0
	mov	w4, #65535
	mov	w5, #655
	mov	w6, #32768
	bl	_v4l2_ctrl_new_std
Lloh47:
	adrp	x8, _V4L2_CID_AUDIO_TREBLE@GOTPAGE
Lloh48:
	ldr	x8, [x8, _V4L2_CID_AUDIO_TREBLE@GOTPAGEOFF]
Lloh49:
	ldr	w2, [x8]
	mov	x0, x24
	mov	x1, x25
	mov	w3, #0
	mov	w4, #65535
	mov	w5, #655
	mov	w6, #32768
	bl	_v4l2_ctrl_new_std
Lloh50:
	adrp	x8, _V4L2_CID_AUDIO_LOUDNESS@GOTPAGE
Lloh51:
	ldr	x8, [x8, _V4L2_CID_AUDIO_LOUDNESS@GOTPAGEOFF]
Lloh52:
	ldr	w2, [x8]
	mov	x0, x24
	mov	x1, x25
	mov	w3, #0
	mov	w4, #1
	mov	w5, #1
	mov	w6, #0
	bl	_v4l2_ctrl_new_std
LBB0_19:
Lloh53:
	adrp	x8, _V4L2_CID_AUDIO_VOLUME@GOTPAGE
Lloh54:
	ldr	x8, [x8, _V4L2_CID_AUDIO_VOLUME@GOTPAGEOFF]
Lloh55:
	ldr	w2, [x8]
Lloh56:
	adrp	x26, _msp_ctrl_ops@GOTPAGE
Lloh57:
	ldr	x26, [x26, _msp_ctrl_ops@GOTPAGEOFF]
	mov	x0, x24
	mov	x1, x26
	mov	w3, #0
	mov	w4, #65535
	mov	w5, #655
	mov	w6, #58880
	bl	_v4l2_ctrl_new_std
	mov	x25, x20
	str	x0, [x25, #80]!
Lloh58:
	adrp	x8, _V4L2_CID_AUDIO_BALANCE@GOTPAGE
Lloh59:
	ldr	x8, [x8, _V4L2_CID_AUDIO_BALANCE@GOTPAGEOFF]
Lloh60:
	ldr	w2, [x8]
	mov	x0, x24
	mov	x1, x26
	mov	w3, #0
	mov	w4, #65535
	mov	w5, #655
	mov	w6, #32768
	bl	_v4l2_ctrl_new_std
Lloh61:
	adrp	x8, _V4L2_CID_AUDIO_MUTE@GOTPAGE
Lloh62:
	ldr	x8, [x8, _V4L2_CID_AUDIO_MUTE@GOTPAGEOFF]
Lloh63:
	ldr	w2, [x8]
	mov	x0, x24
	mov	x1, x26
	mov	w3, #0
	mov	w4, #1
	mov	w5, #1
	mov	w6, #0
	bl	_v4l2_ctrl_new_std
	str	x0, [x25, #8]
	str	x24, [x25, #64]
	ldr	w26, [x25, #16]
	cbz	w26, LBB0_21
; %bb.20:
	mov	x0, x24
	bl	_v4l2_ctrl_handler_free
	b	LBB0_15
LBB0_21:
	ubfx	w8, w27, #8, #8
	add	w26, w8, #64
	and	w27, w28, #0x1f
	mov	w0, #2
	mov	x1, x25
	bl	_v4l2_ctrl_cluster
	mov	x0, x24
	bl	_v4l2_ctrl_handler_setup
Lloh64:
	adrp	x8, l_.str.6@PAGE
Lloh65:
	add	x8, x8, l_.str.6@PAGEOFF
Lloh66:
	adrp	x9, l_.str.8@PAGE
Lloh67:
	add	x9, x9, l_.str.8@PAGEOFF
	ldp	w11, w10, [x20, #16]
	cmp	w10, #0
	csel	x9, x8, x9, eq
	ldr	x10, [x19, #8]
	ldr	w7, [x10]
Lloh68:
	adrp	x10, l_.str.5@PAGE
Lloh69:
	add	x10, x10, l_.str.5@PAGEOFF
	ccmp	w11, #0, #4, ne
Lloh70:
	adrp	x12, l_.str.7@PAGE
Lloh71:
	add	x12, x12, l_.str.7@PAGEOFF
	csel	x12, x8, x12, eq
	cmp	w11, #0
	csel	x8, x8, x10, eq
Lloh72:
	adrp	x10, _opmode_str@GOTPAGE
Lloh73:
	ldr	x10, [x10, _opmode_str@GOTPAGEOFF]
Lloh74:
	ldr	x10, [x10]
	ldrsw	x11, [x20, #72]
	ldr	w10, [x10, x11, lsl #2]
	str	w10, [sp, #24]
	stp	x12, x9, [sp, #8]
	str	x8, [sp]
Lloh75:
	adrp	x1, l_.str.4@PAGE
Lloh76:
	add	x1, x1, l_.str.4@PAGEOFF
	mov	x0, x19
	mov	x2, x23
	mov	x3, x21
	mov	x4, x22
	mov	x5, x26
	mov	x6, x27
	bl	_dev_info
	ldr	w8, [x20, #72]
	sub	w8, w8, #128
	cmp	w8, #2
	b.hi	LBB0_25
; %bb.22:
Lloh77:
	adrp	x9, l_switch.table.msp_probe@PAGE
Lloh78:
	add	x9, x9, l_switch.table.msp_probe@PAGEOFF
	ldr	x0, [x9, w8, sxtw #3]
Lloh79:
	adrp	x2, l_.str.9@PAGE
Lloh80:
	add	x2, x2, l_.str.9@PAGEOFF
	mov	x1, x19
	bl	_kthread_run
	str	w0, [x20, #76]
	bl	_IS_ERR
	cbz	x0, LBB0_24
; %bb.23:
Lloh81:
	adrp	x1, l_.str.10@PAGE
Lloh82:
	add	x1, x1, l_.str.10@PAGEOFF
	mov	x0, x19
	bl	_dev_warn
LBB0_24:
	mov	x0, x19
	bl	_msp_wake_thread
LBB0_25:
	mov	w26, #0
	b	LBB0_15
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh21
	.loh AdrpLdrGotLdr	Lloh16, Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpAdd	Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh22, Lloh23, Lloh24
	.loh AdrpLdrGot	Lloh27, Lloh28
	.loh AdrpAdd	Lloh31, Lloh32
	.loh AdrpLdrGot	Lloh29, Lloh30
	.loh AdrpAdd	Lloh33, Lloh34
	.loh AdrpLdrGot	Lloh35, Lloh36
	.loh AdrpLdr	Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh37, Lloh38, Lloh39
	.loh AdrpLdrGotLdr	Lloh50, Lloh51, Lloh52
	.loh AdrpLdrGotLdr	Lloh47, Lloh48, Lloh49
	.loh AdrpLdrGot	Lloh45, Lloh46
	.loh AdrpLdrGotLdr	Lloh42, Lloh43, Lloh44
	.loh AdrpLdrGotLdr	Lloh61, Lloh62, Lloh63
	.loh AdrpLdrGotLdr	Lloh58, Lloh59, Lloh60
	.loh AdrpLdrGot	Lloh56, Lloh57
	.loh AdrpLdrGotLdr	Lloh53, Lloh54, Lloh55
	.loh AdrpAdd	Lloh75, Lloh76
	.loh AdrpLdrGotLdr	Lloh72, Lloh73, Lloh74
	.loh AdrpAdd	Lloh70, Lloh71
	.loh AdrpAdd	Lloh68, Lloh69
	.loh AdrpAdd	Lloh66, Lloh67
	.loh AdrpAdd	Lloh64, Lloh65
	.loh AdrpAdd	Lloh79, Lloh80
	.loh AdrpAdd	Lloh77, Lloh78
	.loh AdrpAdd	Lloh81, Lloh82
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"msp3400"

	.comm	_msp_debug,4,2                  ; @msp_debug
l_.str.1:                               ; @.str.1
	.asciz	"msp3400 not found\n"

	.comm	_ENODEV,4,2                     ; @ENODEV
	.comm	_GFP_KERNEL,4,2                 ; @GFP_KERNEL
	.comm	_ENOMEM,4,2                     ; @ENOMEM
	.comm	_msp_ops,4,2                    ; @msp_ops
	.comm	_V4L2_STD_NTSC,4,2              ; @V4L2_STD_NTSC
	.comm	_V4L2_STD_ALL,4,2               ; @V4L2_STD_ALL
	.comm	_V4L2_TUNER_MODE_STEREO,4,2     ; @V4L2_TUNER_MODE_STEREO
	.comm	_MSP_INPUT_DEFAULT,4,2          ; @MSP_INPUT_DEFAULT
	.comm	_MSP_OUTPUT_DEFAULT,4,2         ; @MSP_OUTPUT_DEFAULT
l_.str.2:                               ; @.str.2
	.asciz	"rev1=0x%04x, rev2=0x%04x\n"

l_.str.3:                               ; @.str.3
	.asciz	"not an msp3400 (cannot read chip version)\n"

	.comm	_opmode,4,2                     ; @opmode
	.comm	_msp_ctrl_ops,4,2               ; @msp_ctrl_ops
	.comm	_V4L2_CID_AUDIO_BASS,4,2        ; @V4L2_CID_AUDIO_BASS
	.comm	_V4L2_CID_AUDIO_TREBLE,4,2      ; @V4L2_CID_AUDIO_TREBLE
	.comm	_V4L2_CID_AUDIO_LOUDNESS,4,2    ; @V4L2_CID_AUDIO_LOUDNESS
	.comm	_V4L2_CID_AUDIO_VOLUME,4,2      ; @V4L2_CID_AUDIO_VOLUME
	.comm	_V4L2_CID_AUDIO_BALANCE,4,2     ; @V4L2_CID_AUDIO_BALANCE
	.comm	_V4L2_CID_AUDIO_MUTE,4,2        ; @V4L2_CID_AUDIO_MUTE
l_.str.4:                               ; @.str.4
	.asciz	"MSP%d4%02d%c-%c%d found on %s: supports %s%s%s, mode is %s\n"

l_.str.5:                               ; @.str.5
	.asciz	"nicam"

l_.str.6:                               ; @.str.6
	.space	1

l_.str.7:                               ; @.str.7
	.asciz	" and "

l_.str.8:                               ; @.str.8
	.asciz	"radio"

	.comm	_opmode_str,8,3                 ; @opmode_str
l_.str.9:                               ; @.str.9
	.asciz	"msp34xx"

l_.str.10:                              ; @.str.10
	.asciz	"kernel_thread() failed\n"

	.comm	_MEDIA_ENT_F_IF_AUD_DECODER,4,2 ; @MEDIA_ENT_F_IF_AUD_DECODER
	.comm	_MEDIA_PAD_FL_SINK,4,2          ; @MEDIA_PAD_FL_SINK
	.comm	_MEDIA_PAD_FL_SOURCE,4,2        ; @MEDIA_PAD_FL_SOURCE
	.comm	_MSP3400_PAD_IF_INPUT,8,3       ; @MSP3400_PAD_IF_INPUT
	.comm	_MSP3400_PAD_OUT,8,3            ; @MSP3400_PAD_OUT
	.comm	_PAD_SIGNAL_AUDIO,8,3           ; @PAD_SIGNAL_AUDIO
	.no_dead_strip	_msp_probe
	.section	__DATA,__const
	.p2align	3                               ; @switch.table.msp_probe
l_switch.table.msp_probe:
	.quad	_msp3400c_thread
	.quad	_msp34xxg_thread
	.quad	_msp3410d_thread

.subsections_via_symbols
