| From 4cc629b7a20945ce35628179180329b6bc9e552b Mon Sep 17 00:00:00 2001 |
| From: Stephen Boyd <sboyd@codeaurora.org> |
| Date: Tue, 10 Dec 2013 15:19:03 -0800 |
| Subject: gpio: msm: Fix irq mask/unmask by writing bits instead of numbers |
| |
| From: Stephen Boyd <sboyd@codeaurora.org> |
| |
| commit 4cc629b7a20945ce35628179180329b6bc9e552b upstream. |
| |
| We should be writing bits here but instead we're writing the |
| numbers that correspond to the bits we want to write. Fix it by |
| wrapping the numbers in the BIT() macro. This fixes gpios acting |
| as interrupts. |
| |
| Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpio/gpio-msm-v2.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/gpio/gpio-msm-v2.c |
| +++ b/drivers/gpio/gpio-msm-v2.c |
| @@ -248,7 +248,7 @@ static void msm_gpio_irq_mask(struct irq |
| |
| spin_lock_irqsave(&tlmm_lock, irq_flags); |
| writel(TARGET_PROC_NONE, GPIO_INTR_CFG_SU(gpio)); |
| - clear_gpio_bits(INTR_RAW_STATUS_EN | INTR_ENABLE, GPIO_INTR_CFG(gpio)); |
| + clear_gpio_bits(BIT(INTR_RAW_STATUS_EN) | BIT(INTR_ENABLE), GPIO_INTR_CFG(gpio)); |
| __clear_bit(gpio, msm_gpio.enabled_irqs); |
| spin_unlock_irqrestore(&tlmm_lock, irq_flags); |
| } |
| @@ -260,7 +260,7 @@ static void msm_gpio_irq_unmask(struct i |
| |
| spin_lock_irqsave(&tlmm_lock, irq_flags); |
| __set_bit(gpio, msm_gpio.enabled_irqs); |
| - set_gpio_bits(INTR_RAW_STATUS_EN | INTR_ENABLE, GPIO_INTR_CFG(gpio)); |
| + set_gpio_bits(BIT(INTR_RAW_STATUS_EN) | BIT(INTR_ENABLE), GPIO_INTR_CFG(gpio)); |
| writel(TARGET_PROC_SCORPION, GPIO_INTR_CFG_SU(gpio)); |
| spin_unlock_irqrestore(&tlmm_lock, irq_flags); |
| } |