util.S (41be702a542a0d14bb0b1c16e824fa9ed27616ec) | util.S (b1576fec7f4dd4657694fefc97fda4cf28ec68e9) |
---|---|
1/* 2 * Copied from <file:arch/powerpc/kernel/misc_32.S> 3 * 4 * This file contains miscellaneous low-level functions. 5 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) 6 * 7 * Largely rewritten by Cort Dougan (cort@cs.nmt.edu) 8 * and Paul Mackerras. --- 31 unchanged lines hidden (view full) --- 40/* 41 * Delay for a number of microseconds 42 */ 43 .globl udelay 44udelay: 45 mfspr r4,SPRN_PVR 46 srwi r4,r4,16 47 cmpwi 0,r4,1 /* 601 ? */ | 1/* 2 * Copied from <file:arch/powerpc/kernel/misc_32.S> 3 * 4 * This file contains miscellaneous low-level functions. 5 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) 6 * 7 * Largely rewritten by Cort Dougan (cort@cs.nmt.edu) 8 * and Paul Mackerras. --- 31 unchanged lines hidden (view full) --- 40/* 41 * Delay for a number of microseconds 42 */ 43 .globl udelay 44udelay: 45 mfspr r4,SPRN_PVR 46 srwi r4,r4,16 47 cmpwi 0,r4,1 /* 601 ? */ |
48 bne .udelay_not_601 | 48 bne .Ludelay_not_601 |
4900: li r0,86 /* Instructions / microsecond? */ 50 mtctr r0 5110: addi r0,r0,0 /* NOP */ 52 bdnz 10b 53 subic. r3,r3,1 54 bne 00b 55 blr 56 | 4900: li r0,86 /* Instructions / microsecond? */ 50 mtctr r0 5110: addi r0,r0,0 /* NOP */ 52 bdnz 10b 53 subic. r3,r3,1 54 bne 00b 55 blr 56 |
57.udelay_not_601: | 57.Ludelay_not_601: |
58 mulli r4,r3,1000 /* nanoseconds */ 59 /* Change r4 to be the number of ticks using: 60 * (nanoseconds + (timebase_period_ns - 1 )) / timebase_period_ns 61 * timebase_period_ns defaults to 60 (16.6MHz) */ 62 mflr r5 63 bl 0f 640: mflr r6 65 mtlr r5 --- 37 unchanged lines hidden --- | 58 mulli r4,r3,1000 /* nanoseconds */ 59 /* Change r4 to be the number of ticks using: 60 * (nanoseconds + (timebase_period_ns - 1 )) / timebase_period_ns 61 * timebase_period_ns defaults to 60 (16.6MHz) */ 62 mflr r5 63 bl 0f 640: mflr r6 65 mtlr r5 --- 37 unchanged lines hidden --- |