Messages in this thread | | | From | Sam Protsenko <> | Date | Thu, 14 Jul 2022 16:15:33 +0300 | Subject | Re: [PATCH v2 4/7] iommu/exynos: Use lookup based approach to access registers |
| |
On Tue, 12 Jul 2022 at 19:52, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:
[snip]
> > +static void sysmmu_write(struct sysmmu_drvdata *data, size_t idx, u32 val) > > +{ > > + writel(val, data->sfrbase + data->regs[idx]); > > Beside what Robin wrote, I also don't think these wrappers actually > help, because you reverse arguments comparing to writel. > > How about having a per-variant structure with offsets and using it like: > > #define SYSMMU_REG(data, reg) ((data)->sfrbase + (data)->variant->reg) > writel(CTRL_ENABLE, SYSMMU_REG(data, mmu_ctrl_reg)) > > Would that be more readable? >
Yes, this looks better for my taste too. I tend to get a tunnel vision when working with downstream code for a while. But I noticed that that approach is used sometimes as well, e.g. in drivers/pinctrl/samsung/pinctrl-exynos-arm64.c (in struct samsung_pin_bank_type). Anyway, I've reworked it exactly as you suggested, will send v2 soon. Thanks!
> > Best regards, > Krzysztof
| |