Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f409e9d1 authored by Marc Zyngier's avatar Marc Zyngier Committed by Greg Kroah-Hartman
Browse files

pinctrl: npcm: Fix broken references to chip->parent_device



[ 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: default avatarMarc Zyngier <maz@kernel.org>
Acked-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
Link: https://lore.kernel.org/r/20220201120310.878267-11-maz@kernel.org


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent f36dd10d
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line
@@ -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);