[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: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
235b185ce4
commit
8903fcce9b
|
@ -32,22 +32,22 @@ static unsigned long next_jiffy_time;
|
||||||
|
|
||||||
unsigned long iop_gettimeoffset(void)
|
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
|
/* enable cp6, if necessary, to avoid taking the overhead of an
|
||||||
* undefined instruction trap
|
* undefined instruction trap
|
||||||
*/
|
*/
|
||||||
asm volatile (
|
asm volatile (
|
||||||
"mrc p15, 0, %0, c15, c1, 0\n\t"
|
"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"
|
"orreq %0, %0, #(1 << 6)\n\t"
|
||||||
"mcreq p15, 0, %0, c15, c1, 0\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"
|
"mrceq p15, 0, %0, c15, c1, 0\n\t"
|
||||||
"moveq %0, %0\n\t"
|
"moveq %0, %0\n\t"
|
||||||
"subeq pc, pc, #4\n\t"
|
"subeq pc, pc, #4\n\t"
|
||||||
#endif
|
#endif
|
||||||
: "=r"(temp1), "=r"(temp2) : : "cc");
|
: "=r"(temp) : : "cc");
|
||||||
|
|
||||||
offset = next_jiffy_time - read_tcr1();
|
offset = next_jiffy_time - read_tcr1();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue