diff options
| author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-10-24 00:21:27 +0900 | 
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2006-10-31 20:13:23 +0000 | 
| commit | 16b7b2ac0148e839da86af8747b6fa4aad43a9b7 (patch) | |
| tree | 93912ae2e9c64f71a8cca028677fd918b9edf0fa /Documentation/mips | |
| parent | 70e46f48cb5933119712ee27945309a4bfc98282 (diff) | |
| download | linux-16b7b2ac0148e839da86af8747b6fa4aad43a9b7.tar.bz2 | |
[MIPS] Fixup migration to GENERIC_TIME
Since we already moved to GENERIC_TIME, we should implement alternatives
of old do_gettimeoffset routines to get sub-jiffies resolution from
gettimeofday().  This patch includes:
 * MIPS clocksource support (based on works by Manish Lachwani).
 * remove unused gettimeoffset routines and related codes.
 * remove unised 64bit do_div64_32().
 * simplify mips_hpt_init. (no argument needed, __init tag)
 * simplify c0_hpt_timer_init. (no need to write to c0_count)
 * remove some hpt_init routines.
 * mips_hpt_mask variable to specify bitmask of hpt value.
 * convert jmr3927_do_gettimeoffset to jmr3927_hpt_read.
 * convert ip27_do_gettimeoffset to ip27_hpt_read.
 * convert bcm1480_do_gettimeoffset to bcm1480_hpt_read.
 * simplify sb1250 hpt functions. (no need to subtract and shift)
    
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'Documentation/mips')
| -rw-r--r-- | Documentation/mips/time.README | 39 | 
1 files changed, 8 insertions, 31 deletions
| diff --git a/Documentation/mips/time.README b/Documentation/mips/time.README index e1304b6bc483..a4ce603ed3b3 100644 --- a/Documentation/mips/time.README +++ b/Documentation/mips/time.README @@ -38,19 +38,14 @@ The new time code provide the following services:    a) Implements functions required by Linux common code:  	time_init -	do_gettimeofday -	do_settimeofday    b) provides an abstraction of RTC and null RTC implementation as default.  	extern unsigned long (*rtc_get_time)(void);  	extern int (*rtc_set_time)(unsigned long); -  c) a set of gettimeoffset functions for different CPUs and different -     needs. - -  d) high-level and low-level timer interrupt routines where the timer  -     interrupt source  may or may not be the CPU timer.  The high-level  -     routine is dispatched through do_IRQ() while the low-level is  +  c) high-level and low-level timer interrupt routines where the timer +     interrupt source  may or may not be the CPU timer.  The high-level +     routine is dispatched through do_IRQ() while the low-level is       dispatched in assemably code (usually int-handler.S) @@ -73,8 +68,7 @@ the following functions or values:    c) (optional) board-specific RTC routines.    d) (optional) mips_hpt_frequency - It must be definied if the board -     is using CPU counter for timer interrupt or it is using fixed rate -     gettimeoffset(). +     is using CPU counter for timer interrupt.  PORTING GUIDE @@ -89,16 +83,6 @@ Step 1: decide how you like to implement the time services.       If the answer is no, you need a timer to provide the timer interrupt       at 100 HZ speed. -     You cannot use the fast gettimeoffset functions, i.e., - -	unsigned long fixed_rate_gettimeoffset(void); -	unsigned long calibrate_div32_gettimeoffset(void); -	unsigned long calibrate_div64_gettimeoffset(void); - -    You can use null_gettimeoffset() will gives the same time resolution as -    jiffy.  Or you can implement your own gettimeoffset (probably based on  -    some ad hoc hardware on your machine.) -    c) The following sub steps assume your CPU has counter register.       Do you plan to use the CPU counter register as the timer interrupt       or use an exnternal timer? @@ -123,8 +107,8 @@ Step 3: implement rtc routines, board_time_init() and plat_timer_setup()    board_time_init() -    	a) (optional) set up RTC routines,          b) (optional) calibrate and set the mips_hpt_frequency - 	    (only needed if you intended to use fixed_rate_gettimeoffset - 	     or use cpu counter as timer interrupt source) + 	    (only needed if you intended to use cpu counter as timer interrupt + 	     source)    plat_timer_setup() -   	a) (optional) over-write any choices made above by time_init(). @@ -154,8 +138,8 @@ for some of the functions in time.c.  For example, you may define your own timer interrupt routine, which does  some of its own processing and then calls timer_interrupt(). -You can also over-ride any of the built-in functions (gettimeoffset, -RTC routines and/or timer interrupt routine). +You can also over-ride any of the built-in functions (RTC routines +and/or timer interrupt routine).  PORTING NOTES FOR SMP @@ -187,10 +171,3 @@ You need to decide on your timer interrupt sources.  	You can also do the low-level version of those interrupt routines,  	following similar dispatching routes described above. - -Note about do_gettimeoffset(): - -  It is very likely the CPU counter registers are not sync'ed up in a SMP box. -  Therefore you cannot really use the many of the existing routines that -  are based on CPU counter.  You should wirte your own gettimeoffset rouinte -  if you want intra-jiffy resolution. |