Skip to content

Commit 97c6f7d

Browse files
matjontsbogend
authored andcommitted
mips: remove unused function mc146818_set_rtc_mmss
I have checked carefully: this function is unused, so remove it. The last caller appears to have been removed in 2007 in commit 4b55048 ("[MIPS] Deforest the function pointer jungle in the time code.") mc146818-time.h is included only in three files: - arch/mips/mti-malta/malta-time.c - arch/mips/loongson64/numa.c - arch/mips/loongson2ef/common/time.c Also, remove unused macros USEC_AFTER/USEC_BEFORE. Signed-off-by: Mateusz Jończyk <[email protected]> Signed-off-by: Thomas Bogendoerfer <[email protected]>
1 parent db6f8fc commit 97c6f7d

File tree

1 file changed

+0
-74
lines changed

1 file changed

+0
-74
lines changed

arch/mips/include/asm/mc146818-time.h

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -12,80 +12,6 @@
1212
#include <linux/mc146818rtc.h>
1313
#include <linux/time.h>
1414

15-
/*
16-
* For check timing call set_rtc_mmss() 500ms; used in timer interrupt.
17-
*/
18-
#define USEC_AFTER 500000
19-
#define USEC_BEFORE 500000
20-
21-
/*
22-
* In order to set the CMOS clock precisely, set_rtc_mmss has to be
23-
* called 500 ms after the second nowtime has started, because when
24-
* nowtime is written into the registers of the CMOS clock, it will
25-
* jump to the next second precisely 500 ms later. Check the Motorola
26-
* MC146818A or Dallas DS12887 data sheet for details.
27-
*
28-
* BUG: This routine does not handle hour overflow properly; it just
29-
* sets the minutes. Usually you'll only notice that after reboot!
30-
*/
31-
static inline int mc146818_set_rtc_mmss(unsigned long nowtime)
32-
{
33-
int real_seconds, real_minutes, cmos_minutes;
34-
unsigned char save_control, save_freq_select;
35-
int retval = 0;
36-
unsigned long flags;
37-
38-
spin_lock_irqsave(&rtc_lock, flags);
39-
save_control = CMOS_READ(RTC_CONTROL); /* tell the clock it's being set */
40-
CMOS_WRITE((save_control|RTC_SET), RTC_CONTROL);
41-
42-
save_freq_select = CMOS_READ(RTC_FREQ_SELECT); /* stop and reset prescaler */
43-
CMOS_WRITE((save_freq_select|RTC_DIV_RESET2), RTC_FREQ_SELECT);
44-
45-
cmos_minutes = CMOS_READ(RTC_MINUTES);
46-
if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
47-
cmos_minutes = bcd2bin(cmos_minutes);
48-
49-
/*
50-
* since we're only adjusting minutes and seconds,
51-
* don't interfere with hour overflow. This avoids
52-
* messing with unknown time zones but requires your
53-
* RTC not to be off by more than 15 minutes
54-
*/
55-
real_seconds = nowtime % 60;
56-
real_minutes = nowtime / 60;
57-
if (((abs(real_minutes - cmos_minutes) + 15)/30) & 1)
58-
real_minutes += 30; /* correct for half hour time zone */
59-
real_minutes %= 60;
60-
61-
if (abs(real_minutes - cmos_minutes) < 30) {
62-
if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
63-
real_seconds = bin2bcd(real_seconds);
64-
real_minutes = bin2bcd(real_minutes);
65-
}
66-
CMOS_WRITE(real_seconds, RTC_SECONDS);
67-
CMOS_WRITE(real_minutes, RTC_MINUTES);
68-
} else {
69-
printk_once(KERN_NOTICE
70-
"set_rtc_mmss: can't update from %d to %d\n",
71-
cmos_minutes, real_minutes);
72-
retval = -1;
73-
}
74-
75-
/* The following flags have to be released exactly in this order,
76-
* otherwise the DS12887 (popular MC146818A clone with integrated
77-
* battery and quartz) will not reset the oscillator and will not
78-
* update precisely 500 ms later. You won't find this mentioned in
79-
* the Dallas Semiconductor data sheets, but who believes data
80-
* sheets anyway ... -- Markus Kuhn
81-
*/
82-
CMOS_WRITE(save_control, RTC_CONTROL);
83-
CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT);
84-
spin_unlock_irqrestore(&rtc_lock, flags);
85-
86-
return retval;
87-
}
88-
8915
static inline time64_t mc146818_get_cmos_time(void)
9016
{
9117
unsigned int year, mon, day, hour, min, sec;

0 commit comments

Comments
 (0)