]> err.no Git - linux-2.6/blobdiff - drivers/rtc/rtc-vr41xx.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
[linux-2.6] / drivers / rtc / rtc-vr41xx.c
index 4d49fd501198fee4b8d1d0080c829935a80f50d2..4b9291dd444354ab1f2f374c26d2d0069266b800 100644 (file)
@@ -81,7 +81,6 @@ MODULE_LICENSE("GPL");
 
 #define RTC_FREQUENCY          32768
 #define MAX_PERIODIC_RATE      6553
-#define MAX_USER_PERIODIC_RATE 64
 
 static void __iomem *rtc1_base;
 static void __iomem *rtc2_base;
@@ -94,7 +93,7 @@ static void __iomem *rtc2_base;
 
 static unsigned long epoch = 1970;     /* Jan 1 1970 00:00:00 */
 
-static spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(rtc_lock);
 static char rtc_name[] = "RTC";
 static unsigned long periodic_frequency;
 static unsigned long periodic_count;
@@ -240,9 +239,6 @@ static int vr41xx_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long
                if (arg > MAX_PERIODIC_RATE)
                        return -EINVAL;
 
-               if (arg > MAX_USER_PERIODIC_RATE && capable(CAP_SYS_RESOURCE) == 0)
-                       return -EACCES;
-
                periodic_frequency = arg;
 
                count = RTC_FREQUENCY;
@@ -263,14 +259,10 @@ static int vr41xx_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long
                /* Doesn't support before 1900 */
                if (arg < 1900)
                        return -EINVAL;
-
-               if (capable(CAP_SYS_TIME) == 0)
-                       return -EACCES;
-
                epoch = arg;
                break;
        default:
-               return -EINVAL;
+               return -ENOIOCTLCMD;
        }
 
        return 0;