diff options
Diffstat (limited to 'drivers/sbus/char')
| -rw-r--r-- | drivers/sbus/char/bbc_i2c.c | 10 | ||||
| -rw-r--r-- | drivers/sbus/char/display7seg.c | 12 | ||||
| -rw-r--r-- | drivers/sbus/char/envctrl.c | 6 | ||||
| -rw-r--r-- | drivers/sbus/char/flash.c | 19 | ||||
| -rw-r--r-- | drivers/sbus/char/openprom.c | 15 | ||||
| -rw-r--r-- | drivers/sbus/char/uctrl.c | 13 | 
6 files changed, 38 insertions, 37 deletions
diff --git a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c index 8bfdd63a1fc..3e89c313e98 100644 --- a/drivers/sbus/char/bbc_i2c.c +++ b/drivers/sbus/char/bbc_i2c.c @@ -317,7 +317,7 @@ static struct bbc_i2c_bus * __init attach_one_i2c(struct of_device *op, int inde  	bp->waiting = 0;  	init_waitqueue_head(&bp->wq); -	if (request_irq(op->irqs[0], bbc_i2c_interrupt, +	if (request_irq(op->archdata.irqs[0], bbc_i2c_interrupt,  			IRQF_SHARED, "bbc_i2c", bp))  		goto fail; @@ -373,7 +373,7 @@ static int __devinit bbc_i2c_probe(struct of_device *op,  	err = bbc_envctrl_init(bp);  	if (err) { -		free_irq(op->irqs[0], bp); +		free_irq(op->archdata.irqs[0], bp);  		if (bp->i2c_bussel_reg)  			of_iounmap(&op->resource[0], bp->i2c_bussel_reg, 1);  		if (bp->i2c_control_regs) @@ -392,7 +392,7 @@ static int __devexit bbc_i2c_remove(struct of_device *op)  	bbc_envctrl_cleanup(bp); -	free_irq(op->irqs[0], bp); +	free_irq(op->archdata.irqs[0], bp);  	if (bp->i2c_bussel_reg)  		of_iounmap(&op->resource[0], bp->i2c_bussel_reg, 1); @@ -425,12 +425,12 @@ static struct of_platform_driver bbc_i2c_driver = {  static int __init bbc_i2c_init(void)  { -	return of_register_driver(&bbc_i2c_driver, &of_bus_type); +	return of_register_platform_driver(&bbc_i2c_driver);  }  static void __exit bbc_i2c_exit(void)  { -	of_unregister_driver(&bbc_i2c_driver); +	of_unregister_platform_driver(&bbc_i2c_driver);  }  module_init(bbc_i2c_init); diff --git a/drivers/sbus/char/display7seg.c b/drivers/sbus/char/display7seg.c index 7baf1b64403..47db97583ea 100644 --- a/drivers/sbus/char/display7seg.c +++ b/drivers/sbus/char/display7seg.c @@ -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;  } @@ -277,12 +277,12 @@ static struct of_platform_driver d7s_driver = {  static int __init d7s_init(void)  { -	return of_register_driver(&d7s_driver, &of_bus_type); +	return of_register_platform_driver(&d7s_driver);  }  static void __exit d7s_exit(void)  { -	of_unregister_driver(&d7s_driver); +	of_unregister_platform_driver(&d7s_driver);  }  module_init(d7s_init); diff --git a/drivers/sbus/char/envctrl.c b/drivers/sbus/char/envctrl.c index c8166ecf527..3c27f45e2b6 100644 --- a/drivers/sbus/char/envctrl.c +++ b/drivers/sbus/char/envctrl.c @@ -27,7 +27,6 @@  #include <linux/kmod.h>  #include <linux/reboot.h>  #include <linux/slab.h> -#include <linux/smp_lock.h>  #include <linux/of.h>  #include <linux/of_device.h> @@ -699,7 +698,6 @@ envctrl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)  static int  envctrl_open(struct inode *inode, struct file *file)  { -	cycle_kernel_lock();  	file->private_data = NULL;  	return 0;  } @@ -1142,12 +1140,12 @@ static struct of_platform_driver envctrl_driver = {  static int __init envctrl_init(void)  { -	return of_register_driver(&envctrl_driver, &of_bus_type); +	return of_register_platform_driver(&envctrl_driver);  }  static void __exit envctrl_exit(void)  { -	of_unregister_driver(&envctrl_driver); +	of_unregister_platform_driver(&envctrl_driver);  }  module_init(envctrl_init); diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c index 368d66294d8..8bb31c584b6 100644 --- a/drivers/sbus/char/flash.c +++ b/drivers/sbus/char/flash.c @@ -10,7 +10,7 @@  #include <linux/fcntl.h>  #include <linux/poll.h>  #include <linux/init.h> -#include <linux/smp_lock.h> +#include <linux/mutex.h>  #include <linux/spinlock.h>  #include <linux/mm.h>  #include <linux/of.h> @@ -22,6 +22,7 @@  #include <asm/io.h>  #include <asm/upa.h> +static DEFINE_MUTEX(flash_mutex);  static DEFINE_SPINLOCK(flash_lock);  static struct {  	unsigned long read_base;	/* Physical read address */ @@ -80,7 +81,7 @@ flash_mmap(struct file *file, struct vm_area_struct *vma)  static long long  flash_llseek(struct file *file, long long offset, int origin)  { -	lock_kernel(); +	mutex_lock(&flash_mutex);  	switch (origin) {  		case 0:  			file->f_pos = offset; @@ -94,10 +95,10 @@ flash_llseek(struct file *file, long long offset, int origin)  			file->f_pos = flash.read_size;  			break;  		default: -			unlock_kernel(); +			mutex_unlock(&flash_mutex);  			return -EINVAL;  	} -	unlock_kernel(); +	mutex_unlock(&flash_mutex);  	return file->f_pos;  } @@ -125,13 +126,13 @@ flash_read(struct file * file, char __user * buf,  static int  flash_open(struct inode *inode, struct file *file)  { -	lock_kernel(); +	mutex_lock(&flash_mutex);  	if (test_and_set_bit(0, (void *)&flash.busy) != 0) { -		unlock_kernel(); +		mutex_unlock(&flash_mutex);  		return -EBUSY;  	} -	unlock_kernel(); +	mutex_unlock(&flash_mutex);  	return 0;  } @@ -218,12 +219,12 @@ static struct of_platform_driver flash_driver = {  static int __init flash_init(void)  { -	return of_register_driver(&flash_driver, &of_bus_type); +	return of_register_platform_driver(&flash_driver);  }  static void __exit flash_cleanup(void)  { -	of_unregister_driver(&flash_driver); +	of_unregister_platform_driver(&flash_driver);  }  module_init(flash_init); diff --git a/drivers/sbus/char/openprom.c b/drivers/sbus/char/openprom.c index aacbe14e2e7..8d6e508222b 100644 --- a/drivers/sbus/char/openprom.c +++ b/drivers/sbus/char/openprom.c @@ -33,7 +33,7 @@  #include <linux/kernel.h>  #include <linux/errno.h>  #include <linux/slab.h> -#include <linux/smp_lock.h> +#include <linux/mutex.h>  #include <linux/string.h>  #include <linux/miscdevice.h>  #include <linux/init.h> @@ -61,6 +61,7 @@ typedef struct openprom_private_data  } DATA;  /* ID of the PROM node containing all of the EEPROM options. */ +static DEFINE_MUTEX(openprom_mutex);  static struct device_node *options_node;  /* @@ -316,7 +317,7 @@ static long openprom_sunos_ioctl(struct file * file,  	if (bufsize < 0)  		return bufsize; -	lock_kernel(); +	mutex_lock(&openprom_mutex);  	switch (cmd) {  	case OPROMGETOPT: @@ -367,7 +368,7 @@ static long openprom_sunos_ioctl(struct file * file,  	}  	kfree(opp); -	unlock_kernel(); +	mutex_unlock(&openprom_mutex);  	return error;  } @@ -558,7 +559,7 @@ static int openprom_bsd_ioctl(struct file * file,  	void __user *argp = (void __user *)arg;  	int err; -	lock_kernel(); +	mutex_lock(&openprom_mutex);  	switch (cmd) {  	case OPIOCGET:  		err = opiocget(argp, data); @@ -589,7 +590,7 @@ static int openprom_bsd_ioctl(struct file * file,  		err = -EINVAL;  		break;  	}; -	unlock_kernel(); +	mutex_unlock(&openprom_mutex);  	return err;  } @@ -697,11 +698,11 @@ static int openprom_open(struct inode * inode, struct file * file)  	if (!data)  		return -ENOMEM; -	lock_kernel(); +	mutex_lock(&openprom_mutex);  	data->current_node = of_find_node_by_path("/");  	data->lastnode = data->current_node;  	file->private_data = (void *) data; -	unlock_kernel(); +	mutex_unlock(&openprom_mutex);  	return 0;  } diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c index 5f253665a1d..41eb6725ff5 100644 --- a/drivers/sbus/char/uctrl.c +++ b/drivers/sbus/char/uctrl.c @@ -9,7 +9,7 @@  #include <linux/delay.h>  #include <linux/interrupt.h>  #include <linux/slab.h> -#include <linux/smp_lock.h> +#include <linux/mutex.h>  #include <linux/ioport.h>  #include <linux/init.h>  #include <linux/miscdevice.h> @@ -72,6 +72,7 @@ struct ts102_regs {  #define UCTRL_STAT_RXNE_STA        0x04    /* receive FIFO not empty status */  #define UCTRL_STAT_RXO_STA         0x08    /* receive FIFO overflow status */ +static DEFINE_MUTEX(uctrl_mutex);  static const char *uctrl_extstatus[16] = {          "main power available",          "internal battery attached", @@ -210,10 +211,10 @@ uctrl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)  static int  uctrl_open(struct inode *inode, struct file *file)  { -	lock_kernel(); +	mutex_lock(&uctrl_mutex);  	uctrl_get_event_status(global_driver);  	uctrl_get_external_status(global_driver); -	unlock_kernel(); +	mutex_unlock(&uctrl_mutex);  	return 0;  } @@ -367,7 +368,7 @@ static int __devinit uctrl_probe(struct of_device *op,  		goto out_free;  	} -	p->irq = op->irqs[0]; +	p->irq = op->archdata.irqs[0];  	err = request_irq(p->irq, uctrl_interrupt, 0, "uctrl", p);  	if (err) {  		printk(KERN_ERR "uctrl: Unable to register irq.\n"); @@ -437,12 +438,12 @@ static struct of_platform_driver uctrl_driver = {  static int __init uctrl_init(void)  { -	return of_register_driver(&uctrl_driver, &of_bus_type); +	return of_register_platform_driver(&uctrl_driver);  }  static void __exit uctrl_exit(void)  { -	of_unregister_driver(&uctrl_driver); +	of_unregister_platform_driver(&uctrl_driver);  }  module_init(uctrl_init);  |