浏览代码

disp: msm: sde: Use platform independent API for 64-bit div

64-bit division( operator "/") on 32-bit platforms is not supported.
Using platform independent API's here.

Change-Id: I1ec71ac120bb29b7f0bceed581b979606f81e2a5
Signed-off-by: Ravikanth Tuniki <[email protected]>
Ravikanth Tuniki 5 年之前
父节点
当前提交
b0df721f2d
共有 2 个文件被更改,包括 8 次插入4 次删除
  1. 3 2
      msm/sde/sde_encoder.c
  2. 5 2
      msm/sde/sde_encoder_phys_cmd.c

+ 3 - 2
msm/sde/sde_encoder.c

@@ -5716,8 +5716,9 @@ void sde_encoder_helper_get_jitter_bounds_ns(struct drm_encoder *drm_enc,
 	info = &sde_enc->mode_info;
 
 	frametime_ns = (1 * 1000000000) / info->frame_rate;
-	jitter_ns =  (info->jitter_numer * frametime_ns) /
-				(info->jitter_denom * 100);
+	jitter_ns =  info->jitter_numer * frametime_ns;
+	do_div(jitter_ns, info->jitter_denom * 100);
+
 	*l_bound = frametime_ns - jitter_ns;
 	*u_bound = frametime_ns + jitter_ns;
 }

+ 5 - 2
msm/sde/sde_encoder_phys_cmd.c

@@ -1398,9 +1398,12 @@ static bool _sde_encoder_phys_cmd_needs_vsync_change(
 		    "time_diff:%llu, prev:%llu, cur:%llu, jitter:%llu/%llu\n",
 			time_diff, prev->timestamp, cur->timestamp,
 			l_bound, u_bound);
+		time_diff = div_s64(time_diff, 1000);
+
 		SDE_EVT32(DRMID(phys_enc->parent),
-			(u32) (l_bound / 1000), (u32) (u_bound / 1000),
-			(u32) (time_diff / 1000), SDE_EVTLOG_ERROR);
+			(u32) (do_div(l_bound, 1000)),
+			(u32) (do_div(u_bound, 1000)),
+			(u32) (time_diff), SDE_EVTLOG_ERROR);
 	}
 
 	return ret;