Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2342aa28 authored by Russell King's avatar Russell King
Browse files

ARM: entry: shark: don't directly reference registers in macros



Directly referencing registers in macros makes assembly code harder
to change, because the macros have side effects which are non-obvious.
Use the provided 'base' register rather than directly referencing r4.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent b6fcd313
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -11,17 +11,17 @@
		.endm
		.endm


		.macro  get_irqnr_preamble, base, tmp
		.macro  get_irqnr_preamble, base, tmp
		mov	\base, #0xe0000000
		.endm
		.endm


		.macro  arch_ret_to_user, tmp1, tmp2
		.macro  arch_ret_to_user, tmp1, tmp2
		.endm
		.endm


		.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp
		.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp
		mov	r4, #0xe0000000


		mov	\irqstat, #0x0C
		mov	\irqstat, #0x0C
		strb	\irqstat, [r4, #0x20]		@outb(0x0C, 0x20) /* Poll command */
		strb	\irqstat, [\base, #0x20]	@outb(0x0C, 0x20) /* Poll command */
		ldrb	\irqnr, [r4, #0x20]		@irq = inb(0x20) & 7
		ldrb	\irqnr, [\base, #0x20]		@irq = inb(0x20) & 7
		and	\irqstat, \irqnr, #0x80
		and	\irqstat, \irqnr, #0x80
		teq	\irqstat, #0
		teq	\irqstat, #0
		beq	43f
		beq	43f
@@ -29,8 +29,8 @@
		teq	\irqnr, #2
		teq	\irqnr, #2
		bne	44f
		bne	44f
43:		mov	\irqstat, #0x0C
43:		mov	\irqstat, #0x0C
		strb	\irqstat, [r4, #0xa0]		@outb(0x0C, 0xA0) /* Poll command */
		strb	\irqstat, [\base, #0xa0]	@outb(0x0C, 0xA0) /* Poll command */
		ldrb	\irqnr, [r4, #0xa0]		@irq = (inb(0xA0) & 7) + 8
		ldrb	\irqnr, [\base, #0xa0]		@irq = (inb(0xA0) & 7) + 8
		and	\irqstat, \irqnr, #0x80
		and	\irqstat, \irqnr, #0x80
		teq	\irqstat, #0
		teq	\irqstat, #0
		beq	44f
		beq	44f