Răsfoiți Sursa

video: driver: Use cabac for power calculation

When cabac_session property is subscribed, fw updates this
session info. This should be used to adjust power
caculations.

Change-Id: Ica4d2ee664f2a0a9ea41ec4d74bd2b21e9116931
Signed-off-by: Chinmay Sawarkar <[email protected]>
Signed-off-by: Mihir Ganu <[email protected]>
Mihir Ganu 4 ani în urmă
părinte
comite
bce0861f13
2 a modificat fișierele cu 11 adăugiri și 1 ștergeri
  1. 1 1
      driver/vidc/src/msm_vdec.c
  2. 10 0
      driver/vidc/src/venus_hfi_response.c

+ 1 - 1
driver/vidc/src/msm_vdec.c

@@ -57,7 +57,6 @@ static const u32 msm_vdec_subscribe_for_psc_vp9[] = {
 
 static const u32 msm_vdec_input_subscribe_for_properties[] = {
 	HFI_PROP_NO_OUTPUT,
-	HFI_PROP_CABAC_SESSION,
 };
 
 static const u32 msm_vdec_output_subscribe_for_properties[] = {
@@ -65,6 +64,7 @@ static const u32 msm_vdec_output_subscribe_for_properties[] = {
 	HFI_PROP_WORST_COMPLEXITY_FACTOR,
 	HFI_PROP_PICTURE_TYPE,
 	HFI_PROP_DPB_LIST,
+	HFI_PROP_CABAC_SESSION,
 };
 
 static const u32 msm_vdec_internal_buffer_type[] = {

+ 10 - 0
driver/vidc/src/venus_hfi_response.c

@@ -9,6 +9,7 @@
 #include "msm_vidc_debug.h"
 #include "msm_vidc_driver.h"
 #include "msm_vdec.h"
+#include "msm_vidc_control.h"
 
 #define in_range(range, val) (((range.begin) < (val)) && ((range.end) > (val)))
 
@@ -1253,6 +1254,15 @@ static int handle_session_property(struct msm_vidc_inst *inst,
 	case HFI_PROP_WORST_COMPLEXITY_FACTOR:
 		inst->power.fw_cf = payload_ptr[0];
 		break;
+	case HFI_PROP_CABAC_SESSION:
+		if (payload_ptr[0] == 1)
+			msm_vidc_update_cap_value(inst, ENTROPY_MODE,
+				V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
+				__func__);
+		else
+			msm_vidc_update_cap_value(inst, ENTROPY_MODE,
+				V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
+				__func__);
 	case HFI_PROP_DPB_LIST:
 		if (is_decode_session(inst) && port == OUTPUT_PORT &&
 			inst->capabilities->cap[DPB_LIST].value) {