This adds device unplug support to drm_fb_helper, drm_fb_cma_helper (fbdev) and tinydrm. There are several changes in this version: I've used Daniel's idea of protecting drm_device.unplugged with srcu to provide race free drm_dev_unplug(). The fbdev helper unplug patch has become very small with Daniel's help. Ref is now taken and dropped in the existing helpers, so I could drop drm_fb_helper_simple_init(). I has annoyed me that fbdev is restored in drm_driver.last_close even if fbdev isn't used. I've added a patch to fix that. This means I can drop calling drm_atomic_helper_shutdown() in tinydrm_unregister(), since I now can easily disable the pipeline from userspace by just closing the users. Disabled pipeline means balanced regulator_enable/disable. The 'Embed drm_device in tinydrm_device' patch has gained drm_driver.release functions after a discussion with Laurent. My previous version relied on obscure freeing in tinydrm_release(). This means that I didn't retain the ack's. Laurent also caught an ugly devm_kmalloc() in tinydrm_display_pipe_init() that I've fixed. Noralf. Noralf Trønnes (11): drm: Use srcu to protect drm_device.unplugged drm/fb-helper: Support device unplug drm/fb-helper: Ensure driver module is pinned in fb_open() drm/fb-helper: Don't restore if fbdev is not in use drm/fb-cma-helper: Make struct drm_fbdev_cma public drm/fb-cma-helper: Support device unplug drm/tinydrm: Drop driver registered message drm/tinydrm: Embed drm_device in tinydrm_device drm/tinydrm: Support device unplug in core drm/tinydrm/mi0283qt: Let the display pipe handle power drm/tinydrm: Support device unplug in drivers drivers/gpu/drm/drm_drv.c | 54 +++++++++-- drivers/gpu/drm/drm_fb_cma_helper.c | 13 +-- drivers/gpu/drm/drm_fb_helper.c | 108 ++++++++++++++++++++-- drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 135 +++++++++++++++++++--------- drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c | 28 +++--- drivers/gpu/drm/tinydrm/mi0283qt.c | 81 +++++------------ drivers/gpu/drm/tinydrm/mipi-dbi.c | 58 +++++++++--- drivers/gpu/drm/tinydrm/repaper.c | 62 ++++++++----- drivers/gpu/drm/tinydrm/st7586.c | 54 ++++++----- include/drm/drm_device.h | 9 +- include/drm/drm_drv.h | 15 +++- include/drm/drm_fb_cma_helper.h | 11 ++- include/drm/drm_fb_helper.h | 28 ++++++ include/drm/tinydrm/mipi-dbi.h | 1 + include/drm/tinydrm/tinydrm.h | 10 ++- 15 files changed, 469 insertions(+), 198 deletions(-) -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel