Commit 0e0aff21 authored by Jesper Nilsson's avatar Jesper Nilsson

CRIS: v10: remove all BKL usage

We don't need to take the BKL here.
Also fixes compile error after last commit (smp_lock.h was not included)
Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
parent 60362158
...@@ -59,8 +59,8 @@ static const char i2c_name[] = "i2c"; ...@@ -59,8 +59,8 @@ static const char i2c_name[] = "i2c";
#define SDABIT CONFIG_ETRAX_I2C_DATA_PORT #define SDABIT CONFIG_ETRAX_I2C_DATA_PORT
#define SCLBIT CONFIG_ETRAX_I2C_CLK_PORT #define SCLBIT CONFIG_ETRAX_I2C_CLK_PORT
#define i2c_enable() #define i2c_enable()
#define i2c_disable() #define i2c_disable()
/* enable or disable output-enable, to select output or input on the i2c bus */ /* enable or disable output-enable, to select output or input on the i2c bus */
...@@ -90,7 +90,7 @@ static const char i2c_name[] = "i2c"; ...@@ -90,7 +90,7 @@ static const char i2c_name[] = "i2c";
#define i2c_dir_out() \ #define i2c_dir_out() \
*R_PORT_PB_I2C = (port_pb_i2c_shadow &= ~IO_MASK(R_PORT_PB_I2C, i2c_oe_)); \ *R_PORT_PB_I2C = (port_pb_i2c_shadow &= ~IO_MASK(R_PORT_PB_I2C, i2c_oe_)); \
REG_SHADOW_SET(R_PORT_PB_DIR, port_pb_dir_shadow, 0, 1); REG_SHADOW_SET(R_PORT_PB_DIR, port_pb_dir_shadow, 0, 1);
#define i2c_dir_in() \ #define i2c_dir_in() \
*R_PORT_PB_I2C = (port_pb_i2c_shadow |= IO_MASK(R_PORT_PB_I2C, i2c_oe_)); \ *R_PORT_PB_I2C = (port_pb_i2c_shadow |= IO_MASK(R_PORT_PB_I2C, i2c_oe_)); \
REG_SHADOW_SET(R_PORT_PB_DIR, port_pb_dir_shadow, 0, 0); REG_SHADOW_SET(R_PORT_PB_DIR, port_pb_dir_shadow, 0, 0);
...@@ -188,7 +188,7 @@ i2c_outbyte(unsigned char x) ...@@ -188,7 +188,7 @@ i2c_outbyte(unsigned char x)
} else { } else {
i2c_data(I2C_DATA_LOW); i2c_data(I2C_DATA_LOW);
} }
i2c_delay(CLOCK_LOW_TIME/2); i2c_delay(CLOCK_LOW_TIME/2);
i2c_clk(I2C_CLOCK_HIGH); i2c_clk(I2C_CLOCK_HIGH);
i2c_delay(CLOCK_HIGH_TIME); i2c_delay(CLOCK_HIGH_TIME);
...@@ -415,7 +415,7 @@ i2c_sendnack(void) ...@@ -415,7 +415,7 @@ i2c_sendnack(void)
*# *#
*#--------------------------------------------------------------------------*/ *#--------------------------------------------------------------------------*/
int int
i2c_writereg(unsigned char theSlave, unsigned char theReg, i2c_writereg(unsigned char theSlave, unsigned char theReg,
unsigned char theValue) unsigned char theValue)
{ {
int error, cntr = 3; int error, cntr = 3;
...@@ -467,7 +467,7 @@ i2c_writereg(unsigned char theSlave, unsigned char theReg, ...@@ -467,7 +467,7 @@ i2c_writereg(unsigned char theSlave, unsigned char theReg,
* enable interrupt again * enable interrupt again
*/ */
local_irq_restore(flags); local_irq_restore(flags);
} while(error && cntr--); } while(error && cntr--);
i2c_delay(CLOCK_LOW_TIME); i2c_delay(CLOCK_LOW_TIME);
...@@ -503,7 +503,7 @@ i2c_readreg(unsigned char theSlave, unsigned char theReg) ...@@ -503,7 +503,7 @@ i2c_readreg(unsigned char theSlave, unsigned char theReg)
* generate start condition * generate start condition
*/ */
i2c_start(); i2c_start();
/* /*
* send slave address * send slave address
*/ */
...@@ -554,7 +554,7 @@ i2c_readreg(unsigned char theSlave, unsigned char theReg) ...@@ -554,7 +554,7 @@ i2c_readreg(unsigned char theSlave, unsigned char theReg)
* enable interrupt again * enable interrupt again
*/ */
local_irq_restore(flags); local_irq_restore(flags);
} while(error && cntr--); } while(error && cntr--);
spin_unlock(&i2c_lock); spin_unlock(&i2c_lock);
...@@ -577,8 +577,7 @@ i2c_release(struct inode *inode, struct file *filp) ...@@ -577,8 +577,7 @@ i2c_release(struct inode *inode, struct file *filp)
/* Main device API. ioctl's to write or read to/from i2c registers. /* Main device API. ioctl's to write or read to/from i2c registers.
*/ */
static int static long i2c_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
i2c_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg)
{ {
if(_IOC_TYPE(cmd) != ETRAXI2C_IOCTYPE) { if(_IOC_TYPE(cmd) != ETRAXI2C_IOCTYPE) {
return -EINVAL; return -EINVAL;
...@@ -587,7 +586,7 @@ i2c_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg) ...@@ -587,7 +586,7 @@ i2c_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg)
switch (_IOC_NR(cmd)) { switch (_IOC_NR(cmd)) {
case I2C_WRITEREG: case I2C_WRITEREG:
/* write to an i2c slave */ /* write to an i2c slave */
D(printk("i2cw %d %d %d\n", D(printk(KERN_DEBUG "i2cw %d %d %d\n",
I2C_ARGSLAVE(arg), I2C_ARGSLAVE(arg),
I2C_ARGREG(arg), I2C_ARGREG(arg),
I2C_ARGVALUE(arg))); I2C_ARGVALUE(arg)));
...@@ -599,32 +598,20 @@ i2c_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg) ...@@ -599,32 +598,20 @@ i2c_ioctl_unlocked(struct file *file, unsigned int cmd, unsigned long arg)
{ {
unsigned char val; unsigned char val;
/* read from an i2c slave */ /* read from an i2c slave */
D(printk("i2cr %d %d ", D(printk(KERN_DEBUG "i2cr %d %d ",
I2C_ARGSLAVE(arg), I2C_ARGSLAVE(arg),
I2C_ARGREG(arg))); I2C_ARGREG(arg)));
val = i2c_readreg(I2C_ARGSLAVE(arg), I2C_ARGREG(arg)); val = i2c_readreg(I2C_ARGSLAVE(arg), I2C_ARGREG(arg));
D(printk("= %d\n", val)); D(printk(KERN_DEBUG "= %d\n", val));
return val; return val;
} }
default: default:
return -EINVAL; return -EINVAL;
} }
return 0; return 0;
} }
static long i2c_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
long ret;
lock_kernel();
ret = i2c_ioctl_unlocked(file, cmd, arg);
unlock_kernel();
return ret;
}
static const struct file_operations i2c_fops = { static const struct file_operations i2c_fops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.unlocked_ioctl = i2c_ioctl, .unlocked_ioctl = i2c_ioctl,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment