[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <053819bd-b3c4-a72c-9316-85d974082ad6@linaro.org>
Date: Fri, 12 May 2023 21:13:04 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
To: Abhinav Kumar <quic_abhinavk@...cinc.com>,
freedreno@...ts.freedesktop.org, Rob Clark <robdclark@...il.com>,
Sean Paul <sean@...rly.run>, David Airlie <airlied@...il.com>,
Daniel Vetter <daniel@...ll.ch>
Cc: dri-devel@...ts.freedesktop.org, quic_jesszhan@...cinc.com,
swboyd@...omium.org, dianders@...omium.org,
linux-arm-msm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] drm/msm/dp: add module parameter for PSR
On 28/04/2023 02:28, Abhinav Kumar wrote:
> On sc7280 where eDP is the primary display, PSR is causing
> IGT breakage even for basic test cases like kms_atomic and
> kms_atomic_transition. Most often the issue starts with below
> stack so providing that as reference
>
> Call trace:
> dpu_encoder_assign_crtc+0x64/0x6c
> dpu_crtc_enable+0x188/0x204
> drm_atomic_helper_commit_modeset_enables+0xc0/0x274
> msm_atomic_commit_tail+0x1a8/0x68c
> commit_tail+0xb0/0x160
> drm_atomic_helper_commit+0x11c/0x124
> drm_atomic_commit+0xb0/0xdc
> drm_atomic_connector_commit_dpms+0xf4/0x110
> drm_mode_obj_set_property_ioctl+0x16c/0x3b0
> drm_connector_property_set_ioctl+0x4c/0x74
> drm_ioctl_kernel+0xec/0x15c
> drm_ioctl+0x264/0x408
> __arm64_sys_ioctl+0x9c/0xd4
> invoke_syscall+0x4c/0x110
> el0_svc_common+0x94/0xfc
> do_el0_svc+0x3c/0xb0
> el0_svc+0x2c/0x7c
> el0t_64_sync_handler+0x48/0x114
> el0t_64_sync+0x190/0x194
> ---[ end trace 0000000000000000 ]---
> [drm-dp] dp_ctrl_push_idle: PUSH_IDLE pattern timedout
>
> Other basic use-cases still seem to work fine hence add a
> a module parameter to allow toggling psr enable/disable till
> PSR related issues are hashed out with IGT.
For the reference: Bjorn reported that he has issues with VT on a
PSR-enabled laptops. This patch fixes the issue for him
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
>
> Signed-off-by: Abhinav Kumar <quic_abhinavk@...cinc.com>
> ---
> drivers/gpu/drm/msm/dp/dp_display.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index 628b0e248db6..dba43167de66 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
> @@ -28,6 +28,10 @@
> #include "dp_audio.h"
> #include "dp_debug.h"
>
> +static bool psr_enabled = false;
> +module_param(psr_enabled, bool, 0);
> +MODULE_PARM_DESC(psr_enabled, "enable PSR for eDP and DP displays");
> +
> #define HPD_STRING_SIZE 30
>
> enum {
> @@ -407,7 +411,7 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp)
>
> edid = dp->panel->edid;
>
> - dp->dp_display.psr_supported = dp->panel->psr_cap.version;
> + dp->dp_display.psr_supported = dp->panel->psr_cap.version && psr_enabled;
>
> dp->audio_supported = drm_detect_monitor_audio(edid);
> dp_panel_handle_sink_request(dp->panel);
--
With best wishes
Dmitry
Powered by blists - more mailing lists