On Fr, 2023-09-01 at 16:41 -0700, Douglas Anderson wrote: > Based on grepping through the source code this driver appears to be > missing a call to drm_atomic_helper_shutdown() at system shutdown time > and at driver unbind time. Among other things, this means that if a > panel is in use that it won't be cleanly powered off at system > shutdown time. > > The fact that we should call drm_atomic_helper_shutdown() in the case > of OS shutdown/restart and at driver remove (or unbind) time comes > straight out of the kernel doc "driver instance overview" in > drm_drv.c. > > A few notes about this fix: > - When adding drm_atomic_helper_shutdown() to the unbind path, I added > it after drm_kms_helper_poll_fini() since that's when other drivers > seemed to have it. > - Technically with a previous patch, ("drm/atomic-helper: > drm_atomic_helper_shutdown(NULL) should be a noop"), we don't > actually need to check to see if our "drm" pointer is NULL before > calling drm_atomic_helper_shutdown(). We'll leave the "if" test in, > though, so that this patch can land without any dependencies. It > could potentially be removed later. > - This patch also makes sure to set the drvdata to NULL in the case of > bind errors to make sure that shutdown can't access freed data. > > Suggested-by: Maxime Ripard <mripard@xxxxxxxxxx> > Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx> Thank you, Tested-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> regards Philipp