Re: [PATCH v3 2/2] remoteproc: meson-mx-ao-arc: Add a driver for the AO ARC remote procesor
From: Martin Blumenstingl
Date: Wed Aug 04 2021 - 17:04:13 EST
Hi Mathieu,
thanks for taking the time to look into this!
(I will address any of your comments that I am not mentioning in this
email anymore. Thanks a lot for the suggestions!)
On Wed, Jul 28, 2021 at 7:58 PM Mathieu Poirier
<mathieu.poirier@xxxxxxxxxx> wrote:
[...]
> > + writel(FIELD_PREP(AO_REMAP_REG0_REMAP_AHB_SRAM_BITS_17_14_FOR_ARM_CPU,
> > + priv->sram_pa >> 14),
> Indentation problem
The idea here is to align priv->sram_pa with AO_REMAP_REG0... which
are both arguments to FIELD_PREP
Maybe using something like this will make that easier to read:
tmp = FIELD_PREP(AO_REMAP_REG0_REMAP_AHB_SRAM_BITS_17_14_FOR_ARM_CPU,
priv->sram_pa >> 14);
writel(tmp, priv->remap_base + AO_REMAP_REG0);
What do you think: leave it as is or use a separate variable?
[...]
> > + usleep_range(10, 100);
>
> I've seen this kind of mysterious timeouts in other patchset based vendor trees.
> You likely don't know why it is needed so I won't ask.
unfortunately this is also the case here
[...]
> > + priv->arc_reset = devm_reset_control_get_exclusive(dev, NULL);
> > + if (IS_ERR(priv->arc_reset)) {
>
> Function __reset_control_get() in __devm_reset_control_get() can return NULL so
> this should be IS_ERR_OR_NULL().
The logic in there is: return optional ? NULL : ERR_PTR(-...);
I am requesting a mandatory reset line here, so reset core will never
return NULL
See also [0]
For this reason I am not planning to change this
[...]
> This driver is squeaky clean. With the above:
>
> Reviewed-by: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
awesome, thank you!
Best regards,
Martin
[0] https://elixir.bootlin.com/linux/v5.14-rc4/source/include/linux/reset.h#L227