]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
pinctrl: npcm: Fix broken references to chip->parent_device
authorMarc Zyngier <maz@kernel.org>
Tue, 1 Feb 2022 12:03:08 +0000 (12:03 +0000)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 20 May 2022 12:39:41 +0000 (14:39 +0200)
BugLink: https://bugs.launchpad.net/bugs/1969110
[ Upstream commit f7e53e2255808ca3abcc8f38d18ad0823425e771 ]

The npcm driver has a bunch of references to the irq_chip parent_device
field, but never sets it.

Fix it by fishing that reference from somewhere else, but it is
obvious that these debug statements were never used. Also remove
an unused field in a local data structure.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Acked-by: Bartosz Golaszewski <brgl@bgdev.pl>
Link: https://lore.kernel.org/r/20220201120310.878267-11-maz@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 99780fcb5494a7e9498b7cf5fdacff7741724dec)
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c

index 4d81908d6725d576069ce04316b82ed95b619aae..ba536fd4d67405f141cf1e6ca42fadf32eb0f117 100644 (file)
@@ -78,7 +78,6 @@ struct npcm7xx_gpio {
        struct gpio_chip        gc;
        int                     irqbase;
        int                     irq;
-       void                    *priv;
        struct irq_chip         irq_chip;
        u32                     pinctrl_id;
        int (*direction_input)(struct gpio_chip *chip, unsigned offset);
@@ -226,7 +225,7 @@ static void npcmgpio_irq_handler(struct irq_desc *desc)
        chained_irq_enter(chip, desc);
        sts = ioread32(bank->base + NPCM7XX_GP_N_EVST);
        en  = ioread32(bank->base + NPCM7XX_GP_N_EVEN);
-       dev_dbg(chip->parent_device, "==> got irq sts %.8x %.8x\n", sts,
+       dev_dbg(bank->gc.parent, "==> got irq sts %.8x %.8x\n", sts,
                en);
 
        sts &= en;
@@ -241,33 +240,33 @@ static int npcmgpio_set_irq_type(struct irq_data *d, unsigned int type)
                gpiochip_get_data(irq_data_get_irq_chip_data(d));
        unsigned int gpio = BIT(d->hwirq);
 
-       dev_dbg(d->chip->parent_device, "setirqtype: %u.%u = %u\n", gpio,
+       dev_dbg(bank->gc.parent, "setirqtype: %u.%u = %u\n", gpio,
                d->irq, type);
        switch (type) {
        case IRQ_TYPE_EDGE_RISING:
-               dev_dbg(d->chip->parent_device, "edge.rising\n");
+               dev_dbg(bank->gc.parent, "edge.rising\n");
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_EVBE, gpio);
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_POL, gpio);
                break;
        case IRQ_TYPE_EDGE_FALLING:
-               dev_dbg(d->chip->parent_device, "edge.falling\n");
+               dev_dbg(bank->gc.parent, "edge.falling\n");
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_EVBE, gpio);
                npcm_gpio_set(&bank->gc, bank->base + NPCM7XX_GP_N_POL, gpio);
                break;
        case IRQ_TYPE_EDGE_BOTH:
-               dev_dbg(d->chip->parent_device, "edge.both\n");
+               dev_dbg(bank->gc.parent, "edge.both\n");
                npcm_gpio_set(&bank->gc, bank->base + NPCM7XX_GP_N_EVBE, gpio);
                break;
        case IRQ_TYPE_LEVEL_LOW:
-               dev_dbg(d->chip->parent_device, "level.low\n");
+               dev_dbg(bank->gc.parent, "level.low\n");
                npcm_gpio_set(&bank->gc, bank->base + NPCM7XX_GP_N_POL, gpio);
                break;
        case IRQ_TYPE_LEVEL_HIGH:
-               dev_dbg(d->chip->parent_device, "level.high\n");
+               dev_dbg(bank->gc.parent, "level.high\n");
                npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_POL, gpio);
                break;
        default:
-               dev_dbg(d->chip->parent_device, "invalid irq type\n");
+               dev_dbg(bank->gc.parent, "invalid irq type\n");
                return -EINVAL;
        }
 
@@ -289,7 +288,7 @@ static void npcmgpio_irq_ack(struct irq_data *d)
                gpiochip_get_data(irq_data_get_irq_chip_data(d));
        unsigned int gpio = d->hwirq;
 
-       dev_dbg(d->chip->parent_device, "irq_ack: %u.%u\n", gpio, d->irq);
+       dev_dbg(bank->gc.parent, "irq_ack: %u.%u\n", gpio, d->irq);
        iowrite32(BIT(gpio), bank->base + NPCM7XX_GP_N_EVST);
 }
 
@@ -301,7 +300,7 @@ static void npcmgpio_irq_mask(struct irq_data *d)
        unsigned int gpio = d->hwirq;
 
        /* Clear events */
-       dev_dbg(d->chip->parent_device, "irq_mask: %u.%u\n", gpio, d->irq);
+       dev_dbg(bank->gc.parent, "irq_mask: %u.%u\n", gpio, d->irq);
        iowrite32(BIT(gpio), bank->base + NPCM7XX_GP_N_EVENC);
 }
 
@@ -313,7 +312,7 @@ static void npcmgpio_irq_unmask(struct irq_data *d)
        unsigned int gpio = d->hwirq;
 
        /* Enable events */
-       dev_dbg(d->chip->parent_device, "irq_unmask: %u.%u\n", gpio, d->irq);
+       dev_dbg(bank->gc.parent, "irq_unmask: %u.%u\n", gpio, d->irq);
        iowrite32(BIT(gpio), bank->base + NPCM7XX_GP_N_EVENS);
 }
 
@@ -323,7 +322,7 @@ static unsigned int npcmgpio_irq_startup(struct irq_data *d)
        unsigned int gpio = d->hwirq;
 
        /* active-high, input, clear interrupt, enable interrupt */
-       dev_dbg(d->chip->parent_device, "startup: %u.%u\n", gpio, d->irq);
+       dev_dbg(gc->parent, "startup: %u.%u\n", gpio, d->irq);
        npcmgpio_direction_input(gc, gpio);
        npcmgpio_irq_ack(d);
        npcmgpio_irq_unmask(d);