RE: [PATCH v7 9/9] gpio: realtek: Add driver for Realtek DHC RTD1625 SoC
From: Yu-Chun Lin [林祐君]
Date: Fri Jul 24 2026 - 01:50:41 EST
Hi Mathieu,
> 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?
>
Agreed. Will fix.
Best Regards,
Yu-Chun
> Thanks,
> Mathieu
>