summaryrefslogtreecommitdiffstats
path: root/arch/alpha
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-08-28 22:00:09 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-08-28 22:00:09 +0000
commit1a1d77dd589de5a567fa95e36aa6999c704ceca4 (patch)
tree141e31f89f18b9fe0831f31852e0435ceaccafc5 /arch/alpha
parentfb9c690a18b3d66925a65b17441c37fa14d4370b (diff)
Merge with 2.4.0-test7.
Diffstat (limited to 'arch/alpha')
-rw-r--r--arch/alpha/config.in4
-rw-r--r--arch/alpha/kernel/entry.S1
-rw-r--r--arch/alpha/kernel/osf_sys.c3
-rw-r--r--arch/alpha/kernel/time.c33
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;