Commit 5b1d5f95 authored by Adrian Bunk's avatar Adrian Bunk Committed by Linus Torvalds

m68k: use bcd2bin/bin2bcd

This patch changes m68k to use the new bcd2bin/bin2bcd functions instead
of the obsolete BCD_TO_BIN/BIN_TO_BCD/BCD2BIN/BIN2BCD macros.

It also remove local bcd2bin/bin2bcd implementations
in favor of the global ones.
Signed-off-by: default avatarAdrian Bunk <bunk@kernel.org>
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4aba41ea
...@@ -191,13 +191,14 @@ int atari_tt_hwclk( int op, struct rtc_time *t ) ...@@ -191,13 +191,14 @@ int atari_tt_hwclk( int op, struct rtc_time *t )
} }
if (!(ctrl & RTC_DM_BINARY)) { if (!(ctrl & RTC_DM_BINARY)) {
BIN_TO_BCD(sec); sec = bin2bcd(sec);
BIN_TO_BCD(min); min = bin2bcd(min);
BIN_TO_BCD(hour); hour = bin2bcd(hour);
BIN_TO_BCD(day); day = bin2bcd(day);
BIN_TO_BCD(mon); mon = bin2bcd(mon);
BIN_TO_BCD(year); year = bin2bcd(year);
if (wday >= 0) BIN_TO_BCD(wday); if (wday >= 0)
wday = bin2bcd(wday);
} }
} }
...@@ -252,13 +253,13 @@ int atari_tt_hwclk( int op, struct rtc_time *t ) ...@@ -252,13 +253,13 @@ int atari_tt_hwclk( int op, struct rtc_time *t )
} }
if (!(ctrl & RTC_DM_BINARY)) { if (!(ctrl & RTC_DM_BINARY)) {
BCD_TO_BIN(sec); sec = bcd2bin(sec);
BCD_TO_BIN(min); min = bcd2bin(min);
BCD_TO_BIN(hour); hour = bcd2bin(hour);
BCD_TO_BIN(day); day = bcd2bin(day);
BCD_TO_BIN(mon); mon = bcd2bin(mon);
BCD_TO_BIN(year); year = bcd2bin(year);
BCD_TO_BIN(wday); wday = bcd2bin(wday);
} }
if (!(ctrl & RTC_24H)) { if (!(ctrl & RTC_24H)) {
...@@ -318,7 +319,7 @@ int atari_tt_set_clock_mmss (unsigned long nowtime) ...@@ -318,7 +319,7 @@ int atari_tt_set_clock_mmss (unsigned long nowtime)
rtc_minutes = RTC_READ (RTC_MINUTES); rtc_minutes = RTC_READ (RTC_MINUTES);
if (!(save_control & RTC_DM_BINARY)) if (!(save_control & RTC_DM_BINARY))
BCD_TO_BIN (rtc_minutes); rtc_minutes = bcd2bin(rtc_minutes);
/* Since we're only adjusting minutes and seconds, don't interfere /* Since we're only adjusting minutes and seconds, don't interfere
with hour overflow. This avoids messing with unknown time zones with hour overflow. This avoids messing with unknown time zones
...@@ -329,8 +330,8 @@ int atari_tt_set_clock_mmss (unsigned long nowtime) ...@@ -329,8 +330,8 @@ int atari_tt_set_clock_mmss (unsigned long nowtime)
{ {
if (!(save_control & RTC_DM_BINARY)) if (!(save_control & RTC_DM_BINARY))
{ {
BIN_TO_BCD (real_seconds); real_seconds = bin2bcd(real_seconds);
BIN_TO_BCD (real_minutes); real_minutes = bin2bcd(real_minutes);
} }
RTC_WRITE (RTC_SECONDS, real_seconds); RTC_WRITE (RTC_SECONDS, real_seconds);
RTC_WRITE (RTC_MINUTES, real_minutes); RTC_WRITE (RTC_MINUTES, real_minutes);
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <linux/genhd.h> #include <linux/genhd.h>
#include <linux/rtc.h> #include <linux/rtc.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/bcd.h>
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
#include <asm/system.h> #include <asm/system.h>
...@@ -46,9 +47,6 @@ extern void bvme6000_reset (void); ...@@ -46,9 +47,6 @@ extern void bvme6000_reset (void);
extern void bvme6000_waitbut(void); extern void bvme6000_waitbut(void);
void bvme6000_set_vectors (void); void bvme6000_set_vectors (void);
static unsigned char bcd2bin (unsigned char b);
static unsigned char bin2bcd (unsigned char b);
/* Save tick handler routine pointer, will point to do_timer() in /* Save tick handler routine pointer, will point to do_timer() in
* kernel/sched.c, called via bvme6000_process_int() */ * kernel/sched.c, called via bvme6000_process_int() */
...@@ -264,17 +262,6 @@ unsigned long bvme6000_gettimeoffset (void) ...@@ -264,17 +262,6 @@ unsigned long bvme6000_gettimeoffset (void)
return v; return v;
} }
static unsigned char bcd2bin (unsigned char b)
{
return ((b>>4)*10 + (b&15));
}
static unsigned char bin2bcd (unsigned char b)
{
return (((b/10)*16) + (b%10));
}
/* /*
* Looks like op is non-zero for setting the clock, and zero for * Looks like op is non-zero for setting the clock, and zero for
* reading the clock. * reading the clock.
......
...@@ -57,16 +57,16 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, ...@@ -57,16 +57,16 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
rtc->msr = 0x40; rtc->msr = 0x40;
memset(&wtime, 0, sizeof(struct rtc_time)); memset(&wtime, 0, sizeof(struct rtc_time));
do { do {
wtime.tm_sec = BCD2BIN(rtc->bcd_sec); wtime.tm_sec = bcd2bin(rtc->bcd_sec);
wtime.tm_min = BCD2BIN(rtc->bcd_min); wtime.tm_min = bcd2bin(rtc->bcd_min);
wtime.tm_hour = BCD2BIN(rtc->bcd_hr); wtime.tm_hour = bcd2bin(rtc->bcd_hr);
wtime.tm_mday = BCD2BIN(rtc->bcd_dom); wtime.tm_mday = bcd2bin(rtc->bcd_dom);
wtime.tm_mon = BCD2BIN(rtc->bcd_mth)-1; wtime.tm_mon = bcd2bin(rtc->bcd_mth)-1;
wtime.tm_year = BCD2BIN(rtc->bcd_year); wtime.tm_year = bcd2bin(rtc->bcd_year);
if (wtime.tm_year < 70) if (wtime.tm_year < 70)
wtime.tm_year += 100; wtime.tm_year += 100;
wtime.tm_wday = BCD2BIN(rtc->bcd_dow)-1; wtime.tm_wday = bcd2bin(rtc->bcd_dow)-1;
} while (wtime.tm_sec != BCD2BIN(rtc->bcd_sec)); } while (wtime.tm_sec != bcd2bin(rtc->bcd_sec));
rtc->msr = msr; rtc->msr = msr;
local_irq_restore(flags); local_irq_restore(flags);
return copy_to_user(argp, &wtime, sizeof wtime) ? return copy_to_user(argp, &wtime, sizeof wtime) ?
...@@ -114,14 +114,14 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, ...@@ -114,14 +114,14 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
rtc->t0cr_rtmr = yrs%4; rtc->t0cr_rtmr = yrs%4;
rtc->bcd_tenms = 0; rtc->bcd_tenms = 0;
rtc->bcd_sec = BIN2BCD(sec); rtc->bcd_sec = bin2bcd(sec);
rtc->bcd_min = BIN2BCD(min); rtc->bcd_min = bin2bcd(min);
rtc->bcd_hr = BIN2BCD(hrs); rtc->bcd_hr = bin2bcd(hrs);
rtc->bcd_dom = BIN2BCD(day); rtc->bcd_dom = bin2bcd(day);
rtc->bcd_mth = BIN2BCD(mon); rtc->bcd_mth = bin2bcd(mon);
rtc->bcd_year = BIN2BCD(yrs%100); rtc->bcd_year = bin2bcd(yrs%100);
if (rtc_tm.tm_wday >= 0) if (rtc_tm.tm_wday >= 0)
rtc->bcd_dow = BIN2BCD(rtc_tm.tm_wday+1); rtc->bcd_dow = bin2bcd(rtc_tm.tm_wday+1);
rtc->t0cr_rtmr = yrs%4 | 0x08; rtc->t0cr_rtmr = yrs%4 | 0x08;
rtc->msr = msr; rtc->msr = msr;
......
...@@ -52,15 +52,15 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, ...@@ -52,15 +52,15 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
/* Ensure clock and real-time-mode-register are accessible */ /* Ensure clock and real-time-mode-register are accessible */
rtc->ctrl = RTC_READ; rtc->ctrl = RTC_READ;
memset(&wtime, 0, sizeof(struct rtc_time)); memset(&wtime, 0, sizeof(struct rtc_time));
wtime.tm_sec = BCD2BIN(rtc->bcd_sec); wtime.tm_sec = bcd2bin(rtc->bcd_sec);
wtime.tm_min = BCD2BIN(rtc->bcd_min); wtime.tm_min = bcd2bin(rtc->bcd_min);
wtime.tm_hour = BCD2BIN(rtc->bcd_hr); wtime.tm_hour = bcd2bin(rtc->bcd_hr);
wtime.tm_mday = BCD2BIN(rtc->bcd_dom); wtime.tm_mday = bcd2bin(rtc->bcd_dom);
wtime.tm_mon = BCD2BIN(rtc->bcd_mth)-1; wtime.tm_mon = bcd2bin(rtc->bcd_mth)-1;
wtime.tm_year = BCD2BIN(rtc->bcd_year); wtime.tm_year = bcd2bin(rtc->bcd_year);
if (wtime.tm_year < 70) if (wtime.tm_year < 70)
wtime.tm_year += 100; wtime.tm_year += 100;
wtime.tm_wday = BCD2BIN(rtc->bcd_dow)-1; wtime.tm_wday = bcd2bin(rtc->bcd_dow)-1;
rtc->ctrl = 0; rtc->ctrl = 0;
local_irq_restore(flags); local_irq_restore(flags);
return copy_to_user(argp, &wtime, sizeof wtime) ? return copy_to_user(argp, &wtime, sizeof wtime) ?
...@@ -104,12 +104,12 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, ...@@ -104,12 +104,12 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
local_irq_save(flags); local_irq_save(flags);
rtc->ctrl = RTC_WRITE; rtc->ctrl = RTC_WRITE;
rtc->bcd_sec = BIN2BCD(sec); rtc->bcd_sec = bin2bcd(sec);
rtc->bcd_min = BIN2BCD(min); rtc->bcd_min = bin2bcd(min);
rtc->bcd_hr = BIN2BCD(hrs); rtc->bcd_hr = bin2bcd(hrs);
rtc->bcd_dom = BIN2BCD(day); rtc->bcd_dom = bin2bcd(day);
rtc->bcd_mth = BIN2BCD(mon); rtc->bcd_mth = bin2bcd(mon);
rtc->bcd_year = BIN2BCD(yrs%100); rtc->bcd_year = bin2bcd(yrs%100);
rtc->ctrl = 0; rtc->ctrl = 0;
local_irq_restore(flags); local_irq_restore(flags);
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/serial_reg.h> #include <linux/serial_reg.h>
#include <linux/rtc.h> #include <linux/rtc.h>
#include <linux/vt_kern.h> #include <linux/vt_kern.h>
#include <linux/bcd.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/rtc.h> #include <asm/rtc.h>
...@@ -216,17 +217,6 @@ int q40_parse_bootinfo(const struct bi_record *rec) ...@@ -216,17 +217,6 @@ int q40_parse_bootinfo(const struct bi_record *rec)
} }
static inline unsigned char bcd2bin(unsigned char b)
{
return (b >> 4) * 10 + (b & 15);
}
static inline unsigned char bin2bcd(unsigned char b)
{
return (b / 10) * 16 + (b % 10);
}
static unsigned long q40_gettimeoffset(void) static unsigned long q40_gettimeoffset(void)
{ {
return 5000 * (ql_ticks != 0); return 5000 * (ql_ticks != 0);
......
...@@ -47,23 +47,23 @@ int sun3x_hwclk(int set, struct rtc_time *t) ...@@ -47,23 +47,23 @@ int sun3x_hwclk(int set, struct rtc_time *t)
if(set) { if(set) {
h->csr |= C_WRITE; h->csr |= C_WRITE;
h->sec = BIN2BCD(t->tm_sec); h->sec = bin2bcd(t->tm_sec);
h->min = BIN2BCD(t->tm_min); h->min = bin2bcd(t->tm_min);
h->hour = BIN2BCD(t->tm_hour); h->hour = bin2bcd(t->tm_hour);
h->wday = BIN2BCD(t->tm_wday); h->wday = bin2bcd(t->tm_wday);
h->mday = BIN2BCD(t->tm_mday); h->mday = bin2bcd(t->tm_mday);
h->month = BIN2BCD(t->tm_mon); h->month = bin2bcd(t->tm_mon);
h->year = BIN2BCD(t->tm_year); h->year = bin2bcd(t->tm_year);
h->csr &= ~C_WRITE; h->csr &= ~C_WRITE;
} else { } else {
h->csr |= C_READ; h->csr |= C_READ;
t->tm_sec = BCD2BIN(h->sec); t->tm_sec = bcd2bin(h->sec);
t->tm_min = BCD2BIN(h->min); t->tm_min = bcd2bin(h->min);
t->tm_hour = BCD2BIN(h->hour); t->tm_hour = bcd2bin(h->hour);
t->tm_wday = BCD2BIN(h->wday); t->tm_wday = bcd2bin(h->wday);
t->tm_mday = BCD2BIN(h->mday); t->tm_mday = bcd2bin(h->mday);
t->tm_mon = BCD2BIN(h->month); t->tm_mon = bcd2bin(h->month);
t->tm_year = BCD2BIN(h->year); t->tm_year = bcd2bin(h->year);
h->csr &= ~C_READ; h->csr &= ~C_READ;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment