projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[S390] Kconfig: common config options for s390.
[powerpc.git]
/
drivers
/
char
/
ds1286.c
diff --git
a/drivers/char/ds1286.c
b/drivers/char/ds1286.c
index
21c8229
..
59146e3
100644
(file)
--- a/
drivers/char/ds1286.c
+++ b/
drivers/char/ds1286.c
@@
-104,7
+104,7
@@
static int ds1286_ioctl(struct inode *inode, struct file *file,
switch (cmd) {
case RTC_AIE_OFF: /* Mask alarm int. enab. bit */
{
switch (cmd) {
case RTC_AIE_OFF: /* Mask alarm int. enab. bit */
{
- unsigned
int
flags;
+ unsigned
long
flags;
unsigned char val;
if (!capable(CAP_SYS_TIME))
unsigned char val;
if (!capable(CAP_SYS_TIME))
@@
-120,7
+120,7
@@
static int ds1286_ioctl(struct inode *inode, struct file *file,
}
case RTC_AIE_ON: /* Allow alarm interrupts. */
{
}
case RTC_AIE_ON: /* Allow alarm interrupts. */
{
- unsigned
int
flags;
+ unsigned
long
flags;
unsigned char val;
if (!capable(CAP_SYS_TIME))
unsigned char val;
if (!capable(CAP_SYS_TIME))
@@
-136,7
+136,7
@@
static int ds1286_ioctl(struct inode *inode, struct file *file,
}
case RTC_WIE_OFF: /* Mask watchdog int. enab. bit */
{
}
case RTC_WIE_OFF: /* Mask watchdog int. enab. bit */
{
- unsigned
int
flags;
+ unsigned
long
flags;
unsigned char val;
if (!capable(CAP_SYS_TIME))
unsigned char val;
if (!capable(CAP_SYS_TIME))
@@
-152,7
+152,7
@@
static int ds1286_ioctl(struct inode *inode, struct file *file,
}
case RTC_WIE_ON: /* Allow watchdog interrupts. */
{
}
case RTC_WIE_ON: /* Allow watchdog interrupts. */
{
- unsigned
int
flags;
+ unsigned
long
flags;
unsigned char val;
if (!capable(CAP_SYS_TIME))
unsigned char val;
if (!capable(CAP_SYS_TIME))
@@
-197,6
+197,7
@@
static int ds1286_ioctl(struct inode *inode, struct file *file,
hrs = alm_tm.tm_hour;
min = alm_tm.tm_min;
hrs = alm_tm.tm_hour;
min = alm_tm.tm_min;
+ sec = alm_tm.tm_sec;
if (hrs >= 24)
hrs = 0xff;
if (hrs >= 24)
hrs = 0xff;
@@
-204,9
+205,11
@@
static int ds1286_ioctl(struct inode *inode, struct file *file,
if (min >= 60)
min = 0xff;
if (min >= 60)
min = 0xff;
- BIN_TO_BCD(sec);
- BIN_TO_BCD(min);
- BIN_TO_BCD(hrs);
+ if (sec != 0)
+ return -EINVAL;
+
+ min = BIN2BCD(min);
+ min = BIN2BCD(hrs);
spin_lock(&ds1286_lock);
rtc_write(hrs, RTC_HOURS_ALARM);
spin_lock(&ds1286_lock);
rtc_write(hrs, RTC_HOURS_ALARM);
@@
-434,7
+437,7
@@
static inline unsigned char ds1286_is_updating(void)
static void ds1286_get_time(struct rtc_time *rtc_tm)
{
unsigned char save_control;
static void ds1286_get_time(struct rtc_time *rtc_tm)
{
unsigned char save_control;
- unsigned
int
flags;
+ unsigned
long
flags;
unsigned long uip_watchdog = jiffies;
/*
unsigned long uip_watchdog = jiffies;
/*
@@
-494,7
+497,8
@@
static int ds1286_set_time(struct rtc_time *rtc_tm)
{
unsigned char mon, day, hrs, min, sec, leap_yr;
unsigned char save_control;
{
unsigned char mon, day, hrs, min, sec, leap_yr;
unsigned char save_control;
- unsigned int yrs, flags;
+ unsigned int yrs;
+ unsigned long flags;
yrs = rtc_tm->tm_year + 1900;
yrs = rtc_tm->tm_year + 1900;
@@
-552,7
+556,7
@@
static int ds1286_set_time(struct rtc_time *rtc_tm)
static void ds1286_get_alm_time(struct rtc_time *alm_tm)
{
unsigned char cmd;
static void ds1286_get_alm_time(struct rtc_time *alm_tm)
{
unsigned char cmd;
- unsigned
int
flags;
+ unsigned
long
flags;
/*
* Only the values that we read from the RTC are set. That
/*
* Only the values that we read from the RTC are set. That