[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <D92U6CMH9WWM.3JLM1KLZF4WF8@bootlin.com>
Date: Thu, 10 Apr 2025 11:03:46 +0200
From: "Mathieu Dubois-Briand" <mathieu.dubois-briand@...tlin.com>
To: "Andy Shevchenko" <andriy.shevchenko@...el.com>
Cc: "Lee Jones" <lee@...nel.org>, "Rob Herring" <robh@...nel.org>,
"Krzysztof Kozlowski" <krzk+dt@...nel.org>, "Conor Dooley"
<conor+dt@...nel.org>, "Kamel Bouhara" <kamel.bouhara@...tlin.com>, "Linus
Walleij" <linus.walleij@...aro.org>, "Bartosz Golaszewski" <brgl@...ev.pl>,
"Dmitry Torokhov" <dmitry.torokhov@...il.com>,
Uwe Kleine-König <ukleinek@...nel.org>, "Michael Walle"
<mwalle@...nel.org>, "Mark Brown" <broonie@...nel.org>, "Greg
Kroah-Hartman" <gregkh@...uxfoundation.org>, "Rafael J. Wysocki"
<rafael@...nel.org>, "Danilo Krummrich" <dakr@...nel.org>,
<devicetree@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-gpio@...r.kernel.org>, <linux-input@...r.kernel.org>,
<linux-pwm@...r.kernel.org>, Grégory Clement
<gregory.clement@...tlin.com>, "Thomas Petazzoni"
<thomas.petazzoni@...tlin.com>
Subject: Re: [PATCH v6 07/12] gpio: regmap: Allow to allocate regmap-irq
device
On Wed Apr 9, 2025 at 6:39 PM CEST, Andy Shevchenko wrote:
> On Wed, Apr 09, 2025 at 04:55:54PM +0200, Mathieu Dubois-Briand wrote:
>> GPIO controller often have support for IRQ: allow to easily allocate
>> both gpio-regmap and regmap-irq in one operation.
>
>>
>> - memcpy(d->prev_status_buf, d->status_buf, array_size(d->prev_status_buf));
>> + memcpy(d->prev_status_buf, d->status_buf,
>> + array_size(d->chip->num_regs, sizeof(d->prev_status_buf[0])));
>
> ...
>
>> +#ifdef CONFIG_REGMAP_IRQ
>> + if (config->regmap_irq_chip) {
>> + struct regmap_irq_chip_data *irq_chip_data;
>> +
>> + ret = devm_regmap_add_irq_chip_fwnode(config->parent, dev_fwnode(config->parent),
>> + config->regmap, config->regmap_irq_irqno,
>> + config->regmap_irq_flags, 0,
>> + config->regmap_irq_chip, &irq_chip_data);
>> + if (ret)
>> + goto err_free_gpio;
>> +
>> + irq_domain = regmap_irq_get_domain(irq_chip_data);
>> + } else
>> +#endif
>> + irq_domain = config->irq_domain;
>
>> +
>
> This is blank line is not needed, but I not mind either way.
>
I can remove it, but as the line above is potentially part of the
"else", I have a small preference for keeping it.
>> + if (irq_domain) {
>> + ret = gpiochip_irqchip_add_domain(chip, irq_domain);
>> if (ret)
>> goto err_remove_gpiochip;
>> }
>
> ...
>
>> + * @regmap_irq_chip: (Optional) Pointer on an regmap_irq_chip structure. If
>> + * set, a regmap-irq device will be created and the IRQ
>> + * domain will be set accordingly.
>
>> + * @regmap_irq_chip_data: (Optional) Pointer on an regmap_irq_chip_data
>> + * structure pointer. If set, it will be populated with a
>> + * pointer on allocated regmap_irq data.
>
> Leftover?
Yes, sorry...
>
>> + * @regmap_irq_irqno (Optional) The IRQ the device uses to signal interrupts.
>> + * @regmap_irq_flags (Optional) The IRQF_ flags to use for the interrupt.
>
> ...
>
>> +#ifdef CONFIG_REGMAP_IRQ
>> + struct regmap_irq_chip *regmap_irq_chip;
>> + int regmap_irq_irqno;
>
> Perhaps call it line?
>
> int regmap_irq_line;
>
Makes sense, thanks.
>> + unsigned long regmap_irq_flags;
>> +#endif
Thanks for your review.
Mathieu
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists