X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fppc%2Fsyslib%2Ftodc_time.c;h=a8168b8e5683b1fa94a6344a340e2ae28158a6ef;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=c1eb1f429f9cce4f6974961db61f906d9396f223;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/arch/ppc/syslib/todc_time.c b/arch/ppc/syslib/todc_time.c index c1eb1f429..a8168b8e5 100644 --- a/arch/ppc/syslib/todc_time.c +++ b/arch/ppc/syslib/todc_time.c @@ -1,6 +1,4 @@ /* - * arch/ppc/syslib/todc_time.c - * * Time of Day Clock support for the M48T35, M48T37, M48T59, and MC146818 * Real Time Clocks/Timekeepers. * @@ -18,6 +16,7 @@ #include #include #include +#include #include #include @@ -48,8 +47,6 @@ * --MAG */ -extern spinlock_t rtc_lock; - /* * 'todc_info' should be initialized in your *_setup.c file to * point to a fully initialized 'todc_info_t' structure. @@ -82,13 +79,13 @@ extern spinlock_t rtc_lock; u_char todc_direct_read_val(int addr) { - return readb(todc_info->nvram_data + addr); + return readb((void __iomem *)(todc_info->nvram_data + addr)); } void todc_direct_write_val(int addr, unsigned char val) { - writeb(val, todc_info->nvram_data + addr); + writeb(val, (void __iomem *)(todc_info->nvram_data + addr)); return; } @@ -277,9 +274,9 @@ todc_time_init(void) ulong todc_get_rtc_time(void) { - uint year, mon, day, hour, min, sec; + uint year = 0, mon = 0, day = 0, hour = 0, min = 0, sec = 0; uint limit, i; - u_char save_control, uip; + u_char save_control, uip = 0; spin_lock(&rtc_lock); save_control = todc_read_val(todc_info->control_a); @@ -288,6 +285,7 @@ todc_get_rtc_time(void) limit = 1; switch (todc_info->rtc_type) { + case TODC_TYPE_DS1553: case TODC_TYPE_DS1557: case TODC_TYPE_DS1743: case TODC_TYPE_DS1746: /* XXXX BAD HACK -> FIX */ @@ -323,6 +321,7 @@ todc_get_rtc_time(void) if (todc_info->rtc_type != TODC_TYPE_MC146818) { switch (todc_info->rtc_type) { + case TODC_TYPE_DS1553: case TODC_TYPE_DS1557: case TODC_TYPE_DS1743: case TODC_TYPE_DS1746: /* XXXX BAD HACK -> FIX */ @@ -361,7 +360,7 @@ int todc_set_rtc_time(unsigned long nowtime) { struct rtc_time tm; - u_char save_control, save_freq_select; + u_char save_control, save_freq_select = 0; spin_lock(&rtc_lock); to_tm(nowtime, &tm); @@ -416,9 +415,10 @@ todc_set_rtc_time(unsigned long nowtime) */ static unsigned char __init todc_read_timereg(int addr) { - unsigned char save_control, val; + unsigned char save_control = 0, val; switch (todc_info->rtc_type) { + case TODC_TYPE_DS1553: case TODC_TYPE_DS1557: case TODC_TYPE_DS1746: /* XXXX BAD HACK -> FIX */ case TODC_TYPE_DS1747: @@ -433,6 +433,7 @@ static unsigned char __init todc_read_timereg(int addr) val = todc_read_val(addr); switch (todc_info->rtc_type) { + case TODC_TYPE_DS1553: case TODC_TYPE_DS1557: case TODC_TYPE_DS1746: /* XXXX BAD HACK -> FIX */ case TODC_TYPE_DS1747: