[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