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

Merge "video: driver: Introduce SUPPORTS_REQUESTS cap"

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

+ 1 - 0
driver/platform/anorak/src/msm_vidc_anorak.c

@@ -84,6 +84,7 @@ static struct msm_platform_core_capability core_data_anorak[] = {
 	{MMRM, 0},
 	{DEVICE_CAPS, V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_META_CAPTURE |
 		V4L2_CAP_STREAMING},
+	{SUPPORTS_REQUESTS, 1},
 };
 
 static struct msm_platform_inst_capability instance_cap_data_anorak[] = {

+ 1 - 0
driver/platform/kalama/src/kalama.c

@@ -220,6 +220,7 @@ static struct msm_platform_core_capability core_data_kalama[] = {
 	{NON_FATAL_FAULTS, 1},
 	{ENC_AUTO_FRAMERATE, 1},
 	{DEVICE_CAPS, V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_STREAMING},
+	{SUPPORTS_REQUESTS, 0},
 };
 
 static struct msm_platform_inst_capability instance_cap_data_kalama[] = {

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

@@ -318,6 +318,7 @@ static struct msm_platform_core_capability core_data_kalama[] = {
 	{MMRM, 1},
 	{DEVICE_CAPS, V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_META_CAPTURE |
 		V4L2_CAP_STREAMING},
+	{SUPPORTS_REQUESTS, 1},
 };
 
 static struct msm_platform_inst_capability instance_cap_data_kalama[] = {

+ 1 - 0
driver/platform/waipio/src/msm_vidc_waipio.c

@@ -81,6 +81,7 @@ static struct msm_platform_core_capability core_data_waipio[] = {
 	{MMRM, 1},
 	{DEVICE_CAPS, V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_META_CAPTURE |
 		V4L2_CAP_STREAMING},
+	{SUPPORTS_REQUESTS, 1},
 };
 
 static struct msm_platform_inst_capability instance_cap_data_waipio[] = {

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

@@ -372,6 +372,7 @@ enum msm_vidc_core_capability_type {
 	ENC_AUTO_FRAMERATE,
 	MMRM,
 	DEVICE_CAPS,
+	SUPPORTS_REQUESTS,
 	CORE_CAP_MAX,
 };
 

+ 5 - 1
driver/vidc/src/msm_vidc_driver.c

@@ -4262,8 +4262,12 @@ static int m2m_queue_init(void *priv, struct vb2_queue *src_vq,
 		return -EINVAL;
 	}
 	core = inst->core;
+	if (!core->capabilities) {
+		d_vpr_e("%s: invalid core capabilities\n", __func__);
+		return -EINVAL;
+	}
 
-	src_vq->supports_requests = 1;
+	src_vq->supports_requests = core->capabilities[SUPPORTS_REQUESTS].value;
 	src_vq->lock = &inst->request_lock;
 	src_vq->dev = &core->pdev->dev;
 	rc = vb2q_init(inst, src_vq, INPUT_MPLANE);