Messages in this thread | | | From | Andy Shevchenko <> | Date | Fri, 1 Jul 2022 22:23:36 +0200 | Subject | Re: [PATCH v12 net-next 1/9] mfd: ocelot: add helper to get regmap from a resource |
| |
On Fri, Jul 1, 2022 at 9:26 PM Colin Foster <colin.foster@in-advantage.com> 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.
...
> + res = platform_get_resource(pdev, IORESOURCE_MEM, index); > + if (res) { > + regs = devm_ioremap_resource(dev, res); > + if (IS_ERR(regs)) > + return ERR_CAST(regs);
Why can't it be devm_platform_get_and_ioremap_resource() here?
regs = devm_platform_get_and_ioremap_resource(); if (res) { if (IS_ERR(regs)) return ERR_CAST(); return ... }
> + return devm_regmap_init_mmio(dev, regs, config); > + }
...
> + return (map) ? map : ERR_PTR(-ENOENT);
Too many parentheses.
Also you may use short form of ternary operator:
return map ?: ERR_PTR(-ENOENT);
-- With Best Regards, Andy Shevchenko
| |