[v2] drm: rcar_lvds: Fix dual link mode operations
diff mbox series

Message ID 20190805161837.11856-1-jacopo+renesas@jmondi.org
State New
Delegated to: Kieran Bingham
Headers show
Series
  • [v2] drm: rcar_lvds: Fix dual link mode operations
Related show

Commit Message

Jacopo Mondi Aug. 5, 2019, 4:18 p.m. UTC
The R-Car LVDS encoder units support dual-link operations by splitting
the pixel output between the primary encoder and the companion one.

Currently the companion encoder fails at probe time, causing the
registration of the primary to fail as well, preventing the whole DU unit
from being registered at all.

Fix this by not bailing out from probe with error if the
"renesas,companion" property is not specified.

Fixes: fa440d870358 ("drm: rcar-du: lvds: Add support for dual-link mode")
Reported-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
---
 drivers/gpu/drm/rcar-du/rcar_lvds.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

--
2.22.0

Comments

Laurent Pinchart Aug. 5, 2019, 5:17 p.m. UTC | #1
Hi Jacopo,

Thank you for the patch.

On Mon, Aug 05, 2019 at 06:18:37PM +0200, Jacopo Mondi wrote:
> The R-Car LVDS encoder units support dual-link operations by splitting
> the pixel output between the primary encoder and the companion one.

s/companion one/companion encoder/

> Currently the companion encoder fails at probe time, causing the
> registration of the primary to fail as well, preventing the whole DU unit
> from being registered at all.
> 
> Fix this by not bailing out from probe with error if the
> "renesas,companion" property is not specified.
> 
> Fixes: fa440d870358 ("drm: rcar-du: lvds: Add support for dual-link mode")
> Reported-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

and applied to my tree, thank you.

> ---
>  drivers/gpu/drm/rcar-du/rcar_lvds.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> index bada7ee98544..0b872d00760b 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> @@ -662,10 +662,8 @@ static int rcar_lvds_parse_dt_companion(struct rcar_lvds *lvds)
> 
>  	/* Locate the companion LVDS encoder for dual-link operation, if any. */
>  	companion = of_parse_phandle(dev->of_node, "renesas,companion", 0);
> -	if (!companion) {
> -		dev_err(dev, "Companion LVDS encoder not found\n");
> -		return -ENXIO;
> -	}
> +	if (!companion)
> +		return 0;
> 
>  	/*
>  	 * Sanity check: the companion encoder must have the same compatible

Patch
diff mbox series

diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
index bada7ee98544..0b872d00760b 100644
--- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -662,10 +662,8 @@  static int rcar_lvds_parse_dt_companion(struct rcar_lvds *lvds)

 	/* Locate the companion LVDS encoder for dual-link operation, if any. */
 	companion = of_parse_phandle(dev->of_node, "renesas,companion", 0);
-	if (!companion) {
-		dev_err(dev, "Companion LVDS encoder not found\n");
-		return -ENXIO;
-	}
+	if (!companion)
+		return 0;

 	/*
 	 * Sanity check: the companion encoder must have the same compatible