Message ID | 20190206191509.8503-1-dan.streetman@canonical.com |
---|---|
State | New |
Headers | show |
Series | [SRU,Cosmic] drm/amd/display: Fix MST dp_blank REG_WAIT timeout | expand |
On 06.02.19 20:15, Dan Streetman wrote: > From: "Jerry (Fangzhi) Zuo" <Jerry.Zuo@amd.com> > > BugLink: https://bugs.launchpad.net/bugs/1814308 > > Need to blank stream before deallocate MST payload. > > [drm:generic_reg_wait [amdgpu]] *ERROR* REG_WAIT timeout 10us * 3000 tries - dce110_stream_encoder_dp_blank line:944 > ------------[ cut here ]------------ > WARNING: CPU: 0 PID: 2201 at /var/lib/dkms/amdgpu/18.50-690240/build/amd/amdgpu/../display/dc/dc_helper.c:249 generic_reg_wait+0xe7/0x160 [amdgpu] > Call Trace: > dce110_stream_encoder_dp_blank+0x11c/0x180 [amdgpu] > core_link_disable_stream+0x40/0x230 [amdgpu] > ? generic_reg_update_ex+0xdb/0x130 [amdgpu] > dce110_reset_hw_ctx_wrap+0xb7/0x1f0 [amdgpu] > dce110_apply_ctx_to_hw+0x30/0x430 [amdgpu] > ? dce110_apply_ctx_for_surface+0x206/0x260 [amdgpu] > dc_commit_state+0x2ba/0x4d0 [amdgpu] > amdgpu_dm_atomic_commit_tail+0x297/0xd70 [amdgpu] > ? amdgpu_bo_pin_restricted+0x58/0x260 [amdgpu] > ? wait_for_completion_timeout+0x1f/0x120 > ? wait_for_completion_interruptible+0x1c/0x160 > commit_tail+0x3d/0x60 [drm_kms_helper] > drm_atomic_helper_commit+0xf6/0x100 [drm_kms_helper] > drm_atomic_connector_commit_dpms+0xe5/0xf0 [drm] > drm_mode_obj_set_property_ioctl+0x14f/0x250 [drm] > drm_mode_connector_property_set_ioctl+0x2e/0x40 [drm] > drm_ioctl+0x1e0/0x430 [drm] > ? drm_mode_connector_set_obj_prop+0x70/0x70 [drm] > ? ep_read_events_proc+0xb0/0xb0 > ? ep_scan_ready_list.constprop.18+0x1e6/0x1f0 > ? timerqueue_add+0x52/0x80 > amdgpu_drm_ioctl+0x49/0x80 [amdgpu] > do_vfs_ioctl+0x90/0x5f0 > SyS_ioctl+0x74/0x80 > do_syscall_64+0x74/0x140 > entry_SYSCALL_64_after_hwframe+0x3d/0xa2 > ---[ end trace 3ed7b77a97d60f72 ]--- > > Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com> > Reviewed-by: Hersen Wu <hersenxs.wu@amd.com> > Acked-by: Harry Wentland <harry.wentland@amd.com> > Acked-by: Alex Deucher <alexander.deucher@amd.com> > Tested-by: Lyude Paul <lyude@redhat.com> > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > Cc: stable@vger.kernel.org (cherry picked from commit 8c9d90eebd23b6d40ddf4ce5df5ca2b932336a06) > Signed-off-by: Dan Streetman <ddstreet@canonical.com> Acked-by: Stefan Bader <stefan.bader@canonical.com> > --- The cherry picked (no hyphen!) goes before the signed off. > drivers/gpu/drm/amd/display/dc/core/dc_link.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > index 6ccd59b87403..b6cbc787efaf 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > @@ -2448,11 +2448,11 @@ void core_link_disable_stream(struct pipe_ctx *pipe_ctx, int option) > { > struct dc *core_dc = pipe_ctx->stream->ctx->dc; > > + core_dc->hwss.blank_stream(pipe_ctx); > + > if (pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) > deallocate_mst_payload(pipe_ctx); > > - core_dc->hwss.blank_stream(pipe_ctx); > - > core_dc->hwss.disable_stream(pipe_ctx, option); > > disable_link(pipe_ctx->stream->sink->link, pipe_ctx->stream->signal); >
On 2/6/19 8:15 PM, Dan Streetman wrote: > From: "Jerry (Fangzhi) Zuo" <Jerry.Zuo@amd.com> > > BugLink: https://bugs.launchpad.net/bugs/1814308 > > Need to blank stream before deallocate MST payload. > > [drm:generic_reg_wait [amdgpu]] *ERROR* REG_WAIT timeout 10us * 3000 tries - dce110_stream_encoder_dp_blank line:944 > ------------[ cut here ]------------ > WARNING: CPU: 0 PID: 2201 at /var/lib/dkms/amdgpu/18.50-690240/build/amd/amdgpu/../display/dc/dc_helper.c:249 generic_reg_wait+0xe7/0x160 [amdgpu] > Call Trace: > dce110_stream_encoder_dp_blank+0x11c/0x180 [amdgpu] > core_link_disable_stream+0x40/0x230 [amdgpu] > ? generic_reg_update_ex+0xdb/0x130 [amdgpu] > dce110_reset_hw_ctx_wrap+0xb7/0x1f0 [amdgpu] > dce110_apply_ctx_to_hw+0x30/0x430 [amdgpu] > ? dce110_apply_ctx_for_surface+0x206/0x260 [amdgpu] > dc_commit_state+0x2ba/0x4d0 [amdgpu] > amdgpu_dm_atomic_commit_tail+0x297/0xd70 [amdgpu] > ? amdgpu_bo_pin_restricted+0x58/0x260 [amdgpu] > ? wait_for_completion_timeout+0x1f/0x120 > ? wait_for_completion_interruptible+0x1c/0x160 > commit_tail+0x3d/0x60 [drm_kms_helper] > drm_atomic_helper_commit+0xf6/0x100 [drm_kms_helper] > drm_atomic_connector_commit_dpms+0xe5/0xf0 [drm] > drm_mode_obj_set_property_ioctl+0x14f/0x250 [drm] > drm_mode_connector_property_set_ioctl+0x2e/0x40 [drm] > drm_ioctl+0x1e0/0x430 [drm] > ? drm_mode_connector_set_obj_prop+0x70/0x70 [drm] > ? ep_read_events_proc+0xb0/0xb0 > ? ep_scan_ready_list.constprop.18+0x1e6/0x1f0 > ? timerqueue_add+0x52/0x80 > amdgpu_drm_ioctl+0x49/0x80 [amdgpu] > do_vfs_ioctl+0x90/0x5f0 > SyS_ioctl+0x74/0x80 > do_syscall_64+0x74/0x140 > entry_SYSCALL_64_after_hwframe+0x3d/0xa2 > ---[ end trace 3ed7b77a97d60f72 ]--- > > Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com> > Reviewed-by: Hersen Wu <hersenxs.wu@amd.com> > Acked-by: Harry Wentland <harry.wentland@amd.com> > Acked-by: Alex Deucher <alexander.deucher@amd.com> > Tested-by: Lyude Paul <lyude@redhat.com> > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > Cc: stable@vger.kernel.org > Signed-off-by: Dan Streetman <ddstreet@canonical.com> > (cherry-picked from commit 8c9d90eebd23b6d40ddf4ce5df5ca2b932336a06) With the fixes pointed out by Stefan: Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> > --- > drivers/gpu/drm/amd/display/dc/core/dc_link.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > index 6ccd59b87403..b6cbc787efaf 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > @@ -2448,11 +2448,11 @@ void core_link_disable_stream(struct pipe_ctx *pipe_ctx, int option) > { > struct dc *core_dc = pipe_ctx->stream->ctx->dc; > > + core_dc->hwss.blank_stream(pipe_ctx); > + > if (pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) > deallocate_mst_payload(pipe_ctx); > > - core_dc->hwss.blank_stream(pipe_ctx); > - > core_dc->hwss.disable_stream(pipe_ctx, option); > > disable_link(pipe_ctx->stream->sink->link, pipe_ctx->stream->signal);
Applied with the aforementioned changes On 2019-02-06 14:15:09 , Dan Streetman wrote: > From: "Jerry (Fangzhi) Zuo" <Jerry.Zuo@amd.com> > > BugLink: https://bugs.launchpad.net/bugs/1814308 > > Need to blank stream before deallocate MST payload. > > [drm:generic_reg_wait [amdgpu]] *ERROR* REG_WAIT timeout 10us * 3000 tries - dce110_stream_encoder_dp_blank line:944 > ------------[ cut here ]------------ > WARNING: CPU: 0 PID: 2201 at /var/lib/dkms/amdgpu/18.50-690240/build/amd/amdgpu/../display/dc/dc_helper.c:249 generic_reg_wait+0xe7/0x160 [amdgpu] > Call Trace: > dce110_stream_encoder_dp_blank+0x11c/0x180 [amdgpu] > core_link_disable_stream+0x40/0x230 [amdgpu] > ? generic_reg_update_ex+0xdb/0x130 [amdgpu] > dce110_reset_hw_ctx_wrap+0xb7/0x1f0 [amdgpu] > dce110_apply_ctx_to_hw+0x30/0x430 [amdgpu] > ? dce110_apply_ctx_for_surface+0x206/0x260 [amdgpu] > dc_commit_state+0x2ba/0x4d0 [amdgpu] > amdgpu_dm_atomic_commit_tail+0x297/0xd70 [amdgpu] > ? amdgpu_bo_pin_restricted+0x58/0x260 [amdgpu] > ? wait_for_completion_timeout+0x1f/0x120 > ? wait_for_completion_interruptible+0x1c/0x160 > commit_tail+0x3d/0x60 [drm_kms_helper] > drm_atomic_helper_commit+0xf6/0x100 [drm_kms_helper] > drm_atomic_connector_commit_dpms+0xe5/0xf0 [drm] > drm_mode_obj_set_property_ioctl+0x14f/0x250 [drm] > drm_mode_connector_property_set_ioctl+0x2e/0x40 [drm] > drm_ioctl+0x1e0/0x430 [drm] > ? drm_mode_connector_set_obj_prop+0x70/0x70 [drm] > ? ep_read_events_proc+0xb0/0xb0 > ? ep_scan_ready_list.constprop.18+0x1e6/0x1f0 > ? timerqueue_add+0x52/0x80 > amdgpu_drm_ioctl+0x49/0x80 [amdgpu] > do_vfs_ioctl+0x90/0x5f0 > SyS_ioctl+0x74/0x80 > do_syscall_64+0x74/0x140 > entry_SYSCALL_64_after_hwframe+0x3d/0xa2 > ---[ end trace 3ed7b77a97d60f72 ]--- > > Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com> > Reviewed-by: Hersen Wu <hersenxs.wu@amd.com> > Acked-by: Harry Wentland <harry.wentland@amd.com> > Acked-by: Alex Deucher <alexander.deucher@amd.com> > Tested-by: Lyude Paul <lyude@redhat.com> > Signed-off-by: Alex Deucher <alexander.deucher@amd.com> > Cc: stable@vger.kernel.org > Signed-off-by: Dan Streetman <ddstreet@canonical.com> > (cherry-picked from commit 8c9d90eebd23b6d40ddf4ce5df5ca2b932336a06) > --- > drivers/gpu/drm/amd/display/dc/core/dc_link.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > index 6ccd59b87403..b6cbc787efaf 100644 > --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c > +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c > @@ -2448,11 +2448,11 @@ void core_link_disable_stream(struct pipe_ctx *pipe_ctx, int option) > { > struct dc *core_dc = pipe_ctx->stream->ctx->dc; > > + core_dc->hwss.blank_stream(pipe_ctx); > + > if (pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) > deallocate_mst_payload(pipe_ctx); > > - core_dc->hwss.blank_stream(pipe_ctx); > - > core_dc->hwss.disable_stream(pipe_ctx, option); > > disable_link(pipe_ctx->stream->sink->link, pipe_ctx->stream->signal); > -- > 2.19.1 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c index 6ccd59b87403..b6cbc787efaf 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c @@ -2448,11 +2448,11 @@ void core_link_disable_stream(struct pipe_ctx *pipe_ctx, int option) { struct dc *core_dc = pipe_ctx->stream->ctx->dc; + core_dc->hwss.blank_stream(pipe_ctx); + if (pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) deallocate_mst_payload(pipe_ctx); - core_dc->hwss.blank_stream(pipe_ctx); - core_dc->hwss.disable_stream(pipe_ctx, option); disable_link(pipe_ctx->stream->sink->link, pipe_ctx->stream->signal);