Skip to contentSkip to conversation

drm/sun4i: Implement drm_driver lastclose to restore fbdev console

PATCH Applied Jonathan Liu 4 participants 5 messages Jul 10, 2017 – Jul 17, 2017

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 drm/sun4i: Implement drm_driver lastclose to restore fbdev console

The drm_driver lastclose callback is called when the last userspace DRM client has closed. Call drm_fbdev_cma_restore_mode to restore the fbdev console otherwise the fbdev console will stop working.

Fixes 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")

---
Changes for v3:
- Add 'Fixes:' tag
- Add CC to stable
- Add 'Reviewed-by: Chen-Yu Tsai <[email protected]>'

Changes for v2:
- Rename sun4i_drm_lastclose to sun4i_drv_lastclose

 drivers/gpu/drm/sun4i/sun4i_drv.c | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/gpu/drm/sun4i/sun4i_drv.c +8 -0
index abc7d8fe06b4..a45a627283a1 100644
@@ -25,12 +25,20 @@
 #include "sun4i_framebuffer.h"
 #include "sun4i_tcon.h"
 
+static void sun4i_drv_lastclose(struct drm_device *dev)
+{
+	struct sun4i_drv *drv = dev->dev_private;
+
+	drm_fbdev_cma_restore_mode(drv->fbdev);
+}
+
 DEFINE_DRM_GEM_CMA_FOPS(sun4i_drv_fops);
 
 static struct drm_driver sun4i_drv_driver = {
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_ATOMIC,
 
 	/* Generic Operations */
+	.lastclose		= sun4i_drv_lastclose,
 	.fops			= &sun4i_drv_fops,
 	.name			= "sun4i-drm",
 	.desc			= "Allwinner sun4i Display Engine",
Signature · 1 line
2.13.2
Tested-by on v3 1/1
#1 lore raw

Hey Jonathan,

since I reported this to you on IRC, it's only fair that you can have my:

For those interessted, I've tested it on an Olimex OLinuXino Lime2 with their 4.3 LCD.

Olliver

Quoted 46 lines · Jonathan Liu

The drm_driver lastclose callback is called when the last userspace DRM client has closed. Call drm_fbdev_cma_restore_mode to restore the fbdev console otherwise the fbdev console will stop working.

Fixes 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")

---
Changes for v3:
- Add 'Fixes:' tag
- Add CC to stable
- Add 'Reviewed-by: Chen-Yu Tsai <[email protected]>'

Changes for v2:
- Rename sun4i_drm_lastclose to sun4i_drv_lastclose

 drivers/gpu/drm/sun4i/sun4i_drv.c | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/gpu/drm/sun4i/sun4i_drv.c +8 -0
index abc7d8fe06b4..a45a627283a1 100644
@@ -25,12 +25,20 @@
 #include "sun4i_framebuffer.h"
 #include "sun4i_tcon.h"
 
+static void sun4i_drv_lastclose(struct drm_device *dev)
+{
+	struct sun4i_drv *drv = dev->dev_private;
+
+	drm_fbdev_cma_restore_mode(drv->fbdev);
+}
+
 DEFINE_DRM_GEM_CMA_FOPS(sun4i_drv_fops);
 
 static struct drm_driver sun4i_drv_driver = {
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_ATOMIC,
 
 	/* Generic Operations */
+	.lastclose		= sun4i_drv_lastclose,
 	.fops			= &sun4i_drv_fops,
 	.name			= "sun4i-drm",
 	.desc			= "Allwinner sun4i Display Engine",
#2 lore raw
In reply to Jonathan Liu
Quoted 8 lines · Jonathan Liu

The drm_driver lastclose callback is called when the last userspace DRM client has closed. Call drm_fbdev_cma_restore_mode to restore the fbdev console otherwise the fbdev console will stop working.

Fixes 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")

Queued for 4.14, thanks!
Maxime

Signature · 3 lines
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#3 lore raw
Quoted 11 lines · Maxime Ripard
Quoted 8 lines · Jonathan Liu

The drm_driver lastclose callback is called when the last userspace DRM client has closed. Call drm_fbdev_cma_restore_mode to restore the fbdev console otherwise the fbdev console will stop working.

Fixes 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")

Queued for 4.14, thanks!

May we have this sooner? Like 4.13? :)

ChenYu

#4 lore raw
Quoted 7 lines · Chen-Yu Tsai
Quoted 5 lines · Maxime Ripard
Quoted 4 lines · Jonathan Liu

The drm_driver lastclose callback is called when the last userspace DRM client has closed. Call drm_fbdev_cma_restore_mode to restore the fbdev console otherwise the fbdev console will stop working.

Quoted 8 lines
Quoted 6 lines
Quoted 4 lines
Fixes 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")

Queued for 4.14, thanks!

May we have this sooner? Like 4.13? :)

Yes, of course :)

I queued it for 4.13.

Thanks!
Maxime

Signature · 3 lines
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com