Skip to content

Commit

Permalink
i2c: rcar: remove spinlock
Browse files Browse the repository at this point in the history
The i2c core has per-adapter locks, so no need to protect again.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
  • Loading branch information
Wolfram Sang authored and Wolfram Sang committed Jun 1, 2014
1 parent 3c95de6 commit 150b8be
Showing 1 changed file with 0 additions and 22 deletions.
22 changes: 0 additions & 22 deletions drivers/i2c/busses/i2c-rcar.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <linux/spinlock.h>

/* register offsets */
#define ICSCR 0x00 /* slave ctrl */
Expand Down Expand Up @@ -110,7 +109,6 @@ struct rcar_i2c_priv {
struct i2c_msg *msg;
struct clk *clk;

spinlock_t lock;
wait_queue_head_t wait;

int pos;
Expand Down Expand Up @@ -394,9 +392,6 @@ static irqreturn_t rcar_i2c_irq(int irq, void *ptr)
struct device *dev = rcar_i2c_priv_to_dev(priv);
u32 msr;

/*-------------- spin lock -----------------*/
spin_lock(&priv->lock);

msr = rcar_i2c_read(priv, ICMSR);

/*
Expand Down Expand Up @@ -450,9 +445,6 @@ static irqreturn_t rcar_i2c_irq(int irq, void *ptr)
wake_up(&priv->wait);
}

spin_unlock(&priv->lock);
/*-------------- spin unlock -----------------*/

return IRQ_HANDLED;
}

Expand All @@ -462,21 +454,14 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,
{
struct rcar_i2c_priv *priv = i2c_get_adapdata(adap);
struct device *dev = rcar_i2c_priv_to_dev(priv);
unsigned long flags;
int i, ret, timeout;

pm_runtime_get_sync(dev);

/*-------------- spin lock -----------------*/
spin_lock_irqsave(&priv->lock, flags);

rcar_i2c_init(priv);
/* start clock */
rcar_i2c_write(priv, ICCCR, priv->icccr);

spin_unlock_irqrestore(&priv->lock, flags);
/*-------------- spin unlock -----------------*/

ret = rcar_i2c_bus_barrier(priv);
if (ret < 0)
goto out;
Expand All @@ -488,9 +473,6 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,
break;
}

/*-------------- spin lock -----------------*/
spin_lock_irqsave(&priv->lock, flags);

/* init each data */
priv->msg = &msgs[i];
priv->pos = 0;
Expand All @@ -500,9 +482,6 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,

ret = rcar_i2c_prepare_msg(priv);

spin_unlock_irqrestore(&priv->lock, flags);
/*-------------- spin unlock -----------------*/

if (ret < 0)
break;

Expand Down Expand Up @@ -614,7 +593,6 @@ static int rcar_i2c_probe(struct platform_device *pdev)

irq = platform_get_irq(pdev, 0);
init_waitqueue_head(&priv->wait);
spin_lock_init(&priv->lock);

adap = &priv->adap;
adap->nr = pdev->id;
Expand Down

0 comments on commit 150b8be

Please sign in to comment.