Hi Sergei, On Tuesday, 16 January 2018 17:42:41 EET Laurent Pinchart wrote: > On Saturday, 13 January 2018 11:25:31 EET Sergei Shtylyov wrote: > > On 1/13/2018 1:15 AM, Laurent Pinchart wrote: > >>>> According to the latest revisions of the R-Car gen3 manual, the LVDS > >>>> mode must be set before the LVDS I/O pins are enabled, not after -- > >>>> fix the gen3 LVDS startup sequence accordingly... > >>>> > >>>> While at it, also fix the comment preceding the first LVDCR0 write > >>>> in the R-Car gen2 startup code that still talks about hardcoding the > >>>> LVDS mode 0... > >>> > >>> How about fixing that in patch 2/2 that touches the Gen2 initialization > >>> sequence ? I think I'd even go as far as squashing both patches, I > >>> don't think there's a need to split them. > >>> > >>>> Fixes: e947eccbeba4 ("drm: rcar-du: Add support for LVDS mode > >>>> selection") > >>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> > >>> > >>> Is this really needed ? Does it fix a problem you've experienced, or is > >>> it theoretical only ? The mode shouldn't matter before the LVDS > >>> internal logic is turned on. Unless there's a real issue I'm not sure we > >>> should make the code more complex. > >> > >> Furthermore the datasheet states > >> > >> "3. This refers to settings other than those that are concerned with > >> LVDS-IF startup. These items may be set while waiting for the conditions > >> of step 6 to be met." > > > > Ah, I hadn't paid much attention to this note. Howeve, it seems quite > > vague to me... and there's no condition in step 6. ;-) > > Lots of bits and pieces are lost in translation yes :-) > > >> Doesn't this mean that the mode and input selector don't have to be set > >> as the very first step, but can be programmed at any point before > >> starting the LVDS encoder through the PWD bit (on Gen3) or the PLLON bit > >> (on Gen2) ? > > > > Frankly speaking, I don't know how to interpret that note... > > My understanding is that the parameters can be programmed at any time before > step 6. The fact that the current code works seems to confirm that > interpretation. We could ask Renesas for a confirmation if you want. I've received feedback, and while it wasn't clear what the not really means, Renesas recommends following the documented startup sequence (I'm still not sure it's really needed, but that's a different story). I'll thus rebase this patch and repost it, and take it in my tree if you're fine with the result. -- Regards, Laurent Pinchart