Commit 153a97b4 authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-misc-fixes-2022-09-29' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes

Short summary of fixes pull:

 * bridge/analogix: Revert earlier suspend fix
 * bridge/lt8912b: Fix corrupt display output
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/YzWvHhaqHhYirn4L@linux-uq9g
parents f76349cf cc62d98b
...@@ -1864,12 +1864,6 @@ EXPORT_SYMBOL_GPL(analogix_dp_remove); ...@@ -1864,12 +1864,6 @@ EXPORT_SYMBOL_GPL(analogix_dp_remove);
int analogix_dp_suspend(struct analogix_dp_device *dp) int analogix_dp_suspend(struct analogix_dp_device *dp)
{ {
clk_disable_unprepare(dp->clock); clk_disable_unprepare(dp->clock);
if (dp->plat_data->panel) {
if (drm_panel_unprepare(dp->plat_data->panel))
DRM_ERROR("failed to turnoff the panel\n");
}
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(analogix_dp_suspend); EXPORT_SYMBOL_GPL(analogix_dp_suspend);
...@@ -1884,13 +1878,6 @@ int analogix_dp_resume(struct analogix_dp_device *dp) ...@@ -1884,13 +1878,6 @@ int analogix_dp_resume(struct analogix_dp_device *dp)
return ret; return ret;
} }
if (dp->plat_data->panel) {
if (drm_panel_prepare(dp->plat_data->panel)) {
DRM_ERROR("failed to setup the panel\n");
return -EBUSY;
}
}
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(analogix_dp_resume); EXPORT_SYMBOL_GPL(analogix_dp_resume);
......
...@@ -188,7 +188,7 @@ static int lt8912_write_lvds_config(struct lt8912 *lt) ...@@ -188,7 +188,7 @@ static int lt8912_write_lvds_config(struct lt8912 *lt)
{0x03, 0xff}, {0x03, 0xff},
}; };
return regmap_multi_reg_write(lt->regmap[I2C_CEC_DSI], seq, ARRAY_SIZE(seq)); return regmap_multi_reg_write(lt->regmap[I2C_MAIN], seq, ARRAY_SIZE(seq));
}; };
static inline struct lt8912 *bridge_to_lt8912(struct drm_bridge *b) static inline struct lt8912 *bridge_to_lt8912(struct drm_bridge *b)
...@@ -268,7 +268,7 @@ static int lt8912_video_setup(struct lt8912 *lt) ...@@ -268,7 +268,7 @@ static int lt8912_video_setup(struct lt8912 *lt)
u32 hactive, h_total, hpw, hfp, hbp; u32 hactive, h_total, hpw, hfp, hbp;
u32 vactive, v_total, vpw, vfp, vbp; u32 vactive, v_total, vpw, vfp, vbp;
u8 settle = 0x08; u8 settle = 0x08;
int ret; int ret, hsync_activehigh, vsync_activehigh;
if (!lt) if (!lt)
return -EINVAL; return -EINVAL;
...@@ -278,12 +278,14 @@ static int lt8912_video_setup(struct lt8912 *lt) ...@@ -278,12 +278,14 @@ static int lt8912_video_setup(struct lt8912 *lt)
hpw = lt->mode.hsync_len; hpw = lt->mode.hsync_len;
hbp = lt->mode.hback_porch; hbp = lt->mode.hback_porch;
h_total = hactive + hfp + hpw + hbp; h_total = hactive + hfp + hpw + hbp;
hsync_activehigh = lt->mode.flags & DISPLAY_FLAGS_HSYNC_HIGH;
vactive = lt->mode.vactive; vactive = lt->mode.vactive;
vfp = lt->mode.vfront_porch; vfp = lt->mode.vfront_porch;
vpw = lt->mode.vsync_len; vpw = lt->mode.vsync_len;
vbp = lt->mode.vback_porch; vbp = lt->mode.vback_porch;
v_total = vactive + vfp + vpw + vbp; v_total = vactive + vfp + vpw + vbp;
vsync_activehigh = lt->mode.flags & DISPLAY_FLAGS_VSYNC_HIGH;
if (vactive <= 600) if (vactive <= 600)
settle = 0x04; settle = 0x04;
...@@ -317,6 +319,13 @@ static int lt8912_video_setup(struct lt8912 *lt) ...@@ -317,6 +319,13 @@ static int lt8912_video_setup(struct lt8912 *lt)
ret |= regmap_write(lt->regmap[I2C_CEC_DSI], 0x3e, hfp & 0xff); ret |= regmap_write(lt->regmap[I2C_CEC_DSI], 0x3e, hfp & 0xff);
ret |= regmap_write(lt->regmap[I2C_CEC_DSI], 0x3f, hfp >> 8); ret |= regmap_write(lt->regmap[I2C_CEC_DSI], 0x3f, hfp >> 8);
ret |= regmap_update_bits(lt->regmap[I2C_MAIN], 0xab, BIT(0),
vsync_activehigh ? BIT(0) : 0);
ret |= regmap_update_bits(lt->regmap[I2C_MAIN], 0xab, BIT(1),
hsync_activehigh ? BIT(1) : 0);
ret |= regmap_update_bits(lt->regmap[I2C_MAIN], 0xb2, BIT(0),
lt->connector.display_info.is_hdmi ? BIT(0) : 0);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment