drm: rockchip: add shutdown function to poweroff VOP and HDMI TX
diff mbox series

Message ID 20190308183718.21409-1-jbx6244@gmail.com
State New
Headers show
Series
  • drm: rockchip: add shutdown function to poweroff VOP and HDMI TX
Related show

Commit Message

Johan Jonker March 8, 2019, 6:37 p.m. UTC
When a MK808 TV-stick with RK3066 processor
is given a poweroff command, the monitor doesn't turn blank,
but freezes. The VOP and HDMI share the same power domain,
so that means that both there clocks were never turned off.
Fix the disable of the VOP and HDMI TX by adding an extra
shutdown function that will unbind both drivers.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Johan Jonker March 11, 2019, 6:14 p.m. UTC | #1
Hi,

Just found out that this was patched and reverted before.(lol)
The revert was 3 months ago for RK3399 boards, but other processors
like RK3066 are left without shutdown now.

What's the status for a fix?
Keep using the old patch for now?


drm/rockchip: shutdown drm subsystem on shutdown
https://patchwork.kernel.org/patch/10556151/

[for-4.20] Revert "drm/rockchip: Allow driver to be shutdown on reboot/kexec"
https://patchwork.kernel.org/patch/10714725/

2019-03-08 19:37 GMT+01:00, Johan Jonker <jbx6244@gmail.com>:
> When a MK808 TV-stick with RK3066 processor
> is given a poweroff command, the monitor doesn't turn blank,
> but freezes. The VOP and HDMI share the same power domain,
> so that means that both there clocks were never turned off.
> Fix the disable of the VOP and HDMI TX by adding an extra
> shutdown function that will unbind both drivers.
Heiko Stuebner April 2, 2019, 11:47 a.m. UTC | #2
Hi Johan,

Am Montag, 11. März 2019, 19:14:27 CEST schrieb Johan Jonker:
> Hi,
> 
> Just found out that this was patched and reverted before.(lol)
> The revert was 3 months ago for RK3399 boards, but other processors
> like RK3066 are left without shutdown now.
> 
> What's the status for a fix?
> Keep using the old patch for now?

I've just resurrected the patch from Vicente, calling the atomic_shutdown
helper. Sadly I forgot to Cc you there, but you can for example find it at

https://patchwork.freedesktop.org/patch/295946/


Heiko

Patch
diff mbox series

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 8d7a634c1..66a8e99a3 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -448,6 +448,13 @@  static int rockchip_drm_platform_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static void rockchip_drm_platform_shutdown(struct platform_device *pdev)
+{
+	component_master_del(&pdev->dev, &rockchip_drm_ops);
+
+	rockchip_drm_match_remove(&pdev->dev);
+}
+
 static const struct of_device_id rockchip_drm_dt_ids[] = {
 	{ .compatible = "rockchip,display-subsystem", },
 	{ /* sentinel */ },
@@ -457,6 +464,7 @@  MODULE_DEVICE_TABLE(of, rockchip_drm_dt_ids);
 static struct platform_driver rockchip_drm_platform_driver = {
 	.probe = rockchip_drm_platform_probe,
 	.remove = rockchip_drm_platform_remove,
+	.shutdown = rockchip_drm_platform_shutdown,
 	.driver = {
 		.name = "rockchip-drm",
 		.of_match_table = rockchip_drm_dt_ids,