[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALAqxLU=zsaMuBikeEzjtgNFAcxZGdqMhETBHvveNC_JZ=B7JA@mail.gmail.com>
Date: Fri, 30 Apr 2021 10:37:22 -0700
From: John Stultz <john.stultz@...aro.org>
To: Rob Clark <robdclark@...il.com>
Cc: dri-devel <dri-devel@...ts.freedesktop.org>,
Maxime Ripard <maxime@...no.tech>,
Rob Clark <robdclark@...omium.org>,
Stephen Boyd <sboyd@...nel.org>, Sean Paul <sean@...rly.run>,
David Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel@...ll.ch>,
Abhinav Kumar <abhinavk@...eaurora.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
Stephen Boyd <swboyd@...omium.org>,
Kalyan Thota <kalyan_t@...eaurora.org>,
Hongbo Yao <yaohongbo@...wei.com>,
Qinglang Miao <miaoqinglang@...wei.com>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Lee Jones <lee.jones@...aro.org>,
Ville Syrjälä <ville.syrjala@...ux.intel.com>,
"open list:DRM DRIVER FOR MSM ADRENO GPU"
<linux-arm-msm@...r.kernel.org>,
"open list:DRM DRIVER FOR MSM ADRENO GPU"
<freedreno@...ts.freedesktop.org>,
open list <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] drm/msm/dpu: Delete bonkers code
On Fri, Apr 30, 2021 at 10:14 AM Rob Clark <robdclark@...il.com> wrote:
>
> From: Rob Clark <robdclark@...omium.org>
>
> dpu_crtc_atomic_flush() was directly poking it's attached planes in a
> code path that ended up in dpu_plane_atomic_update(), even if the plane
> was not involved in the current atomic update. While a bit dubious,
> this worked before because plane->state would always point to something
> valid. But now using drm_atomic_get_new_plane_state() we could get a
> NULL state pointer instead, leading to:
>
> [ 20.873273] Call trace:
> [ 20.875740] dpu_plane_atomic_update+0x5c/0xed0
> [ 20.880311] dpu_plane_restore+0x40/0x88
> [ 20.884266] dpu_crtc_atomic_flush+0xf4/0x208
> [ 20.888660] drm_atomic_helper_commit_planes+0x150/0x238
> [ 20.894014] msm_atomic_commit_tail+0x1d4/0x7a0
> [ 20.898579] commit_tail+0xa4/0x168
> [ 20.902102] drm_atomic_helper_commit+0x164/0x178
> [ 20.906841] drm_atomic_commit+0x54/0x60
> [ 20.910798] drm_atomic_connector_commit_dpms+0x10c/0x118
> [ 20.916236] drm_mode_obj_set_property_ioctl+0x1e4/0x440
> [ 20.921588] drm_connector_property_set_ioctl+0x60/0x88
> [ 20.926852] drm_ioctl_kernel+0xd0/0x120
> [ 20.930807] drm_ioctl+0x21c/0x478
> [ 20.934235] __arm64_sys_ioctl+0xa8/0xe0
> [ 20.938193] invoke_syscall+0x64/0x130
> [ 20.941977] el0_svc_common.constprop.3+0x5c/0xe0
> [ 20.946716] do_el0_svc+0x80/0xa0
> [ 20.950058] el0_svc+0x20/0x30
> [ 20.953145] el0_sync_handler+0x88/0xb0
> [ 20.957014] el0_sync+0x13c/0x140
>
> The reason for the codepath seems dubious, the atomic suspend/resume
> heplers should handle the power-collapse case. If not, the CRTC's
> atomic_check() should be adding the planes to the atomic update.
Thanks! This patch gets things booting again!
Tested-by: John Stultz <john.stultz@...aro.org>
thanks
-john
Powered by blists - more mailing lists