Re: [PATCH v7 9/9] gpio: realtek: Add driver for Realtek DHC RTD1625 SoC

From: Mathieu Dubois-Briand

Date: Thu Jul 23 2026 - 12:32:43 EST


On Thu Jul 23, 2026 at 5:42 AM CEST, Yu-Chun Lin wrote:

Hi,

> From: Tzuyi Chang <tychang@xxxxxxxxxxx>
> +static void rtd1625_gpio_irq_handle(struct irq_desc *desc)
> +{
> + unsigned int (*get_reg_offset)(struct rtd1625_gpio *gpio, unsigned int offset);
> + struct rtd1625_gpio *data = irq_desc_get_handler_data(desc);
> + struct irq_chip *chip = irq_desc_get_chip(desc);
> + unsigned int irq = irq_desc_get_irq(desc);
> + struct irq_domain *domain = data->domain;
> + unsigned int reg_offset, i, j, val;
> + irq_hw_number_t hwirq;
> + unsigned long status;
> + u32 irq_type;
> +
> + if (irq == data->irqs[RTD1625_IRQ_ASSERT])
> + get_reg_offset = &rtd1625_gpio_gpa_offset;
> + else if (irq == data->irqs[RTD1625_IRQ_DEASSERT])
> + get_reg_offset = &rtd1625_gpio_gpda_offset;
> + else if (irq == data->irqs[RTD1625_IRQ_LEVEL])
> + get_reg_offset = &rtd1625_gpio_level_offset;
> + else
> + return;
> +
> + chained_irq_enter(chip, desc);
> +
> + for (i = 0; i < data->info->num_gpios; i += 32) {
> + reg_offset = get_reg_offset(data, i);
> + regmap_read(data->regmap, reg_offset, &val);
> +
> + status = val;

Can the regmap_read() fail here? We are not checking its return, so
maybe status will contain garbage?

Thanks,
Mathieu

--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com