Forráskód Böngészése

disp: msm: sde: fix color processing property handling in crtc state

Drm frame-work crtc state doesn't need to duplicate color processing
properties since color processing frame-work caches these properties to
apply across suspend/resume, idle power collapse use-cases.
Change removes copying color processing properties during state duplication.

Change-Id: Ieafa7e5bacdf0ad814d579070c8aaa30c12e887f
Signed-off-by: Gopikrishnaiah Anandan <[email protected]>
Gopikrishnaiah Anandan 4 éve
szülő
commit
db9d3e8601
1 módosított fájl, 5 hozzáadás és 23 törlés
  1. 5 23
      msm/sde/sde_color_processing.c

+ 5 - 23
msm/sde/sde_color_processing.c

@@ -4843,7 +4843,6 @@ void sde_cp_duplicate_state_info(struct drm_crtc_state *drm_old_state,
 				struct drm_crtc_state *drm_state)
 {
 	struct sde_crtc_state *old_state, *curr_state;
-	u32 len, i;
 
 	if (!drm_old_state || !drm_state)
 		return;
@@ -4853,28 +4852,11 @@ void sde_cp_duplicate_state_info(struct drm_crtc_state *drm_old_state,
 	if (!old_state || !curr_state)
 		return;
 
-	SDE_EVT32(SDE_EVTLOG_FUNC_ENTRY);
-	for (i = 0; i < ARRAY_SIZE(old_state->cp_range_payload); i++) {
-		/* heap address copied from old state should be cleared, each state should have
-		 * its own heap allocation.
-		*/
-		curr_state->cp_range_payload[i].addr = 0;
-		curr_state->cp_range_payload[i].len = 0;
-		if (!old_state->cp_range_payload[i].addr || !old_state->cp_range_payload[i].len)
-			continue;
-
-		len = old_state->cp_range_payload[i].len;
-		curr_state->cp_range_payload[i].addr = (u64)kmalloc(len, GFP_KERNEL);
-		if (!curr_state->cp_range_payload[i].addr) {
-			SDE_EVT32(curr_state->cp_range_payload[i].addr);
-			continue;
-		}
-		memcpy((u8 *)curr_state->cp_range_payload[i].addr,
-			(u8 *)old_state->cp_range_payload[i].addr, len);
-		curr_state->cp_range_payload[i].len = len;
-		SDE_EVT32(curr_state->cp_range_payload[i].addr,
-			  curr_state->cp_range_payload[i].len);
-	}
+	SDE_EVT32(curr_state, old_state);
+	memset(curr_state->cp_dirty_list, 0, sizeof(curr_state->cp_dirty_list));
+	memset(curr_state->cp_prop_values, 0, sizeof(curr_state->cp_prop_values));
+	memset(curr_state->cp_range_payload, 0, sizeof(curr_state->cp_range_payload));
+	curr_state->cp_prop_cnt = 0;
 }
 
 void sde_cp_set_skip_blend_plane_info(struct drm_crtc *drm_crtc,