瀏覽代碼

video: driver: prepare dependency list without parent

Prepare dependency list only using children.

Change-Id: Id79487825fed1f121821126589594b64820c85d3
Signed-off-by: Ankush Mitra <[email protected]>
Ankush Mitra 2 年之前
父節點
當前提交
2c39d5b91b

+ 12 - 2
driver/platform/anorak/src/msm_vidc_anorak.c

@@ -2306,12 +2306,18 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_anor
 		NULL,
 		NULL,
 		msm_vidc_set_pipe},
 		msm_vidc_set_pipe},
 
 
-	{THUMBNAIL_MODE, DEC, CODECS_ALL,
+	{THUMBNAIL_MODE, DEC, H264|HEVC|VP9|AV1,
 		{0},
 		{0},
 		{OUTPUT_ORDER},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL,
 		msm_vidc_set_u32},
 		msm_vidc_set_u32},
 
 
+	{THUMBNAIL_MODE, DEC, HEIC,
+		{0},
+		{0},
+		NULL,
+		msm_vidc_set_u32},
+
 	{RAP_FRAME, DEC, CODECS_ALL,
 	{RAP_FRAME, DEC, CODECS_ALL,
 		{0},
 		{0},
 		{0},
 		{0},
@@ -2360,10 +2366,14 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_anor
 		msm_vidc_adjust_all_intra,
 		msm_vidc_adjust_all_intra,
 		NULL},
 		NULL},
 
 
