1. 28 Feb, 2023 7 commits
  2. 23 Feb, 2023 30 commits
  3. 22 Feb, 2023 2 commits
  4. 21 Feb, 2023 1 commit
    • Thomas Zimmermann's avatar
      drm/fb-helper: Remove drm_fb_helper_unprepare() from drm_fb_helper_fini() · 3fb1f62f
      Thomas Zimmermann authored
      Move drm_fb_helper_unprepare() from drm_fb_helper_fini() into the
      calling fbdev implementation. Avoids a possible stale mutex with
      generic fbdev code.
      
      As indicated by its name, drm_fb_helper_prepare() prepares struct
      drm_fb_helper before setting up the fbdev support with a call to
      drm_fb_helper_init(). In legacy fbdev emulation, this happens next
      to each other. If successful, drm_fb_helper_fini() later tear down
      the fbdev device and also unprepare via drm_fb_helper_unprepare().
      
      Generic fbdev emulation prepares struct drm_fb_helper immediately
      after allocating the instance. It only calls drm_fb_helper_init()
      as part of processing a hotplug event. If the hotplug-handling fails,
      it runs drm_fb_helper_fini(). This unprepares the fb-helper instance
      and the next hotplug event runs on stale data.
      
      Solve this by moving drm_fb_helper_unprepare() from drm_fb_helper_fini()
      into the fbdev implementations. Call it right before freeing the
      fb-helper instance.
      
      Fixes: 643231b2 ("drm/fbdev-generic: Minimize hotplug error handling")
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <mripard@kernel.org>
      Cc: David Airlie <airlied@gmail.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: dri-devel@lists.freedesktop.org
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230216140620.17699-1-tzimmermann@suse.de
      3fb1f62f