Skip to contentSkip to conversation

drm/rockchip: vop: add rk3188 hs_start interrupt as dsp_hold equivalent

PATCH Applied Heiko Stuebner 2 participants 4 messages Sep 23, 2018 – Sep 27, 2018

Subsystems (4)
lore
Share & tools
lore

Heiko Stuebner

author maintainer
#0 lore raw

PATCH 1/1 drm/rockchip: vop: add rk3188 hs_start interrupt as dsp_hold equivalent

The hs_start interrupt on rk3188 fires at the start of a new frame, so serves essentially the same purpose as the dsp_hold_valid irq in checking when the last frame got delivered when going to standby. So define it to fix a hang on atomic_disable of the vop because the completion never really completed before.

Fixes 428e15cc41e3 ("drm/rockchip: vop: add rk3188 vop definitions")
---
 drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/gpu/drm/rockchip/rockchip_vop_reg.c +5 -1
index c482da41bb5d..226bb2a1720e 100644
@@ -465,7 +465,11 @@ static const struct vop_win_data rk3188_vop_win_data[] = {
 };
 
 static const int rk3188_vop_intrs[] = {
-	0,
+	/*
+	 * hs_start interrupt fires at frame-start, so serves
+	 * the same purpose as dsp_hold in the driver.
+	 */
+	DSP_HOLD_VALID_INTR,
 	FS_INTR,
 	LINE_FLAG_INTR,
 	BUS_ERROR_INTR,
Signature · 6 lines
2.18.0

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
maintainer Reviewed-by on v1 1/1
#1 lore raw

Hi heiko,
nice solution.

Quoted 20 lines · Heiko Stuebner

The hs_start interrupt on rk3188 fires at the start of a new frame, so serves essentially the same purpose as the dsp_hold_valid irq in checking when the last frame got delivered when going to standby. So define it to fix a hang on atomic_disable of the vop because the completion never really completed before.

Fixes 428e15cc41e3 ("drm/rockchip: vop: add rk3188 vop definitions")
---
  drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)
drivers/gpu/drm/rockchip/rockchip_vop_reg.c +0 -0
index c482da41bb5d..226bb2a1720e 100644
@@ -465,7 +465,11 @@ static const struct vop_win_data rk3188_vop_win_data[] = {
  };
 

drivers/gpu/drm/rockchip/rockchip_vop_reg.c static const struct vop_win_data rk3188_vop_win_data[] = { · line 475

Quoted 10 lines
drivers/gpu/drm/rockchip/rockchip_vop_reg.c +5 -1
  static const int rk3188_vop_intrs[] = {
-	0,
+	/*
+	 * hs_start interrupt fires at frame-start, so serves
+	 * the same purpose as dsp_hold in the driver.
+	 */
+	DSP_HOLD_VALID_INTR,
  	FS_INTR,
  	LINE_FLAG_INTR,
  	BUS_ERROR_INTR,

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

maintainer Reviewed-by on v1 1/1
#2 lore raw
In reply to Heiko Stuebner

Hi heiko,
nice solution.

Quoted 20 lines · Heiko Stuebner

The hs_start interrupt on rk3188 fires at the start of a new frame, so serves essentially the same purpose as the dsp_hold_valid irq in checking when the last frame got delivered when going to standby. So define it to fix a hang on atomic_disable of the vop because the completion never really completed before.

Fixes 428e15cc41e3 ("drm/rockchip: vop: add rk3188 vop definitions")
---
  drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)
drivers/gpu/drm/rockchip/rockchip_vop_reg.c +0 -0
index c482da41bb5d..226bb2a1720e 100644
@@ -465,7 +465,11 @@ static const struct vop_win_data rk3188_vop_win_data[] = {
  };
 

drivers/gpu/drm/rockchip/rockchip_vop_reg.c static const struct vop_win_data rk3188_vop_win_data[] = { · line 475

Quoted 10 lines
drivers/gpu/drm/rockchip/rockchip_vop_reg.c +5 -1
  static const int rk3188_vop_intrs[] = {
-	0,
+	/*
+	 * hs_start interrupt fires at frame-start, so serves
+	 * the same purpose as dsp_hold in the driver.
+	 */
+	DSP_HOLD_VALID_INTR,
  	FS_INTR,
  	LINE_FLAG_INTR,
  	BUS_ERROR_INTR,

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

author maintainer Applied
#3 lore raw
In reply to Heiko Stuebner

Am Sonntag, 23. September 2018, 14:37:30 CEST schrieb Heiko Stuebner:

Quoted 8 lines

The hs_start interrupt on rk3188 fires at the start of a new frame, so serves essentially the same purpose as the dsp_hold_valid irq in checking when the last frame got delivered when going to standby. So define it to fix a hang on atomic_disable of the vop because the completion never really completed before.

Fixes 428e15cc41e3 ("drm/rockchip: vop: add rk3188 vop definitions")

applied to drm-misc-next with Sandy's Review.

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel