OSDN Git Service

drm/msm/dpu: squash power handle event types
authorJeykumar Sankaran <jsanka@codeaurora.org>
Thu, 6 Sep 2018 02:08:11 +0000 (19:08 -0700)
committerRob Clark <robdclark@gmail.com>
Thu, 4 Oct 2018 00:24:51 +0000 (20:24 -0400)
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>
[seanpaul converted #defines to BIT(x) in dpu_power_handle.h]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c
drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h

index 1e0382f..6cc5ba7 100644 (file)
@@ -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);
 
 }
index 5fd2f7f..0a683e6 100644 (file)
@@ -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);
index a75eebc..fc14116 100644 (file)
@@ -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;
index 344f744..a65b7a2 100644 (file)
 
 #include "dpu_io_util.h"
 
-/* event will be triggered before power handler disable */
-#define DPU_POWER_EVENT_PRE_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
+/* events will be triggered on power handler enable/disable */
+#define DPU_POWER_EVENT_DISABLE        BIT(0)
+#define DPU_POWER_EVENT_ENABLE BIT(1)
 
 /**
  * mdss_bus_vote_type: register bus vote type