On Sun, 11 Jan 2026, TrainedPro <[email protected]> wrote:
> The Parade PS175 LSPCON chip often requires up to 800ms to settle after a 
> mode change, particularly during resume.
>
> Although the Intel driver (intel_lspcon.c) is aware of this 800ms 
> requirement, it calls the shared helper `drm_lspcon_set_mode()`, which 
> currently hardcodes a 200ms timeout. This specific implementation forces a 
> 200ms limit, effectively overriding the driver's knowledge and causing the 
> mode change to time out prematurely, which results in a black screen (never 
> waking up).
>
> This patch increases the hardcoded timeout in the helper from 200ms to 
> 1000ms. Since the function polls for the status bit, this change does not 
> penalize faster chips but ensures correct operation for slower ones like the 
> PS175.
>
> Signed-off-by: TrainedPro <[email protected]>

Is there an existing gitlab issue with dmesg logs about the issue? See
[1] for how to report one.

BR,
Jani.


[1] https://drm.pages.freedesktop.org/intel-docs/how-to-file-i915-bugs.html



> ---
>  drivers/gpu/drm/display/drm_dp_dual_mode_helper.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c 
> b/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c
> index 719da3610310f..fda3cb4966adf 100644
> --- a/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c
> +++ b/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c
> @@ -495,7 +495,7 @@ int drm_lspcon_set_mode(const struct drm_device *dev, 
> struct i2c_adapter *adapte
>  {
>       u8 data = 0;
>       int ret;
> -     int time_out = 200;
> +     int time_out = 1000;
>       enum drm_lspcon_mode current_mode;
>  
>       if (mode == DRM_LSPCON_MODE_PCON)

-- 
Jani Nikula, Intel

Reply via email to