diff options
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-tegra.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 101ec4787396..8468804551cf 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -151,12 +151,10 @@ struct tegra_i2c_dev { struct clk *fast_clk; struct resource *iomem; struct rt_mutex dev_lock; - spinlock_t clk_lock; void __iomem *base; int cont_id; int irq; bool irq_disabled; - bool controller_enabled; int is_dvc; bool is_slave; struct completion msg_complete; @@ -479,14 +477,6 @@ static irqreturn_t tegra_i2c_isr(int irq, void *dev_id) u32 status; const u32 status_err = I2C_INT_NO_ACK | I2C_INT_ARBITRATION_LOST | I2C_INT_TX_FIFO_OVERFLOW; struct tegra_i2c_dev *i2c_dev = dev_id; - unsigned long flags; - - spin_lock_irqsave(&i2c_dev->clk_lock, flags); - if (!i2c_dev->controller_enabled) { - dev_warn(i2c_dev->dev, "Controller not enabled\n"); - spin_unlock_irqrestore(&i2c_dev->clk_lock, flags); - return IRQ_NONE; - } status = i2c_readl(i2c_dev, I2C_INT_STATUS); @@ -570,7 +560,6 @@ static irqreturn_t tegra_i2c_isr(int irq, void *dev_id) complete(&i2c_dev->msg_complete); } - spin_unlock_irqrestore(&i2c_dev->clk_lock, flags); return IRQ_HANDLED; err: @@ -605,7 +594,6 @@ err: dvc_writel(i2c_dev, DVC_STATUS_I2C_DONE_INTR, DVC_STATUS); complete(&i2c_dev->msg_complete); - spin_unlock_irqrestore(&i2c_dev->clk_lock, flags); return IRQ_HANDLED; } @@ -615,7 +603,6 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_bus *i2c_bus, struct tegra_i2c_dev *i2c_dev = i2c_bus->dev; u32 int_mask; int ret; - unsigned long flags; int arb_stat; if (msg->len == 0) @@ -676,10 +663,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_bus *i2c_bus, "i2c transfer timed out, addr 0x%04x, data 0x%02x\n", msg->addr, msg->buf[0]); - spin_lock_irqsave(&i2c_dev->clk_lock, flags); - i2c_dev->controller_enabled = false; tegra_i2c_init(i2c_dev); - spin_unlock_irqrestore(&i2c_dev->clk_lock, flags); return -ETIMEDOUT; } @@ -698,10 +682,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_bus *i2c_bus, } } - spin_lock_irqsave(&i2c_dev->clk_lock, flags); - i2c_dev->controller_enabled = false; tegra_i2c_init(i2c_dev); - spin_unlock_irqrestore(&i2c_dev->clk_lock, flags); if (i2c_dev->msg_err == I2C_ERR_NO_ACK) { if (msg->flags & I2C_M_IGNORE_NAK) @@ -722,7 +703,6 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], struct tegra_i2c_dev *i2c_dev = i2c_bus->dev; int i; int ret = 0; - unsigned long flags; rt_mutex_lock(&i2c_dev->dev_lock); @@ -751,10 +731,6 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], if (!i2c_dev->is_clkon_always) tegra_i2c_clock_enable(i2c_dev); - spin_lock_irqsave(&i2c_dev->clk_lock, flags); - i2c_dev->controller_enabled = true; - spin_unlock_irqrestore(&i2c_dev->clk_lock, flags); - for (i = 0; i < num; i++) { int stop = (i == (num - 1)) ? 1 : 0; ret = tegra_i2c_xfer_msg(i2c_bus, &msgs[i], stop); @@ -762,10 +738,6 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], break; } - spin_lock_irqsave(&i2c_dev->clk_lock, flags); - i2c_dev->controller_enabled = false; - spin_unlock_irqrestore(&i2c_dev->clk_lock, flags); - if (!i2c_dev->is_clkon_always) tegra_i2c_clock_disable(i2c_dev); @@ -886,9 +858,7 @@ static int tegra_i2c_probe(struct platform_device *pdev) i2c_dev->last_bus_clk_rate = plat->bus_clk_rate[0] ?: 100000; i2c_dev->msgs = NULL; i2c_dev->msgs_num = 0; - i2c_dev->controller_enabled = false; rt_mutex_init(&i2c_dev->dev_lock); - spin_lock_init(&i2c_dev->clk_lock); i2c_dev->slave_addr = plat->slave_addr; i2c_dev->hs_master_code = plat->hs_master_code; |