	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function r500_hw_i2c_xfer
_r500_hw_i2c_xfer:                      ## @r500_hw_i2c_xfer
	.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	$72, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%edx, %r12d
	movq	%rsi, -64(%rbp)                 ## 8-byte Spill
	callq	_i2c_get_adapdata
	movq	%rax, %r14
	movq	48(%rax), %rax
	movq	(%rax), %r13
	movq	%r13, %rdi
	callq	_mutex_lock
	leaq	4(%r13), %rdi
	movq	%rdi, -112(%rbp)                ## 8-byte Spill
	callq	_mutex_lock
	movq	%r13, %rdi
	callq	_radeon_get_i2c_prescale
	movl	%eax, -48(%rbp)                 ## 4-byte Spill
	movl	(%r14), %edi
	callq	_RREG32
	movl	(%r14), %edi
	movl	4(%r14), %esi
	notl	%esi
	andl	%eax, %esi
	callq	_WREG32
	movl	(%r14), %edi
	callq	_RREG32
	movl	8(%r14), %edi
	callq	_RREG32
	movl	8(%r14), %edi
	movl	12(%r14), %esi
	notl	%esi
	andl	%eax, %esi
	callq	_WREG32
	movl	8(%r14), %edi
	callq	_RREG32
	movl	16(%r14), %edi
	callq	_RREG32
	movl	16(%r14), %edi
	movl	20(%r14), %esi
	notl	%esi
	andl	%eax, %esi
	callq	_WREG32
	movl	16(%r14), %edi
	callq	_RREG32
	movl	24(%r14), %edi
	callq	_RREG32
	movl	24(%r14), %edi
	movl	28(%r14), %esi
	notl	%esi
	andl	%eax, %esi
	callq	_WREG32
	movl	24(%r14), %edi
	callq	_RREG32
	movl	32(%r14), %edi
	callq	_RREG32
	movl	32(%r14), %edi
	movl	36(%r14), %esi
	notl	%esi
	andl	%eax, %esi
	callq	_WREG32
	movl	32(%r14), %edi
	callq	_RREG32
	movl	40(%r14), %edi
	callq	_RREG32
	movl	40(%r14), %edi
	movl	44(%r14), %esi
	notl	%esi
	andl	%eax, %esi
	callq	_WREG32
	movl	40(%r14), %edi
	callq	_RREG32
	movq	_RADEON_BIOS_6_SCRATCH@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edi
	callq	_RREG32
	movl	(%rbx), %edi
	movq	_ATOM_S6_HW_I2C_BUSY_STATE@GOTPCREL(%rip), %rcx
	orl	(%rcx), %eax
	movl	%eax, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL1@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_RREG32
	movl	%eax, -84(%rbp)                 ## 4-byte Spill
	movl	$1172, %edi                     ## imm = 0x494
	callq	_RREG32
	movl	%eax, -80(%rbp)                 ## 4-byte Spill
	movl	%eax, %esi
	orl	$1, %esi
	movl	$1172, %edi                     ## imm = 0x494
	callq	_WREG32
	movq	_AVIVO_DC_I2C_ARBITRATION@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_AVIVO_DC_I2C_SW_WANTS_TO_USE_I2C@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movl	$50, %ebx
	movq	_AVIVO_DC_I2C_SW_CAN_USE_I2C@GOTPCREL(%rip), %r15
	.p2align	4, 0x90
LBB0_1:                                 ## =>This Inner Loop Header: Depth=1
	movl	$1, %edi
	callq	_udelay
	movq	_AVIVO_DC_I2C_ARBITRATION@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_RREG32
	testl	%eax, (%r15)
	jne	LBB0_5
## %bb.2:                               ##   in Loop: Header=BB0_1 Depth=1
	decl	%ebx
	jne	LBB0_1
## %bb.3:
	leaq	L_.str(%rip), %rdi
	callq	_DRM_ERROR
	movq	_EBUSY@GOTPCREL(%rip), %rax
	jmp	LBB0_4
LBB0_5:
	movl	(%r14), %eax
	addl	$-128, %eax
	cmpl	$3, %eax
	jae	LBB0_6
## %bb.7:
	movq	_AVIVO_DC_I2C_STOP@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ebx
	movq	_AVIVO_DC_I2C_START@GOTPCREL(%rip), %rcx
	orl	(%rcx), %ebx
	movq	_AVIVO_DC_I2C_EN@GOTPCREL(%rip), %rcx
	orl	(%rcx), %ebx
	cltq
	leaq	l_switch.table.r500_hw_i2c_xfer(%rip), %rcx
	movq	(%rcx,%rax,8), %rax
	movl	(%rax), %edi
	callq	_AVIVO_DC_I2C_PIN_SELECT
	orl	%ebx, %eax
	movl	%eax, -56(%rbp)                 ## 4-byte Spill
	cmpl	$1, %r12d
	jne	LBB0_14
## %bb.8:
	movq	-64(%rbp), %rax                 ## 8-byte Reload
	cmpl	$0, (%rax)
	jne	LBB0_15
## %bb.9:
	movq	_AVIVO_DC_I2C_STATUS1@GOTPCREL(%rip), %r15
	movq	_AVIVO_DC_I2C_DONE@GOTPCREL(%rip), %rcx
	movq	_AVIVO_DC_I2C_NACK@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	orl	(%rcx), %esi
	movl	(%r15), %edi
	movq	_AVIVO_DC_I2C_HALT@GOTPCREL(%rip), %rax
	orl	(%rax), %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_RESET@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edi
	movq	_AVIVO_DC_I2C_SOFT_RESET@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movl	$1, %edi
	callq	_udelay
	movl	(%rbx), %edi
	xorl	%esi, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_DATA@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edi
	movq	-64(%rbp), %rax                 ## 8-byte Reload
	movl	4(%rax), %eax
	addl	%eax, %eax
	movzbl	%al, %esi
	callq	_WREG32
	movl	(%rbx), %edi
	xorl	%esi, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL3@GOTPCREL(%rip), %rax
	movl	(%rax), %r14d
	movl	$48, %edi
	callq	_AVIVO_DC_I2C_TIME_LIMIT
	movl	%r14d, %edi
	movl	%eax, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL2@GOTPCREL(%rip), %rax
	movl	(%rax), %r14d
	movl	$1, %edi
	callq	_AVIVO_DC_I2C_ADDR_COUNT
	movq	%r13, %rbx
	movl	%eax, %r13d
	movl	$1, %edi
	callq	_AVIVO_DC_I2C_DATA_COUNT
	movl	-48(%rbp), %esi                 ## 4-byte Reload
	shll	$16, %esi
	orl	%r13d, %esi
	movq	%rbx, %r13
	orl	%eax, %esi
	movl	%r14d, %edi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL1@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	-56(%rbp), %esi                 ## 4-byte Reload
	callq	_WREG32
	movl	(%r15), %edi
	movq	_AVIVO_DC_I2C_GO@GOTPCREL(%rip), %r14
	movl	(%r14), %esi
	callq	_WREG32
	movl	$200, %ebx
	movl	$1, %r12d
	.p2align	4, 0x90
LBB0_11:                                ## =>This Inner Loop Header: Depth=1
	movl	$50, %edi
	callq	_udelay
	movl	(%r15), %edi
	callq	_RREG32
	testl	%eax, (%r14)
	je	LBB0_12
## %bb.10:                              ##   in Loop: Header=BB0_11 Depth=1
	decl	%ebx
	jne	LBB0_11
	jmp	LBB0_42
LBB0_6:
	leaq	L_.str.1(%rip), %rdi
	callq	_DRM_ERROR
	movq	_EINVAL@GOTPCREL(%rip), %rax
LBB0_4:
	xorl	%r12d, %r12d
	subl	(%rax), %r12d
