Browse Source

rtc-rv5c386a: make driver compile with kernel 2.6.36.

This was only compile tested.

SVN-Revision: 23947
Hauke Mehrtens 15 years ago
parent
commit
b31890cdcf
1 changed files with 19 additions and 10 deletions
  1. 19 10
      package/rtc-rv5c386a/src/rtc.c

+ 19 - 10
package/rtc-rv5c386a/src/rtc.c

@@ -52,6 +52,7 @@
 #include <linux/rtc.h>
 #include <linux/delay.h>
 #include <linux/version.h>
+#include <linux/smp_lock.h>
 
 #include <asm/uaccess.h>
 #include <asm/system.h>
@@ -461,8 +462,7 @@ static ssize_t rtc_read(UNUSED struct file *filp, char *buf, size_t count,
 	return len;
 }
 
-static int rtc_ioctl(UNUSED struct inode *inode, UNUSED struct file *filp,
-		     unsigned int cmd, unsigned long arg)
+static int rtc_do_ioctl(unsigned int cmd, unsigned long arg)
 {
 	struct rtc_time rtc_tm;
 
@@ -492,14 +492,23 @@ static int rtc_ioctl(UNUSED struct inode *inode, UNUSED struct file *filp,
 	return 0;
 }
 
-static struct file_operations rtc_fops = {
-	.owner   = THIS_MODULE,
-	.llseek  = no_llseek,
-	.read    = rtc_read,
-	.write   = rtc_write,
-	.ioctl   = rtc_ioctl,
-	.open    = rtc_open,
-	.release = rtc_release,
+static long rtc_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	long ret;
+	lock_kernel();
+	ret = rtc_do_ioctl(cmd, arg);
+	unlock_kernel();
+	return ret;
+}
+
+static const struct file_operations rtc_fops = {
+	.owner		= THIS_MODULE,
+	.llseek		= no_llseek,
+	.read		= rtc_read,
+	.write		= rtc_write,
+	.unlocked_ioctl	= rtc_ioctl,
+	.open		= rtc_open,
+	.release	= rtc_release,
 };
 
 static struct miscdevice rtc_dev = {