Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6
[firefly-linux-kernel-4.4.55.git] / drivers / sbus / char / display7seg.c
index 8fd362e7fa656d7db93f1ddd2964f77809cb6d55..47db97583ea7085ff1c74b6774eaa7a3be174c69 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/miscdevice.h>
 #include <linux/ioport.h>              /* request_region */
 #include <linux/slab.h>
-#include <linux/smp_lock.h>
+#include <linux/mutex.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <asm/atomic.h>
@@ -26,6 +26,7 @@
 #define DRIVER_NAME    "d7s"
 #define PFX            DRIVER_NAME ": "
 
+static DEFINE_MUTEX(d7s_mutex);
 static int sol_compat = 0;             /* Solaris compatibility mode   */
 
 /* Solaris compatibility flag -
@@ -74,7 +75,6 @@ static int d7s_open(struct inode *inode, struct file *f)
 {
        if (D7S_MINOR != iminor(inode))
                return -ENODEV;
-       cycle_kernel_lock();
        atomic_inc(&d7s_users);
        return 0;
 }
@@ -110,7 +110,7 @@ static long d7s_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
        if (D7S_MINOR != iminor(file->f_path.dentry->d_inode))
                return -ENODEV;
 
-       lock_kernel();
+       mutex_lock(&d7s_mutex);
        switch (cmd) {
        case D7SIOCWR:
                /* assign device register values we mask-out D7S_FLIP
@@ -151,7 +151,7 @@ static long d7s_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                writeb(regs, p->regs);
                break;
        };
-       unlock_kernel();
+       mutex_unlock(&d7s_mutex);
 
        return error;
 }