]> err.no Git - linux-2.6/blobdiff - drivers/rtc/rtc-sa1100.c
[PATCH] DM9000 - better checks for platform resources
[linux-2.6] / drivers / rtc / rtc-sa1100.c
index a23ec54989f6dbad436d1d91397b542511136346..ab486fbc828dab567357ab1d1ca04e2c5fc7d625 100644 (file)
@@ -178,9 +178,9 @@ static int sa1100_rtc_open(struct device *dev)
        return 0;
 
  fail_pi:
-       free_irq(IRQ_RTCAlrm, NULL);
+       free_irq(IRQ_RTCAlrm, dev);
  fail_ai:
-       free_irq(IRQ_RTC1Hz, NULL);
+       free_irq(IRQ_RTC1Hz, dev);
  fail_ui:
        return ret;
 }
@@ -229,8 +229,6 @@ static int sa1100_rtc_ioctl(struct device *dev, unsigned int cmd,
                spin_unlock_irq(&sa1100_rtc_lock);
                return 0;
        case RTC_PIE_ON:
-               if ((rtc_freq > 64) && !capable(CAP_SYS_RESOURCE))
-                       return -EACCES;
                spin_lock_irq(&sa1100_rtc_lock);
                OSMR1 = TIMER_FREQ/rtc_freq + OSCR;
                OIER |= OIER_E1;
@@ -242,12 +240,10 @@ static int sa1100_rtc_ioctl(struct device *dev, unsigned int cmd,
        case RTC_IRQP_SET:
                if (arg < 1 || arg > TIMER_FREQ)
                        return -EINVAL;
-               if ((arg > 64) && (!capable(CAP_SYS_RESOURCE)))
-                       return -EACCES;
                rtc_freq = arg;
                return 0;
        }
-       return -EINVAL;
+       return -ENOIOCTLCMD;
 }
 
 static int sa1100_rtc_read_time(struct device *dev, struct rtc_time *tm)
@@ -295,7 +291,7 @@ static int sa1100_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 
 static int sa1100_rtc_proc(struct device *dev, struct seq_file *seq)
 {
-       seq_printf(seq, "trim/divider\t: 0x%08x\n", RTTR);
+       seq_printf(seq, "trim/divider\t: 0x%08lx\n", RTTR);
        seq_printf(seq, "alarm_IRQ\t: %s\n",
                        (RTSR & RTSR_ALE) ? "yes" : "no" );
        seq_printf(seq, "update_IRQ\t: %s\n",