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

Commit 8903fcce authored by Dan Williams's avatar Dan Williams Committed by Russell King
Browse files

[ARM] 4340/1: iop: fix iop_getttimeoffset



Fix a typo which causes a necessary cpwait to be missed on iop3xx, Michael
Brunner <mibru@gmx.de>

Save a register in the assembly routine, rmk

Cc: Lennert Buytenhek <kernel@wantstofly.org>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 235b185c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -32,22 +32,22 @@ static unsigned long next_jiffy_time;

unsigned long iop_gettimeoffset(void)
{
	unsigned long offset, temp1, temp2;
	unsigned long offset, temp;

	/* enable cp6, if necessary, to avoid taking the overhead of an
	 * undefined instruction trap
	 */
	asm volatile (
	"mrc	p15, 0, %0, c15, c1, 0\n\t"
	"ands	%1, %0, #(1 << 6)\n\t"
	"tst	%0, #(1 << 6)\n\t"
	"orreq	%0, %0, #(1 << 6)\n\t"
	"mcreq	p15, 0, %0, c15, c1, 0\n\t"
#ifdef CONFIG_XSCALE
#ifdef CONFIG_CPU_XSCALE
	"mrceq	p15, 0, %0, c15, c1, 0\n\t"
	"moveq	%0, %0\n\t"
	"subeq	pc, pc, #4\n\t"
#endif
	: "=r"(temp1), "=r"(temp2) : : "cc");
	: "=r"(temp) : : "cc");

	offset = next_jiffy_time - read_tcr1();