| From 03f6eebe8b33fdcc4af861372e4b801e612e9391 Mon Sep 17 00:00:00 2001 |
| From: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| Date: Wed, 28 May 2014 09:44:43 +0200 |
| Subject: i2c: rcar: remove spinlock |
| |
| 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> |
| (cherry picked from commit 150b8be3cda54412ad7b54f5392b513b25c0aaa7) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/i2c/busses/i2c-rcar.c | 22 ---------------------- |
| 1 file changed, 22 deletions(-) |
| |
| diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c |
| index 07256a6b56fa..e16784124a41 100644 |
| --- a/drivers/i2c/busses/i2c-rcar.c |
| +++ b/drivers/i2c/busses/i2c-rcar.c |
| @@ -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 */ |
| @@ -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; |
| @@ -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); |
| |
| /* |
| @@ -450,9 +445,6 @@ out: |
| wake_up(&priv->wait); |
| } |
| |
| - spin_unlock(&priv->lock); |
| - /*-------------- spin unlock -----------------*/ |
| - |
| return IRQ_HANDLED; |
| } |
| |
| @@ -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; |
| @@ -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; |
| @@ -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; |
| |
| @@ -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; |
| -- |
| 2.1.2 |
| |