[v5,02/19] drm/msm/dpu: squash power handle event types

Submitted by Jeykumar Sankaran on Sept. 6, 2018, 2:08 a.m.

Details

Message ID 1536199708-23664-3-git-send-email-jsanka@codeaurora.org
State New
Headers show
Series "clean up DPU for RM refactor" ( rev: 2 ) in DRI devel

Not browsing as part of any series.

Commit Message

Jeykumar Sankaran Sept. 6, 2018, 2:08 a.m.
DPU power handler maintained PRE/POST versions of power
ENABLE/DISABLE events to accommodate tasks which need be
handled before/after data bus voting. But since the bus voting
API's are deprecated and removed from the driver, squash
the events and their clients respective event handlers
to handle only ENABLE/DISABLE events.

changes in v5:
	- introduced in the series

Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c         | 28 +++++-------------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c          |  8 +++----
 drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c | 15 +++----------
 drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h | 14 ++++--------
 4 files changed, 16 insertions(+), 49 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index 1e0382f..6cc5ba7 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -1281,26 +1281,12 @@  static void dpu_crtc_handle_power_event(u32 event_type, void *arg)
 
 	trace_dpu_crtc_handle_power_event(DRMID(crtc), event_type);
 
-	switch (event_type) {
-	case DPU_POWER_EVENT_POST_ENABLE:
-		/* restore encoder; crtc will be programmed during commit */
-		drm_for_each_encoder(encoder, crtc->dev) {
-			if (encoder->crtc != crtc)
-				continue;
+	/* restore encoder; crtc will be programmed during commit */
+	drm_for_each_encoder(encoder, crtc->dev) {
+		if (encoder->crtc != crtc)
+			continue;
 
-			dpu_encoder_virt_restore(encoder);
-		}
-		break;
-	case DPU_POWER_EVENT_PRE_DISABLE:
-	case DPU_POWER_EVENT_POST_DISABLE:
-		/**
-		 * Nothing to do. All the planes on the CRTC will be
-		 * programmed for every frame
-		 */
-		break;
-	default:
-		DPU_DEBUG("event:%d not handled\n", event_type);
-		break;
+		dpu_encoder_virt_restore(encoder);
 	}
 
 	mutex_unlock(&dpu_crtc->crtc_lock);
@@ -1429,9 +1415,7 @@  static void dpu_crtc_enable(struct drm_crtc *crtc,
 	drm_crtc_vblank_on(crtc);
 
 	dpu_crtc->power_event = dpu_power_handle_register_event(
-		dpu_crtc->phandle,
-		DPU_POWER_EVENT_POST_ENABLE | DPU_POWER_EVENT_POST_DISABLE |
-		DPU_POWER_EVENT_PRE_DISABLE,
+		dpu_crtc->phandle, DPU_POWER_EVENT_ENABLE,
 		dpu_crtc_handle_power_event, crtc, dpu_crtc->name);
 
 }
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 5fd2f7f..0a683e6 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -967,8 +967,7 @@  static void dpu_kms_handle_power_event(u32 event_type, void *usr)
 	if (!dpu_kms)
 		return;
 
-	if (event_type == DPU_POWER_EVENT_POST_ENABLE)
-		dpu_vbif_init_memtypes(dpu_kms);
+	dpu_vbif_init_memtypes(dpu_kms);
 }
 
 static int dpu_kms_hw_init(struct msm_kms *kms)
@@ -1155,10 +1154,9 @@  static int dpu_kms_hw_init(struct msm_kms *kms)
 	/*
 	 * Handle (re)initializations during power enable
 	 */