-	{META_EVA_STATS, ENC, CODECS_ALL,
+	{META_EVA_STATS, ENC, H264|HEVC,
 		{0},
 		{0},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 
 
+	{META_EVA_STATS, ENC, HEIC,
+		{0},
+		{0}},
+
 	{META_ROI_INFO, ENC, H264|HEVC,
 	{META_ROI_INFO, ENC, H264|HEVC,
 		{BITRATE_MODE, PIX_FMTS},
 		{BITRATE_MODE, PIX_FMTS},
 		{MIN_QUALITY, IR_PERIOD},
 		{MIN_QUALITY, IR_PERIOD},

+ 12 - 2
driver/platform/kalama/src/msm_vidc_kalama.c

@@ -2492,12 +2492,18 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_kala
 		NULL,
 		NULL,
 		msm_vidc_set_pipe},
 		msm_vidc_set_pipe},
 
 
-	{THUMBNAIL_MODE, DEC, CODECS_ALL,
+	{THUMBNAIL_MODE, DEC, H264|HEVC|VP9|AV1,
 		{0},
 		{0},
 		{OUTPUT_ORDER},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL,
 		msm_vidc_set_u32},
 		msm_vidc_set_u32},
 
 
+	{THUMBNAIL_MODE, DEC, HEIC,
+		{0},
+		{0},
+		NULL,
+		msm_vidc_set_u32},
+
 	{RAP_FRAME, DEC, CODECS_ALL,
 	{RAP_FRAME, DEC, CODECS_ALL,
 		{0},
 		{0},
 		{0},
 		{0},
@@ -2546,10 +2552,14 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_kala
 		msm_vidc_adjust_all_intra,
 		msm_vidc_adjust_all_intra,
 		NULL},
 		NULL},
 
 
-	{META_EVA_STATS, ENC, CODECS_ALL,
+	{META_EVA_STATS, ENC, H264|HEVC,
 		{0},
 		{0},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 
 
+	{META_EVA_STATS, ENC, HEIC,
+		{0},
+		{0}},
+
 	{META_ROI_INFO, ENC, H264|HEVC,
 	{META_ROI_INFO, ENC, H264|HEVC,
 		{BITRATE_MODE, PIX_FMTS},
 		{BITRATE_MODE, PIX_FMTS},
 		{MIN_QUALITY, IR_PERIOD},
 		{MIN_QUALITY, IR_PERIOD},

+ 12 - 2
driver/platform/pineapple/src/msm_vidc_pineapple.c

@@ -2512,12 +2512,18 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_pine
 		NULL,
 		NULL,
 		msm_vidc_set_pipe},
 		msm_vidc_set_pipe},
 
 
-	{THUMBNAIL_MODE, DEC, CODECS_ALL,
+	{THUMBNAIL_MODE, DEC, H264|HEVC|VP9|AV1,
 		{0},
 		{0},
 		{OUTPUT_ORDER},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL,
 		msm_vidc_set_u32},
 		msm_vidc_set_u32},
 
 
+	{THUMBNAIL_MODE, DEC, HEIC,
+		{0},
+		{0},
+		NULL,
+		msm_vidc_set_u32},
+
 	{RAP_FRAME, DEC, CODECS_ALL,
 	{RAP_FRAME, DEC, CODECS_ALL,
 		{0},
 		{0},
 		{0},
 		{0},
@@ -2566,10 +2572,14 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_pine
 		msm_vidc_adjust_all_intra,
 		msm_vidc_adjust_all_intra,
 		NULL},
 		NULL},
 
 
-	{META_EVA_STATS, ENC, CODECS_ALL,
+	{META_EVA_STATS, ENC, H264|HEVC,
 		{0},
 		{0},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 
 
+	{META_EVA_STATS, ENC, HEIC,
+		{0},
+		{0}},
+
 	{META_ROI_INFO, ENC, H264|HEVC,
 	{META_ROI_INFO, ENC, H264|HEVC,
 		{BITRATE_MODE, PIX_FMTS},
 		{BITRATE_MODE, PIX_FMTS},
 		{MIN_QUALITY, IR_PERIOD},
 		{MIN_QUALITY, IR_PERIOD},

+ 12 - 2
driver/platform/waipio/src/msm_vidc_waipio.c

@@ -2057,12 +2057,18 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_waip
 		NULL,
 		NULL,
 		msm_vidc_set_pipe},
 		msm_vidc_set_pipe},
 
 
-	{THUMBNAIL_MODE, DEC, CODECS_ALL,
+	{THUMBNAIL_MODE, DEC, H264|HEVC|VP9|AV1,
 		{0},
 		{0},
 		{OUTPUT_ORDER},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL,
 		msm_vidc_set_u32},
 		msm_vidc_set_u32},
 
 
+	{THUMBNAIL_MODE, DEC, HEIC,
+		{0},
+		{0},
+		NULL,
+		msm_vidc_set_u32},
+
 	{RAP_FRAME, DEC, CODECS_ALL,
 	{RAP_FRAME, DEC, CODECS_ALL,
 		{0},
 		{0},
 		{0},
 		{0},
@@ -2105,10 +2111,14 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_waip
 		msm_vidc_adjust_all_intra,
 		msm_vidc_adjust_all_intra,
 		NULL},
 		NULL},
 
 
-	{META_EVA_STATS, ENC, CODECS_ALL,
+	{META_EVA_STATS, ENC, H264|HEVC,
 		{0},
 		{0},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 
 
+	{META_EVA_STATS, ENC, HEIC,
+		{0},
+		{0}},
+
 	{META_ROI_INFO, ENC, H264|HEVC,
 	{META_ROI_INFO, ENC, H264|HEVC,
 		{BITRATE_MODE, PIX_FMTS},
 		{BITRATE_MODE, PIX_FMTS},
 		{MIN_QUALITY, IR_PERIOD},
 		{MIN_QUALITY, IR_PERIOD},

+ 38 - 38
driver/vidc/inc/msm_vidc_internal.h

@@ -189,15 +189,15 @@ enum msm_vidc_metadata_bits {
  * in the back.
  * in the back.
  *
  *
  * caps_list preparation may become CPU intensive task, so to save CPU cycles,
  * caps_list preparation may become CPU intensive task, so to save CPU cycles,
- * organize enum in proper order(root caps at the beginning and dependent caps
+ * organize enum in proper order(leaf caps at the beginning and dependent parent caps
  * at back), so that during caps_list preparation num CPU cycles spent will reduce.
  * at back), so that during caps_list preparation num CPU cycles spent will reduce.
  *
  *
  * Note: It will work, if enum kept at different places, but not efficient.
  * Note: It will work, if enum kept at different places, but not efficient.
  *
  *
  * - place all metadata cap(META_*) af the front.
  * - place all metadata cap(META_*) af the front.
- * - place all root(no parent) enums before PROFILE cap.
- * - place all intermittent(having both parent and child) enums before MIN_FRAME_QP cap.
- * - place all leaf(no child) enums before INST_CAP_MAX cap.
+ * - place all leaf(no child) enums before PROFILE cap.
+ * - place all intermittent(having both parent and child) enums before FRAME_WIDTH cap.
+ * - place all root(no parent) enums before INST_CAP_MAX cap.
  */
  */
 #define FOREACH_CAP(CAP) {                        \
 #define FOREACH_CAP(CAP) {                        \
 	CAP(INST_CAP_NONE)                        \
 	CAP(INST_CAP_NONE)                        \
@@ -227,6 +227,40 @@ enum msm_vidc_metadata_bits {
 	CAP(META_SALIENCY_INFO)                   \
 	CAP(META_SALIENCY_INFO)                   \
 	CAP(META_TRANSCODING_STAT_INFO)           \
 	CAP(META_TRANSCODING_STAT_INFO)           \
 	CAP(META_DOLBY_RPU)                       \
 	CAP(META_DOLBY_RPU)                       \
+	CAP(MIN_FRAME_QP)                         \
+	CAP(MAX_FRAME_QP)                         \
+	CAP(I_FRAME_QP)                           \
+	CAP(P_FRAME_QP)                           \
+	CAP(B_FRAME_QP)                           \
+	CAP(TIME_DELTA_BASED_RC)                  \
+	CAP(CONSTANT_QUALITY)                     \
+	CAP(VBV_DELAY)                            \
+	CAP(PEAK_BITRATE)                         \
+	CAP(ENTROPY_MODE)                         \
+	CAP(TRANSFORM_8X8)                        \
+	CAP(STAGE)                                \
+	CAP(LTR_COUNT)                            \
+	CAP(IR_PERIOD)                            \
+	CAP(BITRATE_BOOST)                        \
+	CAP(BLUR_RESOLUTION)                      \
+	CAP(OUTPUT_ORDER)                         \
+	CAP(INPUT_BUF_HOST_MAX_COUNT)             \
+	CAP(OUTPUT_BUF_HOST_MAX_COUNT)            \
+	CAP(DELIVERY_MODE)                        \
+	CAP(VUI_TIMING_INFO)                      \
+	CAP(SLICE_DECODE)                         \
+	CAP(PROFILE)                              \
+	CAP(ENH_LAYER_COUNT)                      \
+	CAP(BIT_RATE)                             \
+	CAP(LOWLATENCY_MODE)                      \
+	CAP(GOP_SIZE)                             \
+	CAP(B_FRAME)                              \
+	CAP(ALL_INTRA)                            \
+	CAP(MIN_QUALITY)                          \
+	CAP(CONTENT_ADAPTIVE_CODING)              \
+	CAP(BLUR_TYPES)                           \
+	CAP(REQUEST_PREPROCESS)                   \
+	CAP(SLICE_MODE)                           \
 	CAP(FRAME_WIDTH)                          \
 	CAP(FRAME_WIDTH)                          \
 	CAP(LOSSLESS_FRAME_WIDTH)                 \
 	CAP(LOSSLESS_FRAME_WIDTH)                 \
 	CAP(SECURE_FRAME_WIDTH)                   \
 	CAP(SECURE_FRAME_WIDTH)                   \
@@ -333,40 +367,6 @@ enum msm_vidc_metadata_bits {
 	CAP(LOWLATENCY_MAX_BITRATE)               \
 	CAP(LOWLATENCY_MAX_BITRATE)               \
 	CAP(LAST_FLAG_EVENT_ENABLE)               \
 	CAP(LAST_FLAG_EVENT_ENABLE)               \
 	CAP(NUM_COMV)                             \
 	CAP(NUM_COMV)                             \
-	CAP(PROFILE)                              \
-	CAP(ENH_LAYER_COUNT)                      \
-	CAP(BIT_RATE)                             \
-	CAP(LOWLATENCY_MODE)                      \
-	CAP(GOP_SIZE)                             \
-	CAP(B_FRAME)                              \
-	CAP(ALL_INTRA)                            \
-	CAP(MIN_QUALITY)                          \
-	CAP(CONTENT_ADAPTIVE_CODING)              \
-	CAP(BLUR_TYPES)                           \
-	CAP(REQUEST_PREPROCESS)                   \
-	CAP(SLICE_MODE)                           \
-	CAP(MIN_FRAME_QP)                         \
-	CAP(MAX_FRAME_QP)                         \
-	CAP(I_FRAME_QP)                           \
-	CAP(P_FRAME_QP)                           \
-	CAP(B_FRAME_QP)                           \
-	CAP(TIME_DELTA_BASED_RC)                  \
-	CAP(CONSTANT_QUALITY)                     \
-	CAP(VBV_DELAY)                            \
-	CAP(PEAK_BITRATE)                         \
-	CAP(ENTROPY_MODE)                         \
-	CAP(TRANSFORM_8X8)                        \
-	CAP(STAGE)                                \
-	CAP(LTR_COUNT)                            \
-	CAP(IR_PERIOD)                            \
-	CAP(BITRATE_BOOST)                        \
-	CAP(BLUR_RESOLUTION)                      \
-	CAP(OUTPUT_ORDER)                         \
-	CAP(INPUT_BUF_HOST_MAX_COUNT)             \
-	CAP(OUTPUT_BUF_HOST_MAX_COUNT)            \
-	CAP(DELIVERY_MODE)                        \
-	CAP(VUI_TIMING_INFO)                      \
-	CAP(SLICE_DECODE)                         \
 	CAP(INST_CAP_MAX)                         \
 	CAP(INST_CAP_MAX)                         \
 }
 }
 
 

+ 34 - 114
driver/vidc/src/msm_vidc_control.c

@@ -137,19 +137,14 @@ static const char * const * msm_vidc_get_qmenu_type(
 	}
 	}
 }
 }
 
 
-static inline bool has_parents(struct msm_vidc_inst_cap *cap)
-{
-	return !!cap->parents[0];
-}
-
-static inline bool has_childrens(struct msm_vidc_inst_cap *cap)
+static inline bool has_children(struct msm_vidc_inst_cap *cap)
 {
 {
 	return !!cap->children[0];
 	return !!cap->children[0];
 }
 }
 
 
-static inline bool is_root(struct msm_vidc_inst_cap *cap)
+static inline bool is_leaf(struct msm_vidc_inst_cap *cap)
 {
 {
-	return !has_parents(cap);
+	return !has_children(cap);
 }
 }
 
 
 bool is_valid_cap_id(enum msm_vidc_inst_capability_type cap_id)
 bool is_valid_cap_id(enum msm_vidc_inst_capability_type cap_id)
@@ -162,16 +157,16 @@ static inline bool is_valid_cap(struct msm_vidc_inst_cap *cap)
 	return is_valid_cap_id(cap->cap_id);
 	return is_valid_cap_id(cap->cap_id);
 }
 }
 
 
-static inline bool is_all_parents_visited(
+static inline bool is_all_childrens_visited(
 	struct msm_vidc_inst_cap *cap, bool lookup[INST_CAP_MAX]) {
 	struct msm_vidc_inst_cap *cap, bool lookup[INST_CAP_MAX]) {
 	bool found = true;
 	bool found = true;
 	int i;
 	int i;
 
 
-	for (i = 0; i < MAX_CAP_PARENTS; i++) {
-		if (cap->parents[i] == INST_CAP_NONE)
+	for (i = 0; i < MAX_CAP_CHILDREN; i++) {
+		if (cap->children[i] == INST_CAP_NONE)
 			continue;
 			continue;
 
 
-		if (!lookup[cap->parents[i]]) {
+		if (!lookup[cap->children[i]]) {
 			found = false;
 			found = false;
 			break;
 			break;
 		}
 		}
@@ -191,65 +186,28 @@ static int add_node_list(struct list_head *list, enum msm_vidc_inst_capability_t
 
 
 	INIT_LIST_HEAD(&entry->list);
 	INIT_LIST_HEAD(&entry->list);
 	entry->cap_id = cap_id;
 	entry->cap_id = cap_id;
-	list_add_tail(&entry->list, list);
+	list_add(&entry->list, list);
 
 
 	return rc;
 	return rc;
 }
 }
 
 
 static int add_node(
 static int add_node(
-	struct list_head *list, struct msm_vidc_inst_cap *rcap, bool lookup[INST_CAP_MAX])
+	struct list_head *list, struct msm_vidc_inst_cap *lcap, bool lookup[INST_CAP_MAX])
 {
 {
 	int rc = 0;
 	int rc = 0;
 
 
-	if (lookup[rcap->cap_id])
+	if (lookup[lcap->cap_id])
 		return 0;
 		return 0;
 
 
-	rc = add_node_list(list, rcap->cap_id);
+	rc = add_node_list(list, lcap->cap_id);
 	if (rc)
 	if (rc)
 		return rc;
 		return rc;
 
 
-	lookup[rcap->cap_id] = true;
+	lookup[lcap->cap_id] = true;
 	return 0;
 	return 0;
 }
 }
 
 
-static int swap_node(struct msm_vidc_inst_cap *rcap,
-	struct list_head *src_list, bool src_lookup[INST_CAP_MAX],
-	struct list_head *dest_list, bool dest_lookup[INST_CAP_MAX])
-{
-	struct msm_vidc_inst_cap_entry *entry, *temp;
-	bool found = false;
-
-	/* cap must be available in src and not present in dest */
-	if (!src_lookup[rcap->cap_id] || dest_lookup[rcap->cap_id]) {
-		d_vpr_e("%s: not found in src or already found in dest for cap %s\n",
-			__func__, cap_name(rcap->cap_id));
-		return -EINVAL;
-	}
-
-	/* check if entry present in src_list */
-	list_for_each_entry_safe(entry, temp, src_list, list) {
-		if (entry->cap_id == rcap->cap_id) {
-			found = true;
-			break;
-		}
-	}
-
-	if (!found) {
-		d_vpr_e("%s: cap %s not found in src list\n",
-			__func__, cap_name(rcap->cap_id));
-		return -EINVAL;
-	}
 
 
-	/* remove from src_list */
-	list_del_init(&entry->list);
-	src_lookup[rcap->cap_id] = false;
-
-	/* add it to dest_list */
-	list_add_tail(&entry->list, dest_list);
-	dest_lookup[rcap->cap_id] = true;
-
-	return 0;
-}
 
 
 static int msm_vidc_add_capid_to_fw_list(struct msm_vidc_inst *inst,
 static int msm_vidc_add_capid_to_fw_list(struct msm_vidc_inst *inst,
 	enum msm_vidc_inst_capability_type cap_id)
 	enum msm_vidc_inst_capability_type cap_id)
@@ -953,11 +911,11 @@ unlock:
 
 
 int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst)
 int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst)
 {
 {
-	struct list_head root_list, opt_list;
+	struct list_head leaf_list, opt_list;
 	struct msm_vidc_inst_capability *capability;
 	struct msm_vidc_inst_capability *capability;
-	struct msm_vidc_inst_cap *cap, *rcap;
+	struct msm_vidc_inst_cap *cap, *lcap;
 	struct msm_vidc_inst_cap_entry *entry = NULL, *temp = NULL;
 	struct msm_vidc_inst_cap_entry *entry = NULL, *temp = NULL;
-	bool root_visited[INST_CAP_MAX];
+	bool leaf_visited[INST_CAP_MAX];
 	bool opt_visited[INST_CAP_MAX];
 	bool opt_visited[INST_CAP_MAX];
 	int tmp_count_total, tmp_count, num_nodes = 0;
 	int tmp_count_total, tmp_count, num_nodes = 0;
 	int i, rc = 0;
 	int i, rc = 0;
@@ -974,75 +932,37 @@ int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst)
 	}
 	}
 
 
 	/* init local list and lookup table entries */
 	/* init local list and lookup table entries */
-	INIT_LIST_HEAD(&root_list);
+	INIT_LIST_HEAD(&leaf_list);
 	INIT_LIST_HEAD(&opt_list);
 	INIT_LIST_HEAD(&opt_list);
-	memset(&root_visited, 0, sizeof(root_visited));
+	memset(&leaf_visited, 0, sizeof(leaf_visited));
 	memset(&opt_visited, 0, sizeof(opt_visited));
 	memset(&opt_visited, 0, sizeof(opt_visited));
 
 
-	/* populate root nodes first */
+	/* populate leaf nodes first */
 	for (i = 1; i < INST_CAP_MAX; i++) {
 	for (i = 1; i < INST_CAP_MAX; i++) {
-		rcap = &capability->cap[i];
-		if (!is_valid_cap(rcap))
+		lcap = &capability->cap[i];
+		if (!is_valid_cap(lcap))
 			continue;
 			continue;
 
 
 		/* sanitize cap value */
 		/* sanitize cap value */
-		if (i != rcap->cap_id) {
+		if (i != lcap->cap_id) {
 			i_vpr_e(inst, "%s: cap id mismatch. expected %s, actual %s\n",
 			i_vpr_e(inst, "%s: cap id mismatch. expected %s, actual %s\n",
-				__func__, cap_name(i), cap_name(rcap->cap_id));
+				__func__, cap_name(i), cap_name(lcap->cap_id));
 			rc = -EINVAL;
 			rc = -EINVAL;
 			goto error;
 			goto error;
 		}
 		}
 
 
-		/* add all root nodes */
-		if (is_root(rcap)) {
-			rc = add_node(&root_list, rcap, root_visited);
+		/* add all leaf nodes */
+		if (is_leaf(lcap)) {
+			rc = add_node(&leaf_list, lcap, leaf_visited);
 			if (rc)
 			if (rc)
 				goto error;
 				goto error;
 		} else {
 		} else {
-			rc = add_node(&opt_list, rcap, opt_visited);
+			rc = add_node(&opt_list, lcap, opt_visited);
 			if (rc)
 			if (rc)
 				goto error;
 				goto error;
 		}
 		}
 	}
 	}
 
 
-	/* add all dependent parents */
-	list_for_each_entry_safe(entry, temp, &root_list, list) {
-		rcap = &capability->cap[entry->cap_id];
-		/* skip leaf node */
-		if (!has_childrens(rcap))
-			continue;
-
-		for (i = 0; i < MAX_CAP_CHILDREN; i++) {
-			if (!rcap->children[i])
-				break;
-
-			if (!is_valid_cap_id(rcap->children[i]))
-				continue;
-
-			cap = &capability->cap[rcap->children[i]];
-			if (!is_valid_cap(cap))
-				continue;
-
-			/**
-			 * if child node is already part of root list
-			 * then no need to add it again.
-			 */
-			if (root_visited[cap->cap_id])
-				continue;
-
-			/**
-			 * if child node's all parents are already present in root list
-			 * then add it to root list else remains in optional list.
-			 */
-			if (is_all_parents_visited(cap, root_visited)) {
-				rc = swap_node(cap,
-						&opt_list, opt_visited, &root_list, root_visited);
-				if (rc)
-					goto error;
-			}
-		}
-	}
-
 	/* find total optional list entries */
 	/* find total optional list entries */
 	list_for_each_entry(entry, &opt_list, list)
 	list_for_each_entry(entry, &opt_list, list)
 		num_nodes++;
 		num_nodes++;
@@ -1060,12 +980,12 @@ int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst)
 		cap = &capability->cap[entry->cap_id];
 		cap = &capability->cap[entry->cap_id];
 
 
 		/**
 		/**
-		 * if all parents are visited then add this entry to
-		 * root list else add it to the end of optional list.
+		 * if all child are visited then add this entry to
+		 * leaf list else add it to the end of optional list.
 		 */
 		 */
-		if (is_all_parents_visited(cap, root_visited)) {
-			list_add_tail(&entry->list, &root_list);
-			root_visited[entry->cap_id] = true;
+		if (is_all_childrens_visited(cap, leaf_visited)) {
+			list_add(&entry->list, &leaf_list);
+			leaf_visited[entry->cap_id] = true;
 			tmp_count_total--;
 			tmp_count_total--;
 		} else {
 		} else {
 			list_add_tail(&entry->list, &opt_list);
 			list_add_tail(&entry->list, &opt_list);
@@ -1093,7 +1013,7 @@ int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst)
 	}
 	}
 
 
 	/* move elements to &inst->caps_list from local */
 	/* move elements to &inst->caps_list from local */
-	list_replace_init(&root_list, &inst->caps_list);
+	list_replace_init(&leaf_list, &inst->caps_list);
 
 
 	return 0;
 	return 0;
 error:
 error:
@@ -1102,8 +1022,8 @@ error:
 		list_del_init(&entry->list);
 		list_del_init(&entry->list);
 		msm_vidc_vmem_free((void **)&entry);
 		msm_vidc_vmem_free((void **)&entry);
 	}
 	}
-	list_for_each_entry_safe(entry, temp, &root_list, list) {
-		i_vpr_e(inst, "%s: root_list: %s\n", __func__, cap_name(entry->cap_id));
+	list_for_each_entry_safe(entry, temp, &leaf_list, list) {
+		i_vpr_e(inst, "%s: leaf_list: %s\n", __func__, cap_name(entry->cap_id));
 		list_del_init(&entry->list);
 		list_del_init(&entry->list);
 		msm_vidc_vmem_free((void **)&entry);
 		msm_vidc_vmem_free((void **)&entry);
 	}
 	}