[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <UBSpHjAymEtEPXHSLtDdpGuf2PsKck57@localhost>
Date: Sat, 12 Nov 2022 15:31:14 +0000
From: Aidan MacDonald <aidanmacdonald.0x0@...il.com>
To: lee@...nel.org
Cc: mani@...nel.org, cristian.ciocaltea@...il.com, wens@...e.org,
tharvey@...eworks.com, cw00.choi@...sung.com,
krzysztof.kozlowski@...aro.org, brgl@...ev.pl,
mazziesaccount@...il.com, orsonzhai@...il.com,
baolin.wang@...ux.alibaba.com, zhang.lyra@...il.com,
jernej.skrabec@...il.com, samuel@...lland.org,
linux-kernel@...r.kernel.org, linux-actions@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, linux-sunxi@...ts.linux.dev
Subject: Re: [PATCH 18/18] mfd: wcd934x: Convert irq chip to config regs
> Type registers are deprecated and will eventually be removed from
> regmap-irq. The same functionality can be replicated with config
> registers.
>
> Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@...il.com>
> ---
> drivers/mfd/wcd934x.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
Forgot to include this here:--
One issue with WCD934x - after applying the patch, a bug in regmap-irq
will cause a null pointer deref when setting the IRQ type, but a fix is
already in the regmap tree.
Link: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git/commit/?id=84498d1fb35de6ab71bdfdb6270a464fb4a0951b
> diff --git a/drivers/mfd/wcd934x.c b/drivers/mfd/wcd934x.c
> index 68e2fa2fda99..07e884087f2c 100644
> --- a/drivers/mfd/wcd934x.c
> +++ b/drivers/mfd/wcd934x.c
> @@ -55,17 +55,22 @@ static const struct regmap_irq wcd934x_irqs[] = {
> WCD934X_REGMAP_IRQ_REG(WCD934X_IRQ_SOUNDWIRE, 2, BIT(4)),
> };
>
> +static const unsigned int wcd934x_config_regs[] = {
> + WCD934X_INTR_LEVEL0,
> +};
> +
> static const struct regmap_irq_chip wcd934x_regmap_irq_chip = {
> .name = "wcd934x_irq",
> .status_base = WCD934X_INTR_PIN1_STATUS0,
> .mask_base = WCD934X_INTR_PIN1_MASK0,
> .ack_base = WCD934X_INTR_PIN1_CLEAR0,
> - .type_base = WCD934X_INTR_LEVEL0,
> - .num_type_reg = 4,
> - .type_in_mask = false,
> .num_regs = 4,
> .irqs = wcd934x_irqs,
> .num_irqs = ARRAY_SIZE(wcd934x_irqs),
> + .config_base = wcd934x_config_regs,
> + .num_config_bases = ARRAY_SIZE(wcd934x_config_regs),
> + .num_config_regs = 4,
> + .set_type_config = regmap_irq_set_type_config_simple,
> };
>
> static bool wcd934x_is_volatile_register(struct device *dev, unsigned int reg)
Powered by blists - more mailing lists