diff mbox series

[v2,09/13] drm/bridge: lt9611: fix sync polarity for DVI output

Message ID 20230108165656.136871-10-dmitry.baryshkov@linaro.org (mailing list archive)
State Superseded
Headers show
Series drm/bridge: lt9611: several fixes and improvements | expand

Commit Message

Dmitry Baryshkov Jan. 8, 2023, 4:56 p.m. UTC
Attaching DVI sink to the lt9611 requires different setup. Fix the
register write to make the DVI displays sync onto the correct sync
pulse.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 drivers/gpu/drm/bridge/lontium-lt9611.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

Comments

Neil Armstrong Jan. 12, 2023, 9:28 a.m. UTC | #1
On 08/01/2023 17:56, Dmitry Baryshkov wrote:
> Attaching DVI sink to the lt9611 requires different setup. Fix the
> register write to make the DVI displays sync onto the correct sync
> pulse.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>   drivers/gpu/drm/bridge/lontium-lt9611.c | 9 ++++++---
>   1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/lontium-lt9611.c b/drivers/gpu/drm/bridge/lontium-lt9611.c
> index 773d7a56f86f..7f9be74acf0d 100644
> --- a/drivers/gpu/drm/bridge/lontium-lt9611.c
> +++ b/drivers/gpu/drm/bridge/lontium-lt9611.c
> @@ -352,13 +352,16 @@ static int lt9611_video_check(struct lt9611 *lt9611)
>   	return temp;
>   }
>   
> -static void lt9611_hdmi_tx_digital(struct lt9611 *lt9611)
> +static void lt9611_hdmi_tx_digital(struct lt9611 *lt9611, bool is_hdmi)
>   {
>   	regmap_write(lt9611->regmap, 0x8443, 0x46 - lt9611->vic);
>   	regmap_write(lt9611->regmap, 0x8447, lt9611->vic);
>   	regmap_write(lt9611->regmap, 0x843d, 0x0a); /* UD1 infoframe */
>   
> -	regmap_write(lt9611->regmap, 0x82d6, 0x8c);
> +	if (is_hdmi)
> +		regmap_write(lt9611->regmap, 0x82d6, 0x8c);
> +	else
> +		regmap_write(lt9611->regmap, 0x82d6, 0x0c);
>   	regmap_write(lt9611->regmap, 0x82d7, 0x04);
>   }
>   
> @@ -719,7 +722,7 @@ lt9611_bridge_atomic_enable(struct drm_bridge *bridge,
>   	}
>   
>   	lt9611_mipi_input_analog(lt9611);
> -	lt9611_hdmi_tx_digital(lt9611);
> +	lt9611_hdmi_tx_digital(lt9611, connector->display_info.is_hdmi);
>   	lt9611_hdmi_tx_phy(lt9611);
>   
>   	msleep(500);

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/lontium-lt9611.c b/drivers/gpu/drm/bridge/lontium-lt9611.c
index 773d7a56f86f..7f9be74acf0d 100644
--- a/drivers/gpu/drm/bridge/lontium-lt9611.c
+++ b/drivers/gpu/drm/bridge/lontium-lt9611.c
@@ -352,13 +352,16 @@  static int lt9611_video_check(struct lt9611 *lt9611)
 	return temp;
 }
 
-static void lt9611_hdmi_tx_digital(struct lt9611 *lt9611)
+static void lt9611_hdmi_tx_digital(struct lt9611 *lt9611, bool is_hdmi)
 {
 	regmap_write(lt9611->regmap, 0x8443, 0x46 - lt9611->vic);
 	regmap_write(lt9611->regmap, 0x8447, lt9611->vic);
 	regmap_write(lt9611->regmap, 0x843d, 0x0a); /* UD1 infoframe */
 
-	regmap_write(lt9611->regmap, 0x82d6, 0x8c);
+	if (is_hdmi)
+		regmap_write(lt9611->regmap, 0x82d6, 0x8c);
+	else
+		regmap_write(lt9611->regmap, 0x82d6, 0x0c);
 	regmap_write(lt9611->regmap, 0x82d7, 0x04);
 }
 
@@ -719,7 +722,7 @@  lt9611_bridge_atomic_enable(struct drm_bridge *bridge,
 	}
 
 	lt9611_mipi_input_analog(lt9611);
-	lt9611_hdmi_tx_digital(lt9611);
+	lt9611_hdmi_tx_digital(lt9611, connector->display_info.is_hdmi);
 	lt9611_hdmi_tx_phy(lt9611);
 
 	msleep(500);