[PATCH] drm/omap: Fix port lookup for SDI output

Aaro Koskinen aaro.koskinen at iki.fi
Wed Aug 21 20:26:27 UTC 2019


Hi,

On Wed, Aug 21, 2019 at 09:32:26PM +0300, Laurent Pinchart wrote:
> When refactoring port lookup for DSS outputs, commit d17eb4537a7e
> ("drm/omap: Factor out common init/cleanup code for output devices")
> incorrectly hardcoded usage of DT port 0. This breaks operation for SDI
> (which uses the DT port 1) and DPI outputs other than DPI0 (which are
> not used in mainline DT sources).
> 
> Fix this by using the port number from the output omap_dss_device
> of_ports field.
> 
> Fixes: d17eb4537a7e ("drm/omap: Factor out common init/cleanup code for output devices")
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Tested-by: Aaro Koskinen <aaro.koskinen at iki.fi>

Thanks, this fixes the display issue on N900.

A.

> ---
>  drivers/gpu/drm/omapdrm/dss/output.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/output.c b/drivers/gpu/drm/omapdrm/dss/output.c
> index de0f882f0f7b..14b41de44ebc 100644
> --- a/drivers/gpu/drm/omapdrm/dss/output.c
> +++ b/drivers/gpu/drm/omapdrm/dss/output.c
> @@ -4,6 +4,7 @@
>   * Author: Archit Taneja <archit at ti.com>
>   */
>  
> +#include <linux/bitops.h>
>  #include <linux/kernel.h>
>  #include <linux/module.h>
>  #include <linux/platform_device.h>
> @@ -20,7 +21,8 @@ int omapdss_device_init_output(struct omap_dss_device *out)
>  {
>  	struct device_node *remote_node;
>  
> -	remote_node = of_graph_get_remote_node(out->dev->of_node, 0, 0);
> +	remote_node = of_graph_get_remote_node(out->dev->of_node,
> +					       ffs(out->of_ports) - 1, 0);
>  	if (!remote_node) {
>  		dev_dbg(out->dev, "failed to find video sink\n");
>  		return 0;
> -- 
> Regards,
> 
> Laurent Pinchart
> 


More information about the dri-devel mailing list