Просмотр исходного кода

Merge "video: driver: add driver version"

qctecmdr 2 лет назад
Родитель
Сommit
1fdfa4758c

+ 5 - 0
driver/platform/kalama/src/msm_vidc_kalama.c

@@ -22,6 +22,8 @@
 #include "hfi_property.h"
 #include "hfi_command.h"
 
+/* version: major[24:31], minor[16:23], revision[0:15] */
+#define DRIVER_VERSION          0x04000000
 #define DEFAULT_VIDEO_CONCEAL_COLOR_BLACK 0x8020010
 #define MAX_BASE_LAYER_PRIORITY_ID 63
 #define MAX_OP_POINT            31
@@ -333,6 +335,9 @@ static struct msm_platform_inst_capability instance_cap_data_kalama[] = {
 	 *      hfi_id,
 	 *      flags}
 	 */
+	{DRV_VERSION, DEC|ENC, CODECS_ALL,
+		0, INT_MAX, 1, DRIVER_VERSION,
+		V4L2_CID_MPEG_VIDC_DRIVER_VERSION},
 
 	{FRAME_WIDTH, DEC, CODECS_ALL, 96, 8192, 1, 1920},
 

+ 5 - 0
driver/platform/pineapple/src/msm_vidc_pineapple.c

@@ -24,6 +24,8 @@
 #include "hfi_command.h"
 #include "venus_hfi.h"
 
+/* version: major[24:31], minor[16:23], revision[0:15] */
+#define DRIVER_VERSION          0x04000000
 #define DEFAULT_VIDEO_CONCEAL_COLOR_BLACK 0x8020010
 #define MAX_BASE_LAYER_PRIORITY_ID 63
 #define MAX_OP_POINT            31
@@ -393,6 +395,9 @@ static struct msm_platform_inst_capability instance_cap_data_pineapple[] = {
 	 *      hfi_id,
 	 *      flags}
 	 */
+	{DRV_VERSION, DEC|ENC, CODECS_ALL,
+		0, INT_MAX, 1, DRIVER_VERSION,
+		V4L2_CID_MPEG_VIDC_DRIVER_VERSION},
 
 	{FRAME_WIDTH, DEC, CODECS_ALL, 96, 8192, 1, 1920},
 

+ 1 - 0
driver/vidc/inc/msm_vidc_internal.h

@@ -235,6 +235,7 @@ enum msm_vidc_metadata_bits {
 	CAP(META_SALIENCY_INFO)                   \
 	CAP(META_TRANSCODING_STAT_INFO)           \
 	CAP(META_DOLBY_RPU)                       \
+	CAP(DRV_VERSION)                          \
 	CAP(MIN_FRAME_QP)                         \
 	CAP(MAX_FRAME_QP)                         \
 	CAP(I_FRAME_QP)                           \

+ 6 - 0
driver/vidc/src/msm_vidc_control.c

@@ -772,6 +772,12 @@ static int msm_vidc_update_static_property(struct msm_vidc_inst *inst,
 		return -EINVAL;
 	}
 
+	if (cap_id == DRV_VERSION) {
+		i_vpr_e(inst, "%s: driver version update not allowed\n",
+			__func__);
+		return -EINVAL;
+	}
+
 	/* update value to db */
 	msm_vidc_update_cap_value(inst, cap_id, ctrl->val, __func__);
 

+ 3 - 0
include/uapi/vidc/media/v4l2_vidc_extensions.h

@@ -281,6 +281,9 @@ enum v4l2_mpeg_video_av1_tier {
 #define V4L2_CID_MPEG_VIDC_CSC                                                \
 	(V4L2_CID_MPEG_VIDC_BASE + 0x47)
 
+#define V4L2_CID_MPEG_VIDC_DRIVER_VERSION                                     \
+	(V4L2_CID_MPEG_VIDC_BASE + 0x48)
+
 enum v4l2_mpeg_vidc_metapayload_header_flags {
 	METADATA_FLAGS_NONE             = 0,
 	METADATA_FLAGS_TOP_FIELD        = (1 << 0),