Den 28.01.2019 07.48, skrev Gerd Hoffmann:
Fix by using drm_fb_helper_lastclose() which checks if fbdev is in use.
static int drm_fbdev_client_restore(struct drm_client_dev *client) {
- struct drm_fb_helper *fb_helper = drm_fb_helper_from_client(client);
- drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper);
- drm_fb_helper_lastclose(client->dev);
return 0; }
Hmm, at least the drm_fb_helper_lastclose() version I'm looking at (branch drm-misc-next) just calls drm_fb_helper_restore_fbdev_mode_unlocked without any check ...
drm_fb_helper_lastclose() uses drm_device->fb_helper which is NULL if fbdev is not in use, from docs: /** * @fb_helper: * * Pointer to the fbdev emulation structure. * Set by drm_fb_helper_init() and cleared by drm_fb_helper_fini().
And drm_fb_helper_restore_fbdev_mode_unlocked() has a NULL check.
Noralf.