Thread (41 messages) 41 messages, 7 authors, 2022-07-02

Re: [PATCH v11 net-next 1/9] mfd: ocelot: add helper to get regmap from a resource

From: Andy Shevchenko <hidden>
Date: 2022-06-28 12:51:17
Also in: linux-arm-kernel, linux-devicetree, linux-gpio, lkml

On Tue, Jun 28, 2022 at 10:17 AM Colin Foster
[off-list ref] wrote:
Several ocelot-related modules are designed for MMIO / regmaps. As such,
they often use a combination of devm_platform_get_and_ioremap_resource and
devm_regmap_init_mmio.

Operating in an MFD might be different, in that it could be memory mapped,
or it could be SPI, I2C... In these cases a fallback to use IORESOURCE_REG
instead of IORESOURCE_MEM becomes necessary.

When this happens, there's redundant logic that needs to be implemented in
every driver. In order to avoid this redundancy, utilize a single function
that, if the MFD scenario is enabled, will perform this fallback logic.
+       regs = devm_platform_get_and_ioremap_resource(pdev, index, &res);
+
+       if (!res)
+               return ERR_PTR(-ENOENT);
This needs a comment why the original error code from devm_ call above
is not good here.
+       else if (IS_ERR(regs))
+               return ERR_CAST(regs);
+       else
+               return devm_regmap_init_mmio(&pdev->dev, regs, config);
+}
'else' is redundant in all cases above.

-- 
With Best Regards,
Andy Shevchenko
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help