LBB0_42:
	movq	_AVIVO_DC_I2C_STATUS1@GOTPCREL(%rip), %rax
	movq	_AVIVO_DC_I2C_DONE@GOTPCREL(%rip), %rcx
	movq	_AVIVO_DC_I2C_NACK@GOTPCREL(%rip), %rdx
	movl	(%rdx), %esi
	orl	(%rcx), %esi
	movl	(%rax), %edi
	movq	_AVIVO_DC_I2C_HALT@GOTPCREL(%rip), %rax
	orl	(%rax), %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_RESET@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edi
	movq	_AVIVO_DC_I2C_SOFT_RESET@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movl	$1, %edi
	callq	_udelay
	movl	(%rbx), %edi
	xorl	%esi, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_ARBITRATION@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_AVIVO_DC_I2C_SW_DONE_USING_I2C@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL1@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	-84(%rbp), %esi                 ## 4-byte Reload
	callq	_WREG32
	movl	$1172, %edi                     ## imm = 0x494
	movl	-80(%rbp), %esi                 ## 4-byte Reload
	callq	_WREG32
	movq	_RADEON_BIOS_6_SCRATCH@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edi
	callq	_RREG32
	movq	_ATOM_S6_HW_I2C_BUSY_STATE@GOTPCREL(%rip), %rcx
	movl	(%rcx), %esi
	notl	%esi
	andl	%eax, %esi
	movl	(%rbx), %edi
	callq	_WREG32
	movq	-112(%rbp), %rdi                ## 8-byte Reload
	callq	_mutex_unlock
	movq	%r13, %rdi
	callq	_mutex_unlock
	movl	%r12d, %eax
	addq	$72, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_14:
	jl	LBB0_42
LBB0_15:
	movq	%r13, -72(%rbp)                 ## 8-byte Spill
	shll	$16, -48(%rbp)                  ## 4-byte Folded Spill
	movl	%r12d, -76(%rbp)                ## 4-byte Spill
	movl	%r12d, %eax
	movq	%rax, -96(%rbp)                 ## 8-byte Spill
	xorl	%eax, %eax
	movq	_AVIVO_DC_I2C_STATUS1@GOTPCREL(%rip), %r15
	movq	_AVIVO_DC_I2C_DATA@GOTPCREL(%rip), %r12
	jmp	LBB0_16
	.p2align	4, 0x90
LBB0_40:                                ##   in Loop: Header=BB0_16 Depth=1
	movq	-104(%rbp), %rax                ## 8-byte Reload
	incq	%rax
	cmpq	-96(%rbp), %rax                 ## 8-byte Folded Reload
	je	LBB0_41
LBB0_16:                                ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_19 Depth 2
                                        ##       Child Loop BB0_27 Depth 3
                                        ##       Child Loop BB0_33 Depth 3
                                        ##     Child Loop BB0_22 Depth 2
                                        ##       Child Loop BB0_24 Depth 3
                                        ##       Child Loop BB0_36 Depth 3
	movq	%rax, -104(%rbp)                ## 8-byte Spill
	leaq	(%rax,%rax,2), %rax
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
	movl	(%rdx,%rax,8), %esi
	movq	_I2C_M_RD@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	testl	%ecx, 8(%rdx,%rax,8)
	je	LBB0_20
## %bb.17:                              ##   in Loop: Header=BB0_16 Depth=1
	testl	%esi, %esi
	je	LBB0_40
## %bb.18:                              ##   in Loop: Header=BB0_16 Depth=1
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	leaq	(%rcx,%rax,8), %r13
	addq	$4, %r13
	movl	$0, -44(%rbp)                   ## 4-byte Folded Spill
	jmp	LBB0_19
	.p2align	4, 0x90
LBB0_34:                                ##   in Loop: Header=BB0_19 Depth=2
	addl	%r14d, -44(%rbp)                ## 4-byte Folded Spill
	movl	-52(%rbp), %esi                 ## 4-byte Reload
	subl	%r14d, %esi
	movq	_AVIVO_DC_I2C_STATUS1@GOTPCREL(%rip), %r15
	je	LBB0_40
LBB0_19:                                ##   Parent Loop BB0_16 Depth=1
                                        ## =>  This Loop Header: Depth=2
                                        ##       Child Loop BB0_27 Depth 3
                                        ##       Child Loop BB0_33 Depth 3
	cmpl	$15, %esi
	movl	$15, %r14d
	movl	%esi, -52(%rbp)                 ## 4-byte Spill
	cmovll	%esi, %r14d
	movl	(%r15), %edi
	movq	_AVIVO_DC_I2C_NACK@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_AVIVO_DC_I2C_DONE@GOTPCREL(%rip), %rax
	orl	(%rax), %esi
	movq	_AVIVO_DC_I2C_HALT@GOTPCREL(%rip), %rax
	orl	(%rax), %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_RESET@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edi
	movq	_AVIVO_DC_I2C_SOFT_RESET@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movl	$1, %edi
	callq	_udelay
	movl	(%rbx), %edi
	xorl	%esi, %esi
	callq	_WREG32
	movl	(%r12), %edi
	movl	(%r13), %eax
	addl	%eax, %eax
	incl	%eax
	movzbl	%al, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL3@GOTPCREL(%rip), %rax
	movl	(%rax), %r15d
	movl	$48, %edi
	callq	_AVIVO_DC_I2C_TIME_LIMIT
	movl	%r15d, %edi
	movl	%eax, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL2@GOTPCREL(%rip), %rax
	movl	(%rax), %r15d
	movl	$1, %edi
	callq	_AVIVO_DC_I2C_ADDR_COUNT
	movl	%eax, %ebx
	movl	%r14d, %edi
	callq	_AVIVO_DC_I2C_DATA_COUNT
	orl	-48(%rbp), %ebx                 ## 4-byte Folded Reload
	orl	%eax, %ebx
	movl	%r15d, %edi
	movq	_AVIVO_DC_I2C_STATUS1@GOTPCREL(%rip), %r15
	movl	%ebx, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL1@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_AVIVO_DC_I2C_RECEIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	orl	-56(%rbp), %esi                 ## 4-byte Folded Reload
	callq	_WREG32
	movl	(%r15), %edi
	movq	_AVIVO_DC_I2C_GO@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movl	$200, %ebx
	.p2align	4, 0x90
LBB0_27:                                ##   Parent Loop BB0_16 Depth=1
                                        ##     Parent Loop BB0_19 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movl	$50, %edi
	callq	_udelay
	movl	(%r15), %edi
	callq	_RREG32
	movq	_AVIVO_DC_I2C_GO@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_28
## %bb.26:                              ##   in Loop: Header=BB0_27 Depth=3
	decl	%ebx
	jne	LBB0_27
	jmp	LBB0_31
	.p2align	4, 0x90
LBB0_28:                                ##   in Loop: Header=BB0_19 Depth=2
	movl	(%r15), %edi
	callq	_RREG32
	movq	_AVIVO_DC_I2C_DONE@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_29
LBB0_31:                                ##   in Loop: Header=BB0_19 Depth=2
	cmpl	$0, -52(%rbp)                   ## 4-byte Folded Reload
	jle	LBB0_34
## %bb.32:                              ##   in Loop: Header=BB0_19 Depth=2
	movslq	-44(%rbp), %rbx                 ## 4-byte Folded Reload
	cmpl	$2, %r14d
	movl	$1, %r15d
	cmovgel	%r14d, %r15d
	.p2align	4, 0x90
LBB0_33:                                ##   Parent Loop BB0_16 Depth=1
                                        ##     Parent Loop BB0_19 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movl	(%r12), %edi
	callq	_RREG32
	movzbl	%al, %eax
	movq	12(%r13), %rcx
	movl	%eax, (%rcx,%rbx,4)
	incq	%rbx
	decq	%r15
	jne	LBB0_33
	jmp	LBB0_34
	.p2align	4, 0x90
LBB0_20:                                ##   in Loop: Header=BB0_16 Depth=1
	testl	%esi, %esi
	je	LBB0_40
## %bb.21:                              ##   in Loop: Header=BB0_16 Depth=1
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	leaq	(%rcx,%rax,8), %r13
	addq	$4, %r13
	movl	$0, -44(%rbp)                   ## 4-byte Folded Spill
	jmp	LBB0_22
	.p2align	4, 0x90
LBB0_37:                                ##   in Loop: Header=BB0_22 Depth=2
	movl	(%r15), %edi
	callq	_RREG32
	movq	_AVIVO_DC_I2C_DONE@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_38
LBB0_39:                                ##   in Loop: Header=BB0_22 Depth=2
	addl	%r14d, -44(%rbp)                ## 4-byte Folded Spill
	movl	-52(%rbp), %esi                 ## 4-byte Reload
	subl	%r14d, %esi
	je	LBB0_40
