RE: [PATCH v7 9/9] gpio: realtek: Add driver for Realtek DHC RTD1625 SoC
Yu-Chun Lin [林祐君] <[email protected]>
| Newsgroups | org.kernel.vger.linux-gpio,org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Hi Mathieu, > On Thu Jul 23, 2026 at 5:42 AM CEST, Yu-Chun Lin wrote: > > Hi, > > > From: Tzuyi Chang <[email protected]> > > +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 >