The following commit has been merged into the irq/core branch of tip:

Commit-ID:     d11e2d4fc53d68c1f94b294b97838b78fac5763f
Gitweb:        
https://git.kernel.org/tip/d11e2d4fc53d68c1f94b294b97838b78fac5763f
Author:        Thomas Gleixner <t...@linutronix.de>
AuthorDate:    Sun, 13 Dec 2020 13:49:30 +01:00
Committer:     Thomas Gleixner <t...@linutronix.de>
CommitterDate: Sun, 13 Dec 2020 14:58:44 +01:00

pinctrl: nomadik: Fix the fallout of the irqdesc change

The previous removal of the irq descriptor access missed to update the
second dereference.

Use the cached value in nmk_chip->real_wake instead.

Fixes: 52ae486b230b ("pinctrl: nomadik: Use irq_has_action()")
Reported-by: Ingo Molnar <mi...@kernel.org>
Signed-off-by: Thomas Gleixner <t...@linutronix.de>
---
 drivers/pinctrl/nomadik/pinctrl-nomadik.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c 
b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
index 724abe1..d4ea108 100644
--- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c
+++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
@@ -949,6 +949,7 @@ static void nmk_gpio_dbg_show_one(struct seq_file *s,
        } else {
                int irq = chip->to_irq(chip, offset);
                const int pullidx = pull ? 1 : 0;
+               bool wake;
                int val;
                static const char * const pulls[] = {
                        "none        ",
@@ -970,6 +971,7 @@ static void nmk_gpio_dbg_show_one(struct seq_file *s,
                 */
                if (irq > 0 && irq_has_action(irq)) {
                        char *trigger;
+                       bool wake;
 
                        if (nmk_chip->edge_rising & BIT(offset))
                                trigger = "edge-rising";
@@ -978,10 +980,10 @@ static void nmk_gpio_dbg_show_one(struct seq_file *s,
                        else
                                trigger = "edge-undefined";
 
+                       wake = !!(nmk_chip->real_wake & BIT(offset));
+
                        seq_printf(s, " irq-%d %s%s",
-                                  irq, trigger,
-                                  irqd_is_wakeup_set(&desc->irq_data)
-                                  ? " wakeup" : "");
+                                  irq, trigger, wake ? " wakeup" : "");
                }
        }
        clk_disable(nmk_chip->clk);

Reply via email to