]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/rtc/rtc-sa1100.c
[PATCH] spin/rwlock init cleanups
[karo-tx-linux.git] / drivers / rtc / rtc-sa1100.c
index a23ec54989f6dbad436d1d91397b542511136346..9cd1cb304bb2a7b66a4a5aab5442e472419961df 100644 (file)
@@ -45,7 +45,7 @@
 
 static unsigned long rtc_freq = 1024;
 static struct rtc_time rtc_alarm;
-static spinlock_t sa1100_rtc_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(sa1100_rtc_lock);
 
 static int rtc_update_alarm(struct rtc_time *alrm)
 {
@@ -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",