Re: [PATCH RESEND] clk: vc5: fix output disabling when enabling a FOD

From: Stephen Boyd
Date: Thu Jun 03 2021 - 16:07:40 EST


Quoting Luca Ceresoli (2021-06-03 01:44:57)
> Hi Stephen,
>
> On 02/06/21 10:00, Stephen Boyd wrote:
> > Quoting Luca Ceresoli (2021-05-27 14:16:47)
> >> On 5P49V6965, when an output is enabled we enable the corresponding
> >> FOD. When this happens for the first time, and specifically when writing
> >> register VC5_OUT_DIV_CONTROL in vc5_clk_out_prepare(), all other outputs
> >> are stopped for a short time and then restarted.
> >>
> >> According to Renesas support this is intended: "The reason for that is VC6E
> >> has synced up all output function".
> >>
> >> This behaviour can be disabled at least on VersaClock 6E devices, of which
> >> only the 5P49V6965 is currently implemented by this driver. This requires
> >> writing bit 7 (bypass_sync{1..4}) in register 0x20..0x50. Those registers
> >> are named "Unused Factory Reserved Register", and the bits are documented
> >> as "Skip VDDO<N> verification", which does not clearly explain the relation
> >> to FOD sync. However according to Renesas support as well as my testing
> >> setting this bit does prevent disabling of all clock outputs when enabling
> >> a FOD.
> >>
> >> See "VersaClock ® 6E Family Register Descriptions and Programming Guide"
> >> (August 30, 2018), Table 116 "Power Up VDD check", page 58:
> >> https://www.renesas.com/us/en/document/mau/versaclock-6e-family-register-descriptions-and-programming-guide
> >>
> >> Signed-off-by: Luca Ceresoli <luca@xxxxxxxxxxxxxxxx>
> >> Reviewed-by: Adam Ford <aford173@xxxxxxxxx>
> >>
> >> ---
> >
> > Any Fixes tag for this patch?
>
> I didn't add any as there is no commit that is clearly introducing the
> problem. This patch fixes a behavior of the chip, which is there by
> design by causes problems in some use cases.
>
> If a Fixes tag is required than I guess it should be the commit adding
> support for the 5P49V6965, which is the only supported variant of VC[56]
> having having the problematic behavior _and_ the reserved register bits
> to prevent it. However I hardly could blame the author of that code for
> such a "peculiar" chip behaviour. Do you still want me to add such a tag?

I tend to liberally apply the Fixes tag if something is being fixed. It
helps understand that the patch is not introducing a new feature and
when the incorrect code was introduced. I can slap on a Fixes tag
myself, just not sure what to do.