Ver Fonte

video: driver: re-organize enums and add comments

Re-organized enums(msm_vidc_inst_capability_type) in below
order.

[1] Root(no parents) enums,
[2] Intermittent(having both parents & children) enums,
[3] Leaf(no children) enums.

Also added proper comments in header file.

Change-Id: I2bda51b54b6fa6e190098f16dd60090004cfbecf
Signed-off-by: Govindaraj Rajagopal <[email protected]>
Govindaraj Rajagopal há 3 anos atrás
pai
commit
93b88b9d69

+ 2 - 2
driver/vidc/inc/msm_vidc_inst.h

@@ -142,8 +142,8 @@ struct msm_vidc_inst {
 	struct list_head                   enc_input_crs;
 	struct list_head                   dmabuf_tracker; /* list of struct msm_memory_dmabuf */
 	struct list_head                   caps_list;
-	struct list_head                   children_list;
-	struct list_head                   firmware_list;
+	struct list_head                   children_list; /* struct msm_vidc_inst_cap_entry */
+	struct list_head                   firmware_list; /* struct msm_vidc_inst_cap_entry */
 	struct list_head                   pending_pkts; /* list of struct hfi_pending_packet */
 	struct list_head                   fence_list; /* list of struct msm_vidc_fence */
 	bool                               once_per_session_set;

+ 29 - 11
driver/vidc/inc/msm_vidc_internal.h

@@ -340,6 +340,18 @@ enum msm_vidc_core_capability_type {
 	CORE_CAP_MAX,
 };
 
+/**
+ * msm_vidc_prepare_dependency_list() api will prepare caps_list by looping over
+ * enums(msm_vidc_inst_capability_type) from 0 to INST_CAP_MAX and arranges the
+ * node in such a way that parents willbe at the front and dependent children
+ * in the back.
+ *
+ * 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
+ * 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.
+ */
 enum msm_vidc_inst_capability_type {
 	INST_CAP_NONE = 0,
 	FRAME_WIDTH,
@@ -462,34 +474,40 @@ enum msm_vidc_inst_capability_type {
 	META_DEC_QP_METADATA,
 	COMPLEXITY,
 	META_MAX_NUM_REORDER_FRAMES,
+	/* place all root(no parent) enums before this line */
+
 	PROFILE,
+	META_ROI_INFO,
+	ENH_LAYER_COUNT,
+	BIT_RATE,
+	LOWLATENCY_MODE,
+	GOP_SIZE,
+	B_FRAME,
+	ALL_INTRA,
+	MIN_QUALITY,
+	CONTENT_ADAPTIVE_CODING,
+	BLUR_TYPES,
+	/* place all intermittent(having both parent and child) enums before this line */
+
 	MIN_FRAME_QP,
 	MAX_FRAME_QP,
 	I_FRAME_QP,
 	P_FRAME_QP,
 	B_FRAME_QP,
-	META_ROI_INFO,
 	TIME_DELTA_BASED_RC,
 	CONSTANT_QUALITY,
-	ENH_LAYER_COUNT,
-	BIT_RATE,
 	VBV_DELAY,
 	PEAK_BITRATE,
-	LOWLATENCY_MODE,
 	ENTROPY_MODE,
 	TRANSFORM_8X8,
-	GOP_SIZE,
-	B_FRAME,
-	BLUR_RESOLUTION,
 	STAGE,
-	ALL_INTRA,
-	MIN_QUALITY,
 	LTR_COUNT,
 	IR_RANDOM,
 	BITRATE_BOOST,
 	SLICE_MODE,
-	CONTENT_ADAPTIVE_CODING,
-	BLUR_TYPES,
+	BLUR_RESOLUTION,
+	/* place all leaf(no child) enums before this line */
+
 	INST_CAP_MAX,
 };
 

+ 11 - 11
driver/vidc/src/msm_vidc_driver.c

@@ -178,33 +178,33 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
 	{COMPLEXITY,                     "COMPLEXITY"                 },
 	{META_MAX_NUM_REORDER_FRAMES,    "META_MAX_NUM_REORDER_FRAMES"},
 	{PROFILE,                        "PROFILE"                    },
+	{META_ROI_INFO,                  "META_ROI_INFO"              },
+	{ENH_LAYER_COUNT,                "ENH_LAYER_COUNT"            },
+	{BIT_RATE,                       "BIT_RATE"                   },
+	{LOWLATENCY_MODE,                "LOWLATENCY_MODE"            },
+	{GOP_SIZE,                       "GOP_SIZE"                   },
+	{B_FRAME,                        "B_FRAME"                    },
+	{ALL_INTRA,                      "ALL_INTRA"                  },
+	{MIN_QUALITY,                    "MIN_QUALITY"                },
+	{CONTENT_ADAPTIVE_CODING,        "CONTENT_ADAPTIVE_CODING"    },
+	{BLUR_TYPES,                     "BLUR_TYPES"                 },
 	{MIN_FRAME_QP,                   "MIN_FRAME_QP"               },
 	{MAX_FRAME_QP,                   "MAX_FRAME_QP"               },
 	{I_FRAME_QP,                     "I_FRAME_QP"                 },
 	{P_FRAME_QP,                     "P_FRAME_QP"                 },
 	{B_FRAME_QP,                     "B_FRAME_QP"                 },
-	{META_ROI_INFO,                  "META_ROI_INFO"              },
 	{TIME_DELTA_BASED_RC,            "TIME_DELTA_BASED_RC"        },
 	{CONSTANT_QUALITY,               "CONSTANT_QUALITY"           },
-	{ENH_LAYER_COUNT,                "ENH_LAYER_COUNT"            },
-	{BIT_RATE,                       "BIT_RATE"                   },
 	{VBV_DELAY,                      "VBV_DELAY"                  },
 	{PEAK_BITRATE,                   "PEAK_BITRATE"               },
-	{LOWLATENCY_MODE,                "LOWLATENCY_MODE"            },
 	{ENTROPY_MODE,                   "ENTROPY_MODE"               },
 	{TRANSFORM_8X8,                  "TRANSFORM_8X8"              },
-	{GOP_SIZE,                       "GOP_SIZE"                   },
-	{B_FRAME,                        "B_FRAME"                    },
-	{BLUR_RESOLUTION,                "BLUR_RESOLUTION"            },
 	{STAGE,                          "STAGE"                      },
-	{ALL_INTRA,                      "ALL_INTRA"                  },
-	{MIN_QUALITY,                    "MIN_QUALITY"                },
 	{LTR_COUNT,                      "LTR_COUNT"                  },
 	{IR_RANDOM,                      "IR_RANDOM"                  },
 	{BITRATE_BOOST,                  "BITRATE_BOOST"              },
 	{SLICE_MODE,                     "SLICE_MODE"                 },
-	{CONTENT_ADAPTIVE_CODING,        "CONTENT_ADAPTIVE_CODING"    },
-	{BLUR_TYPES,                     "BLUR_TYPES"                 },
+	{BLUR_RESOLUTION,                "BLUR_RESOLUTION"            },
 	{INST_CAP_MAX,                   "INST_CAP_MAX"               },
 };