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: Jesper Nilsson <jesper.nilsson@axis.com>
This commit is contained in:
parent
60362158e2
commit
0e0aff2126
1 changed files with 13 additions and 26 deletions
|
@ -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";
|
||||||
|
|
||||||
#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)
|
||||||
} 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)
|
||||||
*#
|
*#
|
||||||
*#--------------------------------------------------------------------------*/
|
*#--------------------------------------------------------------------------*/
|
||||||
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,
|
||||||
* 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)
|
||||||
* 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)
|
||||||
* 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)
|
||||||
/* 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)
|
||||||
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)
|
||||||
{
|
{
|
||||||
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,
|
||||||
|
|
Loading…
Reference in a new issue