Skip to content

Commit

Permalink
pinctrl: sirf: fix spinlock deadlock in sirfsoc_gpio_set_input
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Barry Song authored and Linus Walleij committed Sep 28, 2012
1 parent 8dd9766 commit 58d26c1
Showing 1 changed file with 0 additions and 5 deletions.
5 changes: 0 additions & 5 deletions drivers/pinctrl/pinctrl-sirf.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 58d26c1

Please sign in to comment.