Commit a41a8ccc authored by Jeykumar Sankaran's avatar Jeykumar Sankaran Committed by Rob Clark

drm/msm/dpu: squash power handle event types

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: default avatarJeykumar Sankaran <jsanka@codeaurora.org>
[seanpaul converted #defines to BIT(x) in dpu_power_handle.h]
Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
parent ad8e5c2d
...@@ -1281,26 +1281,12 @@ static void dpu_crtc_handle_power_event(u32 event_type, void *arg) ...@@ -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); trace_dpu_crtc_handle_power_event(DRMID(crtc), event_type);
switch (event_type) { /* restore encoder; crtc will be programmed during commit */
case DPU_POWER_EVENT_POST_ENABLE: drm_for_each_encoder(encoder, crtc->dev) {
/* restore encoder; crtc will be programmed during commit */ if (encoder->crtc != crtc)
drm_for_each_encoder(encoder, crtc->dev) { continue;
if (encoder->crtc != crtc)
continue;
dpu_encoder_virt_restore(encoder); 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;
} }
mutex_unlock(&dpu_crtc->crtc_lock); mutex_unlock(&dpu_crtc->crtc_lock);
...@@ -1429,9 +1415,7 @@ static void dpu_crtc_enable(struct drm_crtc *crtc, ...@@ -1429,9 +1415,7 @@ static void dpu_crtc_enable(struct drm_crtc *crtc,
drm_crtc_vblank_on(crtc); drm_crtc_vblank_on(crtc);
dpu_crtc->power_event = dpu_power_handle_register_event( dpu_crtc->power_event = dpu_power_handle_register_event(
dpu_crtc->phandle, dpu_crtc->phandle, DPU_POWER_EVENT_ENABLE,
DPU_POWER_EVENT_POST_ENABLE | DPU_POWER_EVENT_POST_DISABLE |
DPU_POWER_EVENT_PRE_DISABLE,
dpu_crtc_handle_power_event, crtc, dpu_crtc->name); dpu_crtc_handle_power_event, crtc, dpu_crtc->name);
} }
......
...@@ -967,8 +967,7 @@ static void dpu_kms_handle_power_event(u32 event_type, void *usr) ...@@ -967,8 +967,7 @@ static void dpu_kms_handle_power_event(u32 event_type, void *usr)
if (!dpu_kms) if (!dpu_kms)
return; 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) static int dpu_kms_hw_init(struct msm_kms *kms)
...@@ -1155,10 +1154,9 @@ 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 * 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->power_event = dpu_power_handle_register_event(
&dpu_kms->phandle, &dpu_kms->phandle, DPU_POWER_EVENT_ENABLE,
DPU_POWER_EVENT_POST_ENABLE,
dpu_kms_handle_power_event, dpu_kms, "kms"); dpu_kms_handle_power_event, dpu_kms, "kms");
pm_runtime_put_sync(&dpu_kms->pdev->dev); pm_runtime_put_sync(&dpu_kms->pdev->dev);
......
...@@ -145,6 +145,7 @@ int dpu_power_resource_enable(struct dpu_power_handle *phandle, ...@@ -145,6 +145,7 @@ int dpu_power_resource_enable(struct dpu_power_handle *phandle,
bool changed = false; bool changed = false;
u32 max_usecase_ndx = VOTE_INDEX_DISABLE, prev_usecase_ndx; u32 max_usecase_ndx = VOTE_INDEX_DISABLE, prev_usecase_ndx;
struct dpu_power_client *client; struct dpu_power_client *client;
u32 event_type;
if (!phandle || !pclient) { if (!phandle || !pclient) {
pr_err("invalid input argument\n"); pr_err("invalid input argument\n");
...@@ -181,19 +182,9 @@ int dpu_power_resource_enable(struct dpu_power_handle *phandle, ...@@ -181,19 +182,9 @@ int dpu_power_resource_enable(struct dpu_power_handle *phandle,
if (!changed) if (!changed)
goto end; goto end;
if (enable) { event_type = enable ? DPU_POWER_EVENT_ENABLE : DPU_POWER_EVENT_DISABLE;
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);
}
dpu_power_event_trigger_locked(phandle, event_type);
end: end:
mutex_unlock(&phandle->phandle_lock); mutex_unlock(&phandle->phandle_lock);
return 0; return 0;
......
...@@ -23,17 +23,9 @@ ...@@ -23,17 +23,9 @@
#include "dpu_io_util.h" #include "dpu_io_util.h"
/* event will be triggered before power handler disable */ /* events will be triggered on power handler enable/disable */
#define DPU_POWER_EVENT_PRE_DISABLE 0x1 #define DPU_POWER_EVENT_DISABLE BIT(0)
#define DPU_POWER_EVENT_ENABLE BIT(1)
/* 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
/** /**
* mdss_bus_vote_type: register bus vote type * mdss_bus_vote_type: register bus vote type
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment