2014-04-07 08:22:53

by Philipp Zabel

[permalink] [raw]
Subject: [PATCH] imx-drm: imx-drm-core: Fix imx_drm_encoder_get_mux_id

The decoder mux id is equal to the port id of the encoder's input port
that is connected to the given crtc, not to the endpoint id (which is
arbitrary and usually zero).

Signed-off-by: Philipp Zabel <[email protected]>
---
drivers/staging/imx-drm/imx-drm-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/imx-drm/imx-drm-core.c b/drivers/staging/imx-drm/imx-drm-core.c
index 4144a75..bc7f8bd 100644
--- a/drivers/staging/imx-drm/imx-drm-core.c
+++ b/drivers/staging/imx-drm/imx-drm-core.c
@@ -517,7 +517,7 @@ int imx_drm_encoder_get_mux_id(struct device_node *node,
of_node_put(port);
if (port == imx_crtc->port) {
ret = of_graph_parse_endpoint(ep, &endpoint);
- return ret ? ret : endpoint.id;
+ return ret ? ret : endpoint.port;
}
} while (ep);

--
1.9.1


2014-04-07 13:47:20

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH] imx-drm: imx-drm-core: Fix imx_drm_encoder_get_mux_id

On Mon, Apr 07, 2014 at 10:22:36AM +0200, Philipp Zabel wrote:
> The decoder mux id is equal to the port id of the encoder's input port
> that is connected to the given crtc, not to the endpoint id (which is
> arbitrary and usually zero).
>
> Signed-off-by: Philipp Zabel <[email protected]>

It fixes a color corruption issue on my dual display case (LVDS + HDMI).

Tested-by: Shawn Guo <[email protected]>

Shawn

> ---
> drivers/staging/imx-drm/imx-drm-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/imx-drm/imx-drm-core.c b/drivers/staging/imx-drm/imx-drm-core.c
> index 4144a75..bc7f8bd 100644
> --- a/drivers/staging/imx-drm/imx-drm-core.c
> +++ b/drivers/staging/imx-drm/imx-drm-core.c
> @@ -517,7 +517,7 @@ int imx_drm_encoder_get_mux_id(struct device_node *node,
> of_node_put(port);
> if (port == imx_crtc->port) {
> ret = of_graph_parse_endpoint(ep, &endpoint);
> - return ret ? ret : endpoint.id;
> + return ret ? ret : endpoint.port;
> }
> } while (ep);
>
> --
> 1.9.1
>