summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorBarry Song <Baohua.Song@csr.com>2012-09-27 11:55:17 +0200
committerLinus Walleij <linus.walleij@linaro.org>2012-09-28 09:27:35 +0200
commit58d26c1eab8e94f89f17593e11d88a3821be6c3c (patch)
treec7b3c727f2d3db8ff24bcd6420d898be55b53343 /drivers/pinctrl
parentpinctrl: sirf: add missing pins to pinctrl list (diff)
downloadlinux-58d26c1eab8e94f89f17593e11d88a3821be6c3c.tar.xz
linux-58d26c1eab8e94f89f17593e11d88a3821be6c3c.zip
pinctrl: sirf: fix spinlock deadlock in sirfsoc_gpio_set_input
sirfsoc_gpio_set_input() is called in those functions which have held the spinlock, so delete the duplicated locking. Signed-off-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r--drivers/pinctrl/pinctrl-sirf.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/pinctrl/pinctrl-sirf.c b/drivers/pinctrl/pinctrl-sirf.c
index f309af2ced25..0f4f833e3c93 100644
--- a/drivers/pinctrl/pinctrl-sirf.c
+++ b/drivers/pinctrl/pinctrl-sirf.c
@@ -1458,15 +1458,10 @@ static void sirfsoc_gpio_handle_irq(unsigned int irq, struct irq_desc *desc)
static inline void sirfsoc_gpio_set_input(struct sirfsoc_gpio_bank *bank, unsigned ctrl_offset)
{
u32 val;
- unsigned long flags;
-
- spin_lock_irqsave(&bank->lock, flags);
val = readl(bank->chip.regs + ctrl_offset);
val &= ~SIRFSOC_GPIO_CTL_OUT_EN_MASK;
writel(val, bank->chip.regs + ctrl_offset);
-
- spin_unlock_irqrestore(&bank->lock, flags);
}
static int sirfsoc_gpio_request(struct gpio_chip *chip, unsigned offset)