Hi Sam, On Tue, May 28, 2019 at 06:42:13PM +0200, Sam Ravnborg wrote: > On Tue, May 28, 2019 at 05:12:31PM +0300, Laurent Pinchart wrote: > > In dual-link LVDS mode, the LVDS1 encoder is used as a companion for > > LVDS0, and both encoders transmit data from DU0. The LVDS1 output of DU1 > > can't be used in that case, don't create an encoder and connector for > > it. > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> > > Reviewed-by: Jacopo Mondi <jacopo+renesas@xxxxxxxxxx> > > Tested-by: Jacopo Mondi <jacopo+renesas@xxxxxxxxxx> > > --- > > Changess since v2: > > > > - Remove unneeded bridge NULL check > > --- > > drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 12 ++++++++++++ > > drivers/gpu/drm/rcar-du/rcar_du_kms.c | 2 +- > > 2 files changed, 13 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c > > index 6c91753af7bc..0f00bdfe2366 100644 > > --- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.c > > +++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.c > > @@ -16,6 +16,7 @@ > > #include "rcar_du_drv.h" > > #include "rcar_du_encoder.h" > > #include "rcar_du_kms.h" > > +#include "rcar_lvds.h" > > > > /* ----------------------------------------------------------------------------- > > * Encoder > > @@ -97,6 +98,17 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, > > } > > } > > > > + /* > > + * On Gen3 skip the LVDS1 output if the LVDS1 encoder is used as a > > + * companion for LVDS0 in dual-link mode. > > + */ > > + if (rcdu->info->gen >= 3 && output == RCAR_DU_OUTPUT_LVDS1) { > > Both subject and comment above says "On Gen3", but the code looks like > it implements "On Gen3 or newer" - due to use of ">=". > Looks wrong to me. Gen3 is the newest generation :-) We thus use >= through the DU and LVDS drivers to prepare for support of Gen4, just in case. -- Regards, Laurent Pinchart