diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-08-28 22:00:09 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-08-28 22:00:09 +0000 |
commit | 1a1d77dd589de5a567fa95e36aa6999c704ceca4 (patch) | |
tree | 141e31f89f18b9fe0831f31852e0435ceaccafc5 /arch/alpha | |
parent | fb9c690a18b3d66925a65b17441c37fa14d4370b (diff) |
Merge with 2.4.0-test7.
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/config.in | 4 | ||||
-rw-r--r-- | arch/alpha/kernel/entry.S | 1 | ||||
-rw-r--r-- | arch/alpha/kernel/osf_sys.c | 3 | ||||
-rw-r--r-- | arch/alpha/kernel/time.c | 33 |
4 files changed, 28 insertions, 13 deletions
diff --git a/arch/alpha/config.in b/arch/alpha/config.in index ed44cb67c..6485df4af 100644 --- a/arch/alpha/config.in +++ b/arch/alpha/config.in @@ -302,9 +302,10 @@ endmenu source drivers/char/Config.in - #source drivers/misc/Config.in +source drivers/media/Config.in + source fs/Config.in if [ "$CONFIG_VT" = "y" ]; then @@ -334,6 +335,7 @@ fi endmenu source drivers/usb/Config.in +source drivers/input/Config.in mainmenu_option next_comment comment 'Kernel hacking' diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S index ac80051ed..7dda5b566 100644 --- a/arch/alpha/kernel/entry.S +++ b/arch/alpha/kernel/entry.S @@ -1160,3 +1160,4 @@ sys_call_table: .quad sys_pivot_root .quad sys_mincore /* 375 */ .quad sys_pciconfig_iobase + .quad sys_getdents64 diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 6102f2213..4d574b824 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c @@ -104,7 +104,8 @@ struct osf_dirent_callback { int error; }; -static int osf_filldir(void *__buf, const char *name, int namlen, off_t offset, ino_t ino) +static int osf_filldir(void *__buf, const char *name, int namlen, off_t offset, + ino_t ino, unsigned int d_type) { struct osf_dirent *dirent; struct osf_dirent_callback *buf = (struct osf_dirent_callback *) __buf; diff --git a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c index d4ad98651..00120e251 100644 --- a/arch/alpha/kernel/time.c +++ b/arch/alpha/kernel/time.c @@ -1,7 +1,7 @@ /* * linux/arch/alpha/kernel/time.c * - * Copyright (C) 1991, 1992, 1995, 1999 Linus Torvalds + * Copyright (C) 1991, 1992, 1995, 1999, 2000 Linus Torvalds * * This file contains the PC-specific time handling details: * reading the RTC at bootup, etc.. @@ -21,6 +21,9 @@ * 1999-04-16 Thorsten Kranzkowski (dl8bcu@gmx.net) * fixed algorithm in do_gettimeofday() for calculating the precise time * from processor cycle counter (now taking lost_ticks into account) + * 2000-08-13 Jan-Benedict Glaw <jbglaw@lug-owl.de> + * Fixed time_init to be aware of epoches != 1900. This prevents + * booting up in 2048 for me;) Code is stolen from rtc.c. */ #include <linux/config.h> #include <linux/errno.h> @@ -200,7 +203,7 @@ common_init_rtc(void) void time_init(void) { - unsigned int year, mon, day, hour, min, sec, cc1, cc2; + unsigned int year, mon, day, hour, min, sec, cc1, cc2, epoch; unsigned long cycle_freq, one_percent; long diff; @@ -263,16 +266,24 @@ time_init(void) BCD_TO_BIN(mon); BCD_TO_BIN(year); } -#ifdef ALPHA_PRE_V1_2_SRM_CONSOLE - /* - * The meaning of life, the universe, and everything. Plus - * this makes the year come out right on SRM consoles earlier - * than v1.2. - */ - year -= 42; -#endif - if ((year += 1900) < 1970) + + /* PC-like is standard; used for year <= 20 || year >= 100 */ + epoch = 1900; + if (year > 20 && year < 48) + /* ARC console, used on some not so old boards */ + epoch = 1980; + else if (year >= 48 && year < 70) + /* Digital UNIX, used on older boards (eg. AXPpxi33) */ + epoch = 1952; + else if (year >= 70 && year < 100) + /* Digital DECstations, very old... */ + epoch = 1928; + + printk(KERN_INFO "Using epoch = %d\n", epoch); + + if ((year += epoch) < 1970) year += 100; + xtime.tv_sec = mktime(year, mon, day, hour, min, sec); xtime.tv_usec = 0; |