LBB0_22:                                ##   Parent Loop BB0_16 Depth=1
                                        ## =>  This Loop Header: Depth=2
                                        ##       Child Loop BB0_24 Depth 3
                                        ##       Child Loop BB0_36 Depth 3
	cmpl	$15, %esi
	movl	$15, %r14d
	cmovll	%esi, %r14d
	movl	(%r15), %edi
	movq	_AVIVO_DC_I2C_NACK@GOTPCREL(%rip), %rax
	movl	%esi, %ebx
	movl	(%rax), %esi
	movq	_AVIVO_DC_I2C_DONE@GOTPCREL(%rip), %rax
	orl	(%rax), %esi
	movq	_AVIVO_DC_I2C_HALT@GOTPCREL(%rip), %rax
	orl	(%rax), %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_RESET@GOTPCREL(%rip), %r15
	movl	(%r15), %edi
	movq	_AVIVO_DC_I2C_SOFT_RESET@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movl	$1, %edi
	callq	_udelay
	movl	(%r15), %edi
	xorl	%esi, %esi
	callq	_WREG32
	movl	(%r12), %edi
	movl	(%r13), %eax
	addl	%eax, %eax
	movzbl	%al, %esi
	callq	_WREG32
	movl	%ebx, -52(%rbp)                 ## 4-byte Spill
	testl	%ebx, %ebx
	jle	LBB0_25
## %bb.23:                              ##   in Loop: Header=BB0_22 Depth=2
	movslq	-44(%rbp), %rbx                 ## 4-byte Folded Reload
	cmpl	$2, %r14d
	movl	$1, %r15d
	cmovgel	%r14d, %r15d
	.p2align	4, 0x90
LBB0_24:                                ##   Parent Loop BB0_16 Depth=1
                                        ##     Parent Loop BB0_22 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movl	(%r12), %edi
	movq	12(%r13), %rax
	movl	(%rax,%rbx,4), %esi
	callq	_WREG32
	incq	%rbx
	decq	%r15
	jne	LBB0_24
LBB0_25:                                ##   in Loop: Header=BB0_22 Depth=2
	movq	_AVIVO_DC_I2C_CONTROL3@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movl	$48, %edi
	callq	_AVIVO_DC_I2C_TIME_LIMIT
	movl	%ebx, %edi
	movl	%eax, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL2@GOTPCREL(%rip), %rax
	movl	(%rax), %r15d
	movl	$1, %edi
	callq	_AVIVO_DC_I2C_ADDR_COUNT
	movl	%eax, %ebx
	movl	%r14d, %edi
	callq	_AVIVO_DC_I2C_DATA_COUNT
	orl	-48(%rbp), %ebx                 ## 4-byte Folded Reload
	orl	%eax, %ebx
	movl	%r15d, %edi
	movl	%ebx, %esi
	callq	_WREG32
	movq	_AVIVO_DC_I2C_CONTROL1@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movl	-56(%rbp), %esi                 ## 4-byte Reload
	callq	_WREG32
	movq	_AVIVO_DC_I2C_STATUS1@GOTPCREL(%rip), %r15
	movl	(%r15), %edi
	movq	_AVIVO_DC_I2C_GO@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movl	$200, %ebx
	.p2align	4, 0x90
LBB0_36:                                ##   Parent Loop BB0_16 Depth=1
                                        ##     Parent Loop BB0_22 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movl	$50, %edi
	callq	_udelay
	movl	(%r15), %edi
	callq	_RREG32
	movq	_AVIVO_DC_I2C_GO@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_37
## %bb.35:                              ##   in Loop: Header=BB0_36 Depth=3
	decl	%ebx
	jne	LBB0_36
	jmp	LBB0_39
LBB0_29:
	leaq	L_.str.3(%rip), %rdi
	jmp	LBB0_30
LBB0_38:
	leaq	L_.str.2(%rip), %rdi
LBB0_30:
	movl	%eax, %esi
	callq	_DRM_DEBUG
	movq	_AVIVO_DC_I2C_RESET@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_AVIVO_DC_I2C_ABORT@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movq	_EIO@GOTPCREL(%rip), %rax
	xorl	%r12d, %r12d
	subl	(%rax), %r12d
	movq	-72(%rbp), %r13                 ## 8-byte Reload
	jmp	LBB0_42
LBB0_12:
	movl	(%r15), %edi
	callq	_RREG32
	movl	$1, %r12d
	movq	_AVIVO_DC_I2C_DONE@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	jne	LBB0_42
## %bb.13:
	leaq	L_.str.2(%rip), %rdi
	movl	%eax, %esi
	callq	_DRM_DEBUG
	movq	_AVIVO_DC_I2C_RESET@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_AVIVO_DC_I2C_ABORT@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_WREG32
	movq	_EIO@GOTPCREL(%rip), %rax
	jmp	LBB0_4
LBB0_41:
	movq	-72(%rbp), %r13                 ## 8-byte Reload
	movl	-76(%rbp), %r12d                ## 4-byte Reload
	jmp	LBB0_42
	.cfi_endproc
                                        ## -- End function
	.comm	_RADEON_BIOS_6_SCRATCH,4,2      ## @RADEON_BIOS_6_SCRATCH
	.comm	_ATOM_S6_HW_I2C_BUSY_STATE,4,2  ## @ATOM_S6_HW_I2C_BUSY_STATE
	.comm	_AVIVO_DC_I2C_CONTROL1,4,2      ## @AVIVO_DC_I2C_CONTROL1
	.comm	_AVIVO_DC_I2C_ARBITRATION,4,2   ## @AVIVO_DC_I2C_ARBITRATION
	.comm	_AVIVO_DC_I2C_SW_WANTS_TO_USE_I2C,4,2 ## @AVIVO_DC_I2C_SW_WANTS_TO_USE_I2C
	.comm	_AVIVO_DC_I2C_SW_CAN_USE_I2C,4,2 ## @AVIVO_DC_I2C_SW_CAN_USE_I2C
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"failed to get i2c bus\n"

	.comm	_EBUSY,4,2                      ## @EBUSY
	.comm	_AVIVO_DC_I2C_START,4,2         ## @AVIVO_DC_I2C_START
	.comm	_AVIVO_DC_I2C_STOP,4,2          ## @AVIVO_DC_I2C_STOP
	.comm	_AVIVO_DC_I2C_EN,4,2            ## @AVIVO_DC_I2C_EN
	.comm	_AVIVO_SEL_DDC1,4,2             ## @AVIVO_SEL_DDC1
	.comm	_AVIVO_SEL_DDC2,4,2             ## @AVIVO_SEL_DDC2
	.comm	_AVIVO_SEL_DDC3,4,2             ## @AVIVO_SEL_DDC3
L_.str.1:                               ## @.str.1
	.asciz	"gpio not supported with hw i2c\n"

	.comm	_EINVAL,4,2                     ## @EINVAL
	.comm	_AVIVO_DC_I2C_STATUS1,4,2       ## @AVIVO_DC_I2C_STATUS1
	.comm	_AVIVO_DC_I2C_DONE,4,2          ## @AVIVO_DC_I2C_DONE
	.comm	_AVIVO_DC_I2C_NACK,4,2          ## @AVIVO_DC_I2C_NACK
	.comm	_AVIVO_DC_I2C_HALT,4,2          ## @AVIVO_DC_I2C_HALT
	.comm	_AVIVO_DC_I2C_RESET,4,2         ## @AVIVO_DC_I2C_RESET
	.comm	_AVIVO_DC_I2C_SOFT_RESET,4,2    ## @AVIVO_DC_I2C_SOFT_RESET
	.comm	_AVIVO_DC_I2C_DATA,4,2          ## @AVIVO_DC_I2C_DATA
	.comm	_AVIVO_DC_I2C_CONTROL3,4,2      ## @AVIVO_DC_I2C_CONTROL3
	.comm	_AVIVO_DC_I2C_CONTROL2,4,2      ## @AVIVO_DC_I2C_CONTROL2
	.comm	_AVIVO_DC_I2C_GO,4,2            ## @AVIVO_DC_I2C_GO
L_.str.2:                               ## @.str.2
	.asciz	"i2c write error 0x%08x\n"

	.comm	_AVIVO_DC_I2C_ABORT,4,2         ## @AVIVO_DC_I2C_ABORT
	.comm	_EIO,4,2                        ## @EIO
	.comm	_I2C_M_RD,4,2                   ## @I2C_M_RD
	.comm	_AVIVO_DC_I2C_RECEIVE,4,2       ## @AVIVO_DC_I2C_RECEIVE
L_.str.3:                               ## @.str.3
	.asciz	"i2c read error 0x%08x\n"

	.comm	_AVIVO_DC_I2C_SW_DONE_USING_I2C,4,2 ## @AVIVO_DC_I2C_SW_DONE_USING_I2C
	.no_dead_strip	_r500_hw_i2c_xfer
	.section	__DATA,__const
	.p2align	3                               ## @switch.table.r500_hw_i2c_xfer