-	dpu_kms_handle_power_event(DPU_POWER_EVENT_POST_ENABLE, dpu_kms);
+	dpu_kms_handle_power_event(DPU_POWER_EVENT_ENABLE, dpu_kms);
 	dpu_kms->power_event = dpu_power_handle_register_event(
-			&dpu_kms->phandle,
-			DPU_POWER_EVENT_POST_ENABLE,
+			&dpu_kms->phandle, DPU_POWER_EVENT_ENABLE,
 			dpu_kms_handle_power_event, dpu_kms, "kms");
 
 	pm_runtime_put_sync(&dpu_kms->pdev->dev);
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c
index a75eebc..fc14116 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c
@@ -145,6 +145,7 @@  int dpu_power_resource_enable(struct dpu_power_handle *phandle,
 	bool changed = false;
 	u32 max_usecase_ndx = VOTE_INDEX_DISABLE, prev_usecase_ndx;
 	struct dpu_power_client *client;
+	u32 event_type;
 
 	if (!phandle || !pclient) {
 		pr_err("invalid input argument\n");
@@ -181,19 +182,9 @@  int dpu_power_resource_enable(struct dpu_power_handle *phandle,
 	if (!changed)
 		goto end;
 
-	if (enable) {
-		dpu_power_event_trigger_locked(phandle,
-				DPU_POWER_EVENT_PRE_ENABLE);
-		dpu_power_event_trigger_locked(phandle,
-				DPU_POWER_EVENT_POST_ENABLE);
-
-	} else {
-		dpu_power_event_trigger_locked(phandle,
-				DPU_POWER_EVENT_PRE_DISABLE);
-		dpu_power_event_trigger_locked(phandle,
-				DPU_POWER_EVENT_POST_DISABLE);
-	}
+	event_type = enable ? DPU_POWER_EVENT_ENABLE : DPU_POWER_EVENT_DISABLE;
 
+	dpu_power_event_trigger_locked(phandle,	event_type);
 end:
 	mutex_unlock(&phandle->phandle_lock);
 	return 0;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h
index 344f744..7ed2f42 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h
@@ -23,17 +23,11 @@ 
 
 #include "dpu_io_util.h"
 
-/* event will be triggered before power handler disable */
-#define DPU_POWER_EVENT_PRE_DISABLE	0x1
+/* event will be triggered on power handler disable */
+#define DPU_POWER_EVENT_DISABLE	0x1
 
-/* event will be triggered after power handler disable */
-#define DPU_POWER_EVENT_POST_DISABLE	0x2
-
-/* event will be triggered before power handler enable */
-#define DPU_POWER_EVENT_PRE_ENABLE	0x4
-
-/* event will be triggered after power handler enable */
-#define DPU_POWER_EVENT_POST_ENABLE	0x8
+/* event will be triggered on power handler enable */
+#define DPU_POWER_EVENT_ENABLE	0x2
 
 /**
  * mdss_bus_vote_type: register bus vote type

Comments

On Wed, Sep 05, 2018 at 07:08:11PM -0700, Jeykumar Sankaran wrote:
> DPU power handler maintained PRE/POST versions of power
> ENABLE/DISABLE events to accommodate tasks which need be
> handled before/after data bus voting. But since the bus voting
> API's are deprecated and removed from the driver, squash
> the events and their clients respective event handlers
> to handle only ENABLE/DISABLE events.
> 
> changes in v5:
> 	- introduced in the series
> 
> Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c         | 28 +++++-------------------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c          |  8 +++----
>  drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c | 15 +++----------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h | 14 ++++--------
>  4 files changed, 16 insertions(+), 49 deletions(-)
> 

/snip

> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h
> index 344f744..7ed2f42 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h
> @@ -23,17 +23,11 @@
>  
>  #include "dpu_io_util.h"
>  
> -/* event will be triggered before power handler disable */
> -#define DPU_POWER_EVENT_PRE_DISABLE	0x1
> +/* event will be triggered on power handler disable */
> +#define DPU_POWER_EVENT_DISABLE	0x1
>  
> -/* event will be triggered after power handler disable */
> -#define DPU_POWER_EVENT_POST_DISABLE	0x2
> -
> -/* event will be triggered before power handler enable */
> -#define DPU_POWER_EVENT_PRE_ENABLE	0x4
> -
> -/* event will be triggered after power handler enable */
> -#define DPU_POWER_EVENT_POST_ENABLE	0x8
> +/* event will be triggered on power handler enable */
> +#define DPU_POWER_EVENT_ENABLE	0x2

These should be BIT(x), I'll fix it up when I apply.

Reviewed-by: Sean Paul <seanpaul@chromium.org>

Sean

>  
>  /**
>   * mdss_bus_vote_type: register bus vote type
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
> 
> _______________________________________________
> Freedreno mailing list
> Freedreno@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/freedreno