Commit 0b157efa authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Neil Armstrong
Browse files

drm/bridge: lt9611: fix polarity programming



Fix programming of hsync and vsync polarities

Fixes: 23278bf5 ("drm/bridge: Introduce LT9611 DSI to HDMI bridge")
Reviewed-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230118081658.2198520-4-dmitry.baryshkov@linaro.org
parent a7790f6b
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -207,7 +207,6 @@ static void lt9611_pcr_setup(struct lt9611 *lt9611, const struct drm_display_mod

		/* stage 2 */
		{ 0x834a, 0x40 },
		{ 0x831d, 0x10 },

		/* MK limit */
		{ 0x832d, 0x38 },
@@ -222,10 +221,18 @@ static void lt9611_pcr_setup(struct lt9611 *lt9611, const struct drm_display_mod
		{ 0x8325, 0x00 },
		{ 0x832a, 0x01 },
		{ 0x834a, 0x10 },
		{ 0x831d, 0x10 },
		{ 0x8326, 0x37 },
	};
	u8 pol = 0x10;

	if (mode->flags & DRM_MODE_FLAG_NHSYNC)
		pol |= 0x2;
	if (mode->flags & DRM_MODE_FLAG_NVSYNC)
		pol |= 0x1;
	regmap_write(lt9611->regmap, 0x831d, pol);

	if (mode->hdisplay == 3840)
		regmap_multi_reg_write(lt9611->regmap, reg_cfg2, ARRAY_SIZE(reg_cfg2));
	else
		regmap_multi_reg_write(lt9611->regmap, reg_cfg, ARRAY_SIZE(reg_cfg));

	switch (mode->hdisplay) {
@@ -236,7 +243,7 @@ static void lt9611_pcr_setup(struct lt9611 *lt9611, const struct drm_display_mod
		regmap_write(lt9611->regmap, 0x8326, 0x37);
		break;
	case 3840:
		regmap_multi_reg_write(lt9611->regmap, reg_cfg2, ARRAY_SIZE(reg_cfg2));
		regmap_write(lt9611->regmap, 0x8326, 0x37);
		break;
	}