l_switch.table.r500_hw_i2c_xfer:
	.quad	_AVIVO_SEL_DDC3
	.quad	_AVIVO_SEL_DDC2
	.quad	_AVIVO_SEL_DDC1

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function r500_hw_i2c_xfer
_r500_hw_i2c_xfer:                      ; @r500_hw_i2c_xfer
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #160
	.cfi_def_cfa_offset 160
	stp	x28, x27, [sp, #64]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #80]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #96]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #112]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #128]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #144]            ; 16-byte Folded Spill
	add	x29, sp, #144
	.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	x21, x2
	mov	x23, x1
	bl	_i2c_get_adapdata
	mov	x25, x0
	ldr	x8, [x0, #48]
	ldr	x27, [x8]
	mov	x0, x27
	bl	_mutex_lock
	add	x28, x27, #4
	mov	x0, x28
	bl	_mutex_lock
	mov	x0, x27
	bl	_radeon_get_i2c_prescale
	mov	x26, x0
	ldr	w0, [x25]
	bl	_RREG32
	ldp	w8, w9, [x25]
	bic	w1, w0, w9
	mov	x0, x8
	bl	_WREG32
	ldr	w0, [x25]
	bl	_RREG32
	ldr	w0, [x25, #8]
	bl	_RREG32
	ldp	w8, w9, [x25, #8]
	bic	w1, w0, w9
	mov	x0, x8
	bl	_WREG32
	ldr	w0, [x25, #8]
	bl	_RREG32
	ldr	w0, [x25, #16]
	bl	_RREG32
	ldp	w8, w9, [x25, #16]
	bic	w1, w0, w9
	mov	x0, x8
	bl	_WREG32
	ldr	w0, [x25, #16]
	bl	_RREG32
	ldr	w0, [x25, #24]
	bl	_RREG32
	ldp	w8, w9, [x25, #24]
	bic	w1, w0, w9
	mov	x0, x8
	bl	_WREG32
	ldr	w0, [x25, #24]
	bl	_RREG32
	ldr	w0, [x25, #32]
	bl	_RREG32
	ldp	w8, w9, [x25, #32]
	bic	w1, w0, w9
	mov	x0, x8
	bl	_WREG32
	ldr	w0, [x25, #32]
	bl	_RREG32
	ldr	w0, [x25, #40]
	bl	_RREG32
	ldp	w8, w9, [x25, #40]
	bic	w1, w0, w9
	mov	x0, x8
	bl	_WREG32
	ldr	w0, [x25, #40]
	bl	_RREG32
Lloh0:
	adrp	x24, _RADEON_BIOS_6_SCRATCH@GOTPAGE
Lloh1:
	ldr	x24, [x24, _RADEON_BIOS_6_SCRATCH@GOTPAGEOFF]
	ldr	w0, [x24]
	bl	_RREG32
	ldr	w8, [x24]
Lloh2:
	adrp	x9, _ATOM_S6_HW_I2C_BUSY_STATE@GOTPAGE
Lloh3:
	ldr	x9, [x9, _ATOM_S6_HW_I2C_BUSY_STATE@GOTPAGEOFF]
Lloh4:
	ldr	w9, [x9]
	orr	w1, w9, w0
	mov	x0, x8
	bl	_WREG32
Lloh5:
	adrp	x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGE
Lloh6:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGEOFF]
Lloh7:
	ldr	w0, [x8]
	bl	_RREG32
	str	w0, [sp, #48]                   ; 4-byte Folded Spill
	mov	w0, #1172
	bl	_RREG32
	str	w0, [sp, #52]                   ; 4-byte Folded Spill
	orr	w1, w0, #0x1
	mov	w0, #1172
	bl	_WREG32
Lloh8:
	adrp	x22, _AVIVO_DC_I2C_ARBITRATION@GOTPAGE
Lloh9:
	ldr	x22, [x22, _AVIVO_DC_I2C_ARBITRATION@GOTPAGEOFF]
	ldr	w0, [x22]
Lloh10:
	adrp	x8, _AVIVO_DC_I2C_SW_WANTS_TO_USE_I2C@GOTPAGE
Lloh11:
	ldr	x8, [x8, _AVIVO_DC_I2C_SW_WANTS_TO_USE_I2C@GOTPAGEOFF]
Lloh12:
	ldr	w1, [x8]
	bl	_WREG32
	mov	w19, #50
Lloh13:
	adrp	x20, _AVIVO_DC_I2C_SW_CAN_USE_I2C@GOTPAGE
Lloh14:
	ldr	x20, [x20, _AVIVO_DC_I2C_SW_CAN_USE_I2C@GOTPAGEOFF]
LBB0_1:                                 ; =>This Inner Loop Header: Depth=1
	mov	w0, #1
	bl	_udelay
	ldr	w0, [x22]
	bl	_RREG32
	ldr	w8, [x20]
	tst	w8, w0
	b.ne	LBB0_4
; %bb.2:                                ;   in Loop: Header=BB0_1 Depth=1
	subs	w19, w19, #1
	b.ne	LBB0_1
; %bb.3:
Lloh15:
	adrp	x0, l_.str@PAGE
Lloh16:
	add	x0, x0, l_.str@PAGEOFF
	bl	_DRM_ERROR
Lloh17:
	adrp	x8, _EBUSY@GOTPAGE
Lloh18:
	ldr	x8, [x8, _EBUSY@GOTPAGEOFF]
	b	LBB0_11
LBB0_4:
	ldr	w8, [x25]
	sub	w8, w8, #128
	cmp	w8, #3
	b.hs	LBB0_10
; %bb.5:
Lloh19:
	adrp	x9, _AVIVO_DC_I2C_STOP@GOTPAGE
Lloh20:
	ldr	x9, [x9, _AVIVO_DC_I2C_STOP@GOTPAGEOFF]
Lloh21:
	adrp	x10, _AVIVO_DC_I2C_START@GOTPAGE
Lloh22:
	ldr	x10, [x10, _AVIVO_DC_I2C_START@GOTPAGEOFF]
Lloh23:
	ldr	w9, [x9]
Lloh24:
	ldr	w10, [x10]
	orr	w9, w9, w10
Lloh25:
	adrp	x10, _AVIVO_DC_I2C_EN@GOTPAGE
Lloh26:
	ldr	x10, [x10, _AVIVO_DC_I2C_EN@GOTPAGEOFF]
Lloh27:
	ldr	w10, [x10]
	orr	w19, w9, w10
Lloh28:
	adrp	x9, l_switch.table.r500_hw_i2c_xfer@PAGE
Lloh29:
	add	x9, x9, l_switch.table.r500_hw_i2c_xfer@PAGEOFF
	ldr	x8, [x9, w8, sxtw #3]
	ldr	w0, [x8]
	bl	_AVIVO_DC_I2C_PIN_SELECT
	orr	w8, w19, w0
	str	w8, [sp, #60]                   ; 4-byte Folded Spill
	cmp	w21, #1
	b.ne	LBB0_14
; %bb.6:
	ldr	w8, [x23]
	cbnz	w8, LBB0_15
; %bb.7:
Lloh30:
	adrp	x19, _AVIVO_DC_I2C_STATUS1@GOTPAGE
Lloh31:
	ldr	x19, [x19, _AVIVO_DC_I2C_STATUS1@GOTPAGEOFF]
	ldr	w0, [x19]
Lloh32:
	adrp	x8, _AVIVO_DC_I2C_DONE@GOTPAGE
Lloh33:
	ldr	x8, [x8, _AVIVO_DC_I2C_DONE@GOTPAGEOFF]
Lloh34:
	ldr	w8, [x8]
Lloh35:
	adrp	x9, _AVIVO_DC_I2C_NACK@GOTPAGE
Lloh36:
	ldr	x9, [x9, _AVIVO_DC_I2C_NACK@GOTPAGEOFF]
Lloh37:
	ldr	w9, [x9]
	orr	w8, w9, w8
Lloh38:
	adrp	x9, _AVIVO_DC_I2C_HALT@GOTPAGE
Lloh39:
	ldr	x9, [x9, _AVIVO_DC_I2C_HALT@GOTPAGEOFF]
Lloh40:
	ldr	w9, [x9]
	orr	w1, w8, w9
	bl	_WREG32
Lloh41:
	adrp	x20, _AVIVO_DC_I2C_RESET@GOTPAGE
Lloh42:
	ldr	x20, [x20, _AVIVO_DC_I2C_RESET@GOTPAGEOFF]
	ldr	w0, [x20]
Lloh43:
	adrp	x8, _AVIVO_DC_I2C_SOFT_RESET@GOTPAGE
Lloh44:
	ldr	x8, [x8, _AVIVO_DC_I2C_SOFT_RESET@GOTPAGEOFF]
Lloh45:
	ldr	w1, [x8]
	bl	_WREG32
	mov	w0, #1
	bl	_udelay
	ldr	w0, [x20]
	mov	w1, #0
	bl	_WREG32
Lloh46:
	adrp	x22, _AVIVO_DC_I2C_DATA@GOTPAGE
Lloh47:
	ldr	x22, [x22, _AVIVO_DC_I2C_DATA@GOTPAGEOFF]
	ldr	w0, [x22]
	ldr	w8, [x23, #4]
	ubfiz	w1, w8, #1, #7
	bl	_WREG32
	ldr	w0, [x22]
	mov	w1, #0
	bl	_WREG32
Lloh48:
	adrp	x8, _AVIVO_DC_I2C_CONTROL3@GOTPAGE
Lloh49:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL3@GOTPAGEOFF]
Lloh50:
	ldr	w23, [x8]
	mov	w0, #48
	bl	_AVIVO_DC_I2C_TIME_LIMIT
	mov	x1, x0
	mov	x0, x23
	bl	_WREG32
Lloh51:
	adrp	x8, _AVIVO_DC_I2C_CONTROL2@GOTPAGE
Lloh52:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL2@GOTPAGEOFF]
Lloh53:
	ldr	w23, [x8]
	mov	w0, #1
	bl	_AVIVO_DC_I2C_ADDR_COUNT
	mov	x22, x24
	mov	x24, x0
	mov	w0, #1
	bl	_AVIVO_DC_I2C_DATA_COUNT
	orr	w8, w24, w26, lsl #16
	mov	x24, x22
	orr	w1, w8, w0
	mov	x0, x23
	bl	_WREG32
Lloh54:
	adrp	x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGE
Lloh55:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGEOFF]
Lloh56:
	ldr	w0, [x8]
	ldr	w1, [sp, #60]                   ; 4-byte Folded Reload
	bl	_WREG32
	ldr	w0, [x19]
Lloh57:
	adrp	x22, _AVIVO_DC_I2C_GO@GOTPAGE
Lloh58:
	ldr	x22, [x22, _AVIVO_DC_I2C_GO@GOTPAGEOFF]
	ldr	w1, [x22]
	bl	_WREG32
	mov	w23, #200
Lloh59:
	adrp	x25, _ATOM_S6_HW_I2C_BUSY_STATE@GOTPAGE
Lloh60:
	ldr	x25, [x25, _ATOM_S6_HW_I2C_BUSY_STATE@GOTPAGEOFF]
	ldr	w26, [sp, #48]                  ; 4-byte Folded Reload
	mov	w21, #1
LBB0_8:                                 ; =>This Inner Loop Header: Depth=1
	mov	w0, #50
	bl	_udelay
	ldr	w0, [x19]
	bl	_RREG32
	ldr	w8, [x22]
	tst	w8, w0
	b.eq	LBB0_41
; %bb.9:                                ;   in Loop: Header=BB0_8 Depth=1
	subs	w23, w23, #1
	b.ne	LBB0_8
	b	LBB0_13
LBB0_10:
Lloh61:
	adrp	x0, l_.str.1@PAGE
Lloh62:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_DRM_ERROR
Lloh63:
	adrp	x8, _EINVAL@GOTPAGE
Lloh64:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
LBB0_11:
	ldr	w8, [x8]
	neg	w21, w8
LBB0_12:
Lloh65:
	adrp	x25, _ATOM_S6_HW_I2C_BUSY_STATE@GOTPAGE
Lloh66:
	ldr	x25, [x25, _ATOM_S6_HW_I2C_BUSY_STATE@GOTPAGEOFF]
	ldr	w26, [sp, #48]                  ; 4-byte Folded Reload
LBB0_13:
Lloh67:
	adrp	x8, _AVIVO_DC_I2C_STATUS1@GOTPAGE
Lloh68:
	ldr	x8, [x8, _AVIVO_DC_I2C_STATUS1@GOTPAGEOFF]
Lloh69:
	ldr	w0, [x8]
Lloh70:
	adrp	x8, _AVIVO_DC_I2C_DONE@GOTPAGE
Lloh71:
	ldr	x8, [x8, _AVIVO_DC_I2C_DONE@GOTPAGEOFF]
Lloh72:
	ldr	w8, [x8]
Lloh73:
	adrp	x9, _AVIVO_DC_I2C_NACK@GOTPAGE
Lloh74:
	ldr	x9, [x9, _AVIVO_DC_I2C_NACK@GOTPAGEOFF]
Lloh75:
	ldr	w9, [x9]
	orr	w8, w9, w8
Lloh76:
	adrp	x9, _AVIVO_DC_I2C_HALT@GOTPAGE
Lloh77:
	ldr	x9, [x9, _AVIVO_DC_I2C_HALT@GOTPAGEOFF]
Lloh78:
	ldr	w9, [x9]
	orr	w1, w8, w9
	bl	_WREG32
Lloh79:
	adrp	x19, _AVIVO_DC_I2C_RESET@GOTPAGE
Lloh80:
	ldr	x19, [x19, _AVIVO_DC_I2C_RESET@GOTPAGEOFF]
	ldr	w0, [x19]
Lloh81:
	adrp	x8, _AVIVO_DC_I2C_SOFT_RESET@GOTPAGE
Lloh82:
	ldr	x8, [x8, _AVIVO_DC_I2C_SOFT_RESET@GOTPAGEOFF]
Lloh83:
	ldr	w1, [x8]
	bl	_WREG32
	mov	w0, #1
	bl	_udelay
	ldr	w0, [x19]
	mov	w1, #0
	bl	_WREG32
Lloh84:
	adrp	x8, _AVIVO_DC_I2C_ARBITRATION@GOTPAGE
Lloh85:
	ldr	x8, [x8, _AVIVO_DC_I2C_ARBITRATION@GOTPAGEOFF]
Lloh86:
	ldr	w0, [x8]
Lloh87:
	adrp	x8, _AVIVO_DC_I2C_SW_DONE_USING_I2C@GOTPAGE
Lloh88:
	ldr	x8, [x8, _AVIVO_DC_I2C_SW_DONE_USING_I2C@GOTPAGEOFF]
Lloh89:
	ldr	w1, [x8]
	bl	_WREG32
Lloh90:
	adrp	x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGE
Lloh91:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGEOFF]
Lloh92:
	ldr	w0, [x8]
	mov	x1, x26
	bl	_WREG32
	mov	w0, #1172
	ldr	w1, [sp, #52]                   ; 4-byte Folded Reload
	bl	_WREG32
	ldr	w0, [x24]
	bl	_RREG32
	ldr	w8, [x25]
	bic	w1, w0, w8
	ldr	w0, [x24]
	bl	_WREG32
	mov	x0, x28
	bl	_mutex_unlock
	mov	x0, x27
	bl	_mutex_unlock
	mov	x0, x21
	ldp	x29, x30, [sp, #144]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #128]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #112]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #96]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #80]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #64]             ; 16-byte Folded Reload
	add	sp, sp, #160
	ret
LBB0_14:
	b.lt	LBB0_12
LBB0_15:
	stp	x28, x27, [sp, #8]              ; 16-byte Folded Spill
	mov	x8, #0
Lloh93:
	adrp	x19, _AVIVO_DC_I2C_STATUS1@GOTPAGE
Lloh94:
	ldr	x19, [x19, _AVIVO_DC_I2C_STATUS1@GOTPAGEOFF]
	lsl	w9, w26, #16
	str	w9, [sp, #56]                   ; 4-byte Folded Spill
	str	w21, [sp, #4]                   ; 4-byte Folded Spill
	mov	w9, w21
	str	x9, [sp, #24]                   ; 8-byte Folded Spill
Lloh95:
	adrp	x22, _AVIVO_DC_I2C_DATA@GOTPAGE
Lloh96:
	ldr	x22, [x22, _AVIVO_DC_I2C_DATA@GOTPAGEOFF]
Lloh97:
	adrp	x20, _AVIVO_DC_I2C_GO@GOTPAGE
Lloh98:
	ldr	x20, [x20, _AVIVO_DC_I2C_GO@GOTPAGEOFF]
	str	x23, [sp, #32]                  ; 8-byte Folded Spill
	b	LBB0_17
LBB0_16:                                ;   in Loop: Header=BB0_17 Depth=1
	ldp	x23, x8, [sp, #32]              ; 16-byte Folded Reload
	add	x8, x8, #1
	ldr	x9, [sp, #24]                   ; 8-byte Folded Reload
	cmp	x8, x9
	b.eq	LBB0_43
LBB0_17:                                ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_21 Depth 2
                                        ;       Child Loop BB0_22 Depth 3
                                        ;       Child Loop BB0_27 Depth 3
                                        ;     Child Loop BB0_32 Depth 2
                                        ;       Child Loop BB0_34 Depth 3
                                        ;       Child Loop BB0_36 Depth 3
	str	x8, [sp, #40]                   ; 8-byte Folded Spill
	mov	w9, #24
	madd	x8, x8, x9, x23
	ldr	w21, [x8]
	ldr	w8, [x8, #8]
Lloh99:
	adrp	x9, _I2C_M_RD@GOTPAGE
Lloh100:
	ldr	x9, [x9, _I2C_M_RD@GOTPAGEOFF]
Lloh101:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_28
; %bb.18:                               ;   in Loop: Header=BB0_17 Depth=1
	cbz	w21, LBB0_16
; %bb.19:                               ;   in Loop: Header=BB0_17 Depth=1
	mov	w25, #0
	ldp	x8, x9, [sp, #32]               ; 16-byte Folded Reload
	mov	w10, #24
	madd	x8, x9, x10, x8
	add	x24, x8, #4
	add	x23, x8, #16
	b	LBB0_21
LBB0_20:                                ;   in Loop: Header=BB0_21 Depth=2
	add	w25, w25, w26
	subs	w21, w21, w26
	b.eq	LBB0_16
LBB0_21:                                ;   Parent Loop BB0_17 Depth=1
                                        ; =>  This Loop Header: Depth=2
                                        ;       Child Loop BB0_22 Depth 3
                                        ;       Child Loop BB0_27 Depth 3
	cmp	w21, #15
	mov	w8, #15
	csel	w26, w21, w8, lt
	ldr	w0, [x19]
Lloh102:
	adrp	x8, _AVIVO_DC_I2C_DONE@GOTPAGE
Lloh103:
	ldr	x8, [x8, _AVIVO_DC_I2C_DONE@GOTPAGEOFF]
Lloh104:
	ldr	w8, [x8]
Lloh105:
	adrp	x9, _AVIVO_DC_I2C_NACK@GOTPAGE
Lloh106:
	ldr	x9, [x9, _AVIVO_DC_I2C_NACK@GOTPAGEOFF]
Lloh107:
	ldr	w9, [x9]
	orr	w8, w9, w8
Lloh108:
	adrp	x9, _AVIVO_DC_I2C_HALT@GOTPAGE
Lloh109:
	ldr	x9, [x9, _AVIVO_DC_I2C_HALT@GOTPAGEOFF]
Lloh110:
	ldr	w9, [x9]
	orr	w1, w8, w9
	bl	_WREG32
Lloh111:
	adrp	x27, _AVIVO_DC_I2C_RESET@GOTPAGE
Lloh112:
	ldr	x27, [x27, _AVIVO_DC_I2C_RESET@GOTPAGEOFF]
	ldr	w0, [x27]
Lloh113:
	adrp	x8, _AVIVO_DC_I2C_SOFT_RESET@GOTPAGE
Lloh114:
	ldr	x8, [x8, _AVIVO_DC_I2C_SOFT_RESET@GOTPAGEOFF]
Lloh115:
	ldr	w1, [x8]
	bl	_WREG32
	mov	w0, #1
	bl	_udelay
	ldr	w0, [x27]
	mov	w1, #0
	bl	_WREG32
	ldr	w0, [x22]
	ldr	w8, [x24]
	mov	w1, #1
	bfi	w1, w8, #1, #7
	bl	_WREG32
Lloh116:
	adrp	x8, _AVIVO_DC_I2C_CONTROL3@GOTPAGE
Lloh117:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL3@GOTPAGEOFF]
Lloh118:
	ldr	w27, [x8]
	mov	w0, #48
	bl	_AVIVO_DC_I2C_TIME_LIMIT
	mov	x1, x0
	mov	x0, x27
	bl	_WREG32
Lloh119:
	adrp	x8, _AVIVO_DC_I2C_CONTROL2@GOTPAGE
Lloh120:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL2@GOTPAGEOFF]
Lloh121:
	ldr	w27, [x8]
	mov	w0, #1
	bl	_AVIVO_DC_I2C_ADDR_COUNT
	mov	x28, x0
	mov	x0, x26
	bl	_AVIVO_DC_I2C_DATA_COUNT
	ldr	w8, [sp, #56]                   ; 4-byte Folded Reload
	orr	w8, w28, w8
	orr	w1, w8, w0
	mov	x0, x27
	bl	_WREG32
Lloh122:
	adrp	x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGE
Lloh123:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGEOFF]
Lloh124:
	ldr	w0, [x8]
Lloh125:
	adrp	x8, _AVIVO_DC_I2C_RECEIVE@GOTPAGE
Lloh126:
	ldr	x8, [x8, _AVIVO_DC_I2C_RECEIVE@GOTPAGEOFF]
Lloh127:
	ldr	w8, [x8]
	ldr	w9, [sp, #60]                   ; 4-byte Folded Reload
	orr	w1, w8, w9
	bl	_WREG32
	ldr	w0, [x19]
	ldr	w1, [x20]
	bl	_WREG32
	mov	w27, #200
LBB0_22:                                ;   Parent Loop BB0_17 Depth=1
                                        ;     Parent Loop BB0_21 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	mov	w0, #50
	bl	_udelay
	ldr	w0, [x19]
	bl	_RREG32
	ldr	w8, [x20]
	tst	w8, w0
	b.eq	LBB0_24
; %bb.23:                               ;   in Loop: Header=BB0_22 Depth=3
	subs	w27, w27, #1
	b.ne	LBB0_22
	b	LBB0_25
LBB0_24:                                ;   in Loop: Header=BB0_21 Depth=2
	ldr	w0, [x19]
	bl	_RREG32
Lloh128:
	adrp	x8, _AVIVO_DC_I2C_DONE@GOTPAGE
Lloh129:
	ldr	x8, [x8, _AVIVO_DC_I2C_DONE@GOTPAGEOFF]
Lloh130:
	ldr	w8, [x8]
	tst	w8, w0
	b.eq	LBB0_38
LBB0_25:                                ;   in Loop: Header=BB0_21 Depth=2
	cmp	w21, #1
	b.lt	LBB0_20
; %bb.26:                               ;   in Loop: Header=BB0_21 Depth=2
	cmp	w26, #1
	csinc	w27, w26, wzr, gt
	sbfiz	x28, x25, #2, #32
LBB0_27:                                ;   Parent Loop BB0_17 Depth=1
                                        ;     Parent Loop BB0_21 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	ldr	w0, [x22]
	bl	_RREG32
	and	w8, w0, #0xff
	ldr	x9, [x23]
	str	w8, [x9, x28]
	add	x28, x28, #4
	subs	x27, x27, #1
	b.ne	LBB0_27
	b	LBB0_20
LBB0_28:                                ;   in Loop: Header=BB0_17 Depth=1
	cbz	w21, LBB0_16
; %bb.29:                               ;   in Loop: Header=BB0_17 Depth=1
	mov	w24, #0
	ldp	x8, x9, [sp, #32]               ; 16-byte Folded Reload
	mov	w10, #24
	madd	x8, x9, x10, x8
	add	x23, x8, #4
	add	x25, x8, #16
	b	LBB0_32
LBB0_30:                                ;   in Loop: Header=BB0_32 Depth=2
	ldr	w0, [x19]
	bl	_RREG32
Lloh131:
	adrp	x8, _AVIVO_DC_I2C_DONE@GOTPAGE
Lloh132:
	ldr	x8, [x8, _AVIVO_DC_I2C_DONE@GOTPAGEOFF]
Lloh133:
	ldr	w8, [x8]
	tst	w8, w0
	b.eq	LBB0_39
LBB0_31:                                ;   in Loop: Header=BB0_32 Depth=2
	add	w24, w24, w26
	subs	w21, w21, w26
	b.eq	LBB0_16
LBB0_32:                                ;   Parent Loop BB0_17 Depth=1
                                        ; =>  This Loop Header: Depth=2
                                        ;       Child Loop BB0_34 Depth 3
                                        ;       Child Loop BB0_36 Depth 3
	cmp	w21, #15
	mov	w8, #15
	csel	w26, w21, w8, lt
	ldr	w0, [x19]
Lloh134:
	adrp	x8, _AVIVO_DC_I2C_DONE@GOTPAGE
Lloh135:
	ldr	x8, [x8, _AVIVO_DC_I2C_DONE@GOTPAGEOFF]
Lloh136:
	ldr	w8, [x8]
Lloh137:
	adrp	x9, _AVIVO_DC_I2C_NACK@GOTPAGE
Lloh138:
	ldr	x9, [x9, _AVIVO_DC_I2C_NACK@GOTPAGEOFF]
Lloh139:
	ldr	w9, [x9]
	orr	w8, w9, w8
Lloh140:
	adrp	x9, _AVIVO_DC_I2C_HALT@GOTPAGE
Lloh141:
	ldr	x9, [x9, _AVIVO_DC_I2C_HALT@GOTPAGEOFF]
Lloh142:
	ldr	w9, [x9]
	orr	w1, w8, w9
	bl	_WREG32
Lloh143:
	adrp	x27, _AVIVO_DC_I2C_RESET@GOTPAGE
Lloh144:
	ldr	x27, [x27, _AVIVO_DC_I2C_RESET@GOTPAGEOFF]
	ldr	w0, [x27]
Lloh145:
	adrp	x8, _AVIVO_DC_I2C_SOFT_RESET@GOTPAGE
Lloh146:
	ldr	x8, [x8, _AVIVO_DC_I2C_SOFT_RESET@GOTPAGEOFF]
Lloh147:
	ldr	w1, [x8]
	bl	_WREG32
	mov	w0, #1
	bl	_udelay
	ldr	w0, [x27]
	mov	w1, #0
	bl	_WREG32
	ldr	w0, [x22]
	ldr	w8, [x23]
	ubfiz	w1, w8, #1, #7
	bl	_WREG32
	cmp	w21, #1
	b.lt	LBB0_35
; %bb.33:                               ;   in Loop: Header=BB0_32 Depth=2
	cmp	w26, #1
	csinc	w27, w26, wzr, gt
	sbfiz	x28, x24, #2, #32
LBB0_34:                                ;   Parent Loop BB0_17 Depth=1
                                        ;     Parent Loop BB0_32 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	ldr	w0, [x22]
	ldr	x8, [x25]
	ldr	w1, [x8, x28]
	bl	_WREG32
	add	x28, x28, #4
	subs	x27, x27, #1
	b.ne	LBB0_34
LBB0_35:                                ;   in Loop: Header=BB0_32 Depth=2
Lloh148:
	adrp	x8, _AVIVO_DC_I2C_CONTROL3@GOTPAGE
Lloh149:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL3@GOTPAGEOFF]
Lloh150:
	ldr	w27, [x8]
	mov	w0, #48
	bl	_AVIVO_DC_I2C_TIME_LIMIT
	mov	x1, x0
	mov	x0, x27
	bl	_WREG32
Lloh151:
	adrp	x8, _AVIVO_DC_I2C_CONTROL2@GOTPAGE
Lloh152:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL2@GOTPAGEOFF]
Lloh153:
	ldr	w27, [x8]
	mov	w0, #1
	bl	_AVIVO_DC_I2C_ADDR_COUNT
	mov	x28, x0
	mov	x0, x26
	bl	_AVIVO_DC_I2C_DATA_COUNT
	ldr	w8, [sp, #56]                   ; 4-byte Folded Reload
	orr	w8, w28, w8
	orr	w1, w8, w0
	mov	x0, x27
	bl	_WREG32
Lloh154:
	adrp	x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGE
Lloh155:
	ldr	x8, [x8, _AVIVO_DC_I2C_CONTROL1@GOTPAGEOFF]
Lloh156:
	ldr	w0, [x8]
	ldr	w1, [sp, #60]                   ; 4-byte Folded Reload
	bl	_WREG32
	ldr	w0, [x19]
	ldr	w1, [x20]
	bl	_WREG32
	mov	w27, #200
LBB0_36:                                ;   Parent Loop BB0_17 Depth=1
                                        ;     Parent Loop BB0_32 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	mov	w0, #50
	bl	_udelay
	ldr	w0, [x19]
	bl	_RREG32
	ldr	w8, [x20]
	tst	w8, w0
	b.eq	LBB0_30
; %bb.37:                               ;   in Loop: Header=BB0_36 Depth=3
	subs	w27, w27, #1
	b.ne	LBB0_36
	b	LBB0_31
LBB0_38:
	mov	x1, x0
Lloh157:
	adrp	x0, l_.str.3@PAGE
Lloh158:
	add	x0, x0, l_.str.3@PAGEOFF
	b	LBB0_40
LBB0_39:
	mov	x1, x0
Lloh159:
	adrp	x0, l_.str.2@PAGE
Lloh160:
	add	x0, x0, l_.str.2@PAGEOFF
LBB0_40:
	bl	_DRM_DEBUG
Lloh161:
	adrp	x8, _AVIVO_DC_I2C_RESET@GOTPAGE
Lloh162:
	ldr	x8, [x8, _AVIVO_DC_I2C_RESET@GOTPAGEOFF]
Lloh163:
	ldr	w0, [x8]
Lloh164:
	adrp	x8, _AVIVO_DC_I2C_ABORT@GOTPAGE
Lloh165:
	ldr	x8, [x8, _AVIVO_DC_I2C_ABORT@GOTPAGEOFF]
Lloh166:
	ldr	w1, [x8]
	bl	_WREG32
Lloh167:
	adrp	x8, _EIO@GOTPAGE
Lloh168:
	ldr	x8, [x8, _EIO@GOTPAGEOFF]
Lloh169:
	ldr	w8, [x8]
	neg	w21, w8
	ldp	x28, x27, [sp, #8]              ; 16-byte Folded Reload
Lloh170:
	adrp	x24, _RADEON_BIOS_6_SCRATCH@GOTPAGE
Lloh171:
	ldr	x24, [x24, _RADEON_BIOS_6_SCRATCH@GOTPAGEOFF]
	b	LBB0_12
LBB0_41:
	ldr	w0, [x19]
	bl	_RREG32
Lloh172:
	adrp	x8, _AVIVO_DC_I2C_DONE@GOTPAGE
Lloh173:
	ldr	x8, [x8, _AVIVO_DC_I2C_DONE@GOTPAGEOFF]
Lloh174:
	ldr	w8, [x8]
	tst	w8, w0
	b.eq	LBB0_44
; %bb.42:
	mov	w21, #1
	b	LBB0_13
LBB0_43:
	ldp	x28, x27, [sp, #8]              ; 16-byte Folded Reload
Lloh175:
	adrp	x24, _RADEON_BIOS_6_SCRATCH@GOTPAGE
Lloh176:
	ldr	x24, [x24, _RADEON_BIOS_6_SCRATCH@GOTPAGEOFF]
Lloh177:
	adrp	x25, _ATOM_S6_HW_I2C_BUSY_STATE@GOTPAGE
Lloh178:
	ldr	x25, [x25, _ATOM_S6_HW_I2C_BUSY_STATE@GOTPAGEOFF]
	ldr	w26, [sp, #48]                  ; 4-byte Folded Reload
	ldr	w21, [sp, #4]                   ; 4-byte Folded Reload
	b	LBB0_13
LBB0_44:
	mov	x1, x0
Lloh179:
	adrp	x0, l_.str.2@PAGE
Lloh180:
	add	x0, x0, l_.str.2@PAGEOFF
	bl	_DRM_DEBUG
	ldr	w0, [x20]
Lloh181:
	adrp	x8, _AVIVO_DC_I2C_ABORT@GOTPAGE
Lloh182:
	ldr	x8, [x8, _AVIVO_DC_I2C_ABORT@GOTPAGEOFF]
Lloh183:
	ldr	w1, [x8]
	bl	_WREG32
Lloh184:
	adrp	x8, _EIO@GOTPAGE
Lloh185:
	ldr	x8, [x8, _EIO@GOTPAGEOFF]
Lloh186:
	ldr	w8, [x8]
	neg	w21, w8
	b	LBB0_13
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh17, Lloh18
	.loh AdrpAdd	Lloh15, Lloh16
	.loh AdrpAdd	Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh25, Lloh26, Lloh27
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh24
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh23
	.loh AdrpLdrGot	Lloh59, Lloh60
	.loh AdrpLdrGot	Lloh57, Lloh58
	.loh AdrpLdrGotLdr	Lloh54, Lloh55, Lloh56
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpLdrGotLdr	Lloh48, Lloh49, Lloh50
	.loh AdrpLdrGot	Lloh46, Lloh47
	.loh AdrpLdrGotLdr	Lloh43, Lloh44, Lloh45
	.loh AdrpLdrGot	Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGot	Lloh30, Lloh31
	.loh AdrpLdrGot	Lloh63, Lloh64
	.loh AdrpAdd	Lloh61, Lloh62
	.loh AdrpLdrGot	Lloh65, Lloh66
	.loh AdrpLdrGotLdr	Lloh90, Lloh91, Lloh92
	.loh AdrpLdrGotLdr	Lloh87, Lloh88, Lloh89
	.loh AdrpLdrGotLdr	Lloh84, Lloh85, Lloh86
	.loh AdrpLdrGotLdr	Lloh81, Lloh82, Lloh83
	.loh AdrpLdrGot	Lloh79, Lloh80
	.loh AdrpLdrGotLdr	Lloh76, Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh73, Lloh74, Lloh75
	.loh AdrpLdrGotLdr	Lloh70, Lloh71, Lloh72
	.loh AdrpLdrGotLdr	Lloh67, Lloh68, Lloh69
	.loh AdrpLdrGot	Lloh97, Lloh98
	.loh AdrpLdrGot	Lloh95, Lloh96
	.loh AdrpLdrGot	Lloh93, Lloh94
	.loh AdrpLdrGotLdr	Lloh99, Lloh100, Lloh101
	.loh AdrpLdrGotLdr	Lloh125, Lloh126, Lloh127
	.loh AdrpLdrGotLdr	Lloh122, Lloh123, Lloh124
	.loh AdrpLdrGotLdr	Lloh119, Lloh120, Lloh121
	.loh AdrpLdrGotLdr	Lloh116, Lloh117, Lloh118
	.loh AdrpLdrGotLdr	Lloh113, Lloh114, Lloh115
	.loh AdrpLdrGot	Lloh111, Lloh112
	.loh AdrpLdrGotLdr	Lloh108, Lloh109, Lloh110
	.loh AdrpLdrGotLdr	Lloh105, Lloh106, Lloh107
	.loh AdrpLdrGotLdr	Lloh102, Lloh103, Lloh104
	.loh AdrpLdrGotLdr	Lloh128, Lloh129, Lloh130
	.loh AdrpLdrGotLdr	Lloh131, Lloh132, Lloh133
	.loh AdrpLdrGotLdr	Lloh145, Lloh146, Lloh147
	.loh AdrpLdrGot	Lloh143, Lloh144
	.loh AdrpLdrGotLdr	Lloh140, Lloh141, Lloh142
	.loh AdrpLdrGotLdr	Lloh137, Lloh138, Lloh139
	.loh AdrpLdrGotLdr	Lloh134, Lloh135, Lloh136
	.loh AdrpLdrGotLdr	Lloh154, Lloh155, Lloh156
	.loh AdrpLdrGotLdr	Lloh151, Lloh152, Lloh153
	.loh AdrpLdrGotLdr	Lloh148, Lloh149, Lloh150
	.loh AdrpAdd	Lloh157, Lloh158
	.loh AdrpAdd	Lloh159, Lloh160
	.loh AdrpLdrGot	Lloh170, Lloh171
	.loh AdrpLdrGotLdr	Lloh167, Lloh168, Lloh169
	.loh AdrpLdrGotLdr	Lloh164, Lloh165, Lloh166
	.loh AdrpLdrGotLdr	Lloh161, Lloh162, Lloh163
	.loh AdrpLdrGotLdr	Lloh172, Lloh173, Lloh174
	.loh AdrpLdrGot	Lloh177, Lloh178
	.loh AdrpLdrGot	Lloh175, Lloh176
	.loh AdrpLdrGotLdr	Lloh184, Lloh185, Lloh186
	.loh AdrpLdrGotLdr	Lloh181, Lloh182, Lloh183
	.loh AdrpAdd	Lloh179, Lloh180
	.cfi_endproc
                                        ; -- End function
	.comm	_RADEON_BIOS_6_SCRATCH,4,2      ; @RADEON_BIOS_6_SCRATCH
	.comm	_ATOM_S6_HW_I2C_BUSY_STATE,4,2  ; @ATOM_S6_HW_I2C_BUSY_STATE
	.comm	_AVIVO_DC_I2C_CONTROL1,4,2      ; @AVIVO_DC_I2C_CONTROL1
	.comm	_AVIVO_DC_I2C_ARBITRATION,4,2   ; @AVIVO_DC_I2C_ARBITRATION
	.comm	_AVIVO_DC_I2C_SW_WANTS_TO_USE_I2C,4,2 ; @AVIVO_DC_I2C_SW_WANTS_TO_USE_I2C
	.comm	_AVIVO_DC_I2C_SW_CAN_USE_I2C,4,2 ; @AVIVO_DC_I2C_SW_CAN_USE_I2C
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"failed to get i2c bus\n"

	.comm	_EBUSY,4,2                      ; @EBUSY
	.comm	_AVIVO_DC_I2C_START,4,2         ; @AVIVO_DC_I2C_START
	.comm	_AVIVO_DC_I2C_STOP,4,2          ; @AVIVO_DC_I2C_STOP
	.comm	_AVIVO_DC_I2C_EN,4,2            ; @AVIVO_DC_I2C_EN
	.comm	_AVIVO_SEL_DDC1,4,2             ; @AVIVO_SEL_DDC1
	.comm	_AVIVO_SEL_DDC2,4,2             ; @AVIVO_SEL_DDC2
	.comm	_AVIVO_SEL_DDC3,4,2             ; @AVIVO_SEL_DDC3
l_.str.1:                               ; @.str.1
	.asciz	"gpio not supported with hw i2c\n"

	.comm	_EINVAL,4,2                     ; @EINVAL
	.comm	_AVIVO_DC_I2C_STATUS1,4,2       ; @AVIVO_DC_I2C_STATUS1
	.comm	_AVIVO_DC_I2C_DONE,4,2          ; @AVIVO_DC_I2C_DONE
	.comm	_AVIVO_DC_I2C_NACK,4,2          ; @AVIVO_DC_I2C_NACK
	.comm	_AVIVO_DC_I2C_HALT,4,2          ; @AVIVO_DC_I2C_HALT
	.comm	_AVIVO_DC_I2C_RESET,4,2         ; @AVIVO_DC_I2C_RESET
	.comm	_AVIVO_DC_I2C_SOFT_RESET,4,2    ; @AVIVO_DC_I2C_SOFT_RESET
	.comm	_AVIVO_DC_I2C_DATA,4,2          ; @AVIVO_DC_I2C_DATA
	.comm	_AVIVO_DC_I2C_CONTROL3,4,2      ; @AVIVO_DC_I2C_CONTROL3
	.comm	_AVIVO_DC_I2C_CONTROL2,4,2      ; @AVIVO_DC_I2C_CONTROL2
	.comm	_AVIVO_DC_I2C_GO,4,2            ; @AVIVO_DC_I2C_GO
l_.str.2:                               ; @.str.2
	.asciz	"i2c write error 0x%08x\n"

	.comm	_AVIVO_DC_I2C_ABORT,4,2         ; @AVIVO_DC_I2C_ABORT
	.comm	_EIO,4,2                        ; @EIO
	.comm	_I2C_M_RD,4,2                   ; @I2C_M_RD
	.comm	_AVIVO_DC_I2C_RECEIVE,4,2       ; @AVIVO_DC_I2C_RECEIVE
l_.str.3:                               ; @.str.3
	.asciz	"i2c read error 0x%08x\n"

	.comm	_AVIVO_DC_I2C_SW_DONE_USING_I2C,4,2 ; @AVIVO_DC_I2C_SW_DONE_USING_I2C
	.no_dead_strip	_r500_hw_i2c_xfer
	.section	__DATA,__const
	.p2align	3                               ; @switch.table.r500_hw_i2c_xfer
l_switch.table.r500_hw_i2c_xfer:
	.quad	_AVIVO_SEL_DDC3
	.quad	_AVIVO_SEL_DDC2
	.quad	_AVIVO_SEL_DDC1

.subsections_via_symbols
