On 3/8/2021 8:58 AM, [email protected] wrote:
From: Sidraya Jayagond <[email protected]>

ti-5.4.y kernel modifications done to support TI
img codec drivers.

Added recipe files for ti-img-encode-decode driver.

NACK for any proper review from SDK or upstream point of view.

* Assuming this is RFC.(Add a cover letter)
* Please split the patch logically.
** I want to see kernel, Gstreamer , codec and viddec test recipe seperately


From: Sidraya Jayagond <[email protected]>
Signed-off-by: Sidraya Jayagond <[email protected]>
---
  ...dec-driver-porting-to-ti-linux-5.4.y.patch | 255 ++++++++++++++++++
  ...anging-on-Gstreamer-and-standalone-t.patch |  32 +++
  .../ti-img-encode-decode_1.0.0.bb             |  33 +++
  .../viddec-test-app_1.0.0.bb                  |  18 ++
  .../videnc-test-app_1.0.0.bb                  |  18 ++
  .../ti-img-encode-decode/vxd-dec-fw_git.bb    |  34 +++
  ..._config_fragments-Add-multimedia.cfg.patch |  29 ++
  ...d-10bit-definitions-for-NV12-and-NV1.patch |  46 ++++
  ...atform-Kconfig-Add-Video-decoder-kco.patch |  47 ++++
  ...ti-k3-j721e-main.dtsi-Add-D5520-node.patch |  37 +++
  ...-binding-for-img-d5520-vxd-for-J721E.patch |  47 ++++
  ...atorm-Kconfig-Add-Video-encoder-kcon.patch |  43 +++
  ...i-k3-j721e-main.dtsi-Add-VXE384-node.patch |  35 +++
  ...Add-binding-for-img-vxe384-for-J721E.patch |  44 +++
  ...nts-multimedia.cfg-Add-video-encode-.patch |  29 ++
  recipes-kernel/linux/linux-ti-staging_5.4.bb  |  11 +-
  16 files changed, 757 insertions(+), 1 deletion(-)
  create mode 100644 
recipes-bsp/ti-img-encode-decode/files/0001-TI-IMG-video-codec-driver-porting-to-ti-linux-5.4.y.patch
  create mode 100644 
recipes-bsp/ti-img-encode-decode/files/0002-Decoder-driver-hanging-on-Gstreamer-and-standalone-t.patch
  create mode 100644 
recipes-bsp/ti-img-encode-decode/ti-img-encode-decode_1.0.0.bb
  create mode 100644 recipes-bsp/ti-img-encode-decode/viddec-test-app_1.0.0.bb
  create mode 100644 recipes-bsp/ti-img-encode-decode/videnc-test-app_1.0.0.bb
  create mode 100644 recipes-bsp/ti-img-encode-decode/vxd-dec-fw_git.bb
  create mode 100644 
recipes-kernel/linux/files/0001-ti_config_fragments-Add-multimedia.cfg.patch
  create mode 100644 
recipes-kernel/linux/files/0002-v4l-videodev2-Add-10bit-definitions-for-NV12-and-NV1.patch
  create mode 100644 
recipes-kernel/linux/files/0003-drivers-media-platform-Kconfig-Add-Video-decoder-kco.patch
  create mode 100644 
recipes-kernel/linux/files/0004-arm64-dts-ti-k3-j721e-main.dtsi-Add-D5520-node.patch
  create mode 100644 
recipes-kernel/linux/files/0005-dt-bindings-Add-binding-for-img-d5520-vxd-for-J721E.patch
  create mode 100644 
recipes-kernel/linux/files/0006-drivers-media-platorm-Kconfig-Add-Video-encoder-kcon.patch
  create mode 100644 
recipes-kernel/linux/files/0007-arm64-dts-ti-k3-j721e-main.dtsi-Add-VXE384-node.patch
  create mode 100644 
recipes-kernel/linux/files/0008-dt-bindings-Add-binding-for-img-vxe384-for-J721E.patch
  create mode 100644 
recipes-kernel/linux/files/0009-ti_config_fragments-multimedia.cfg-Add-video-encode-.patch

diff --git 
a/recipes-bsp/ti-img-encode-decode/files/0001-TI-IMG-video-codec-driver-porting-to-ti-linux-5.4.y.patch
 
b/recipes-bsp/ti-img-encode-decode/files/0001-TI-IMG-video-codec-driver-porting-to-ti-linux-5.4.y.patch
new file mode 100644
index 00000000..2c33a505
--- /dev/null
+++ 
b/recipes-bsp/ti-img-encode-decode/files/0001-TI-IMG-video-codec-driver-porting-to-ti-linux-5.4.y.patch
@@ -0,0 +1,255 @@
+From b46cc6adb06b367da81276a3992c3aea20414629 Mon Sep 17 00:00:00 2001
+From: Sidraya Jayagond <[email protected]>
+Date: Mon, 8 Mar 2021 19:32:58 +0530
+Subject: [PATCH 1/2] TI IMG video codec driver porting to ti-linux-5.4.y
+
+Porting V4L2 codec driver APIs to latest Kernel 5.4 and
+Porting OSAL module for making required compatible changes
+to ti-linux-5.4.y.
+
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ driver/common/addr_alloc.h |  2 --
+ driver/common/hash.c       |  2 --
+ driver/common/resource.c   |  2 +-
+ driver/common/resource.h   |  2 +-
+ driver/decoder/core.c      |  6 +++---
+ driver/decoder/decoder.c   | 10 +++++-----
+ linux/decoder/vxd_v4l2.c   |  5 +++--
+ linux/encoder/Makefile     |  2 +-
+ linux/encoder/vxe_v4l2.c   |  5 +++--
+ osal/inc/osa_time.h        |  2 +-
+ osal/src/linux/osa_time.c  |  4 ++--
+ 11 files changed, 20 insertions(+), 22 deletions(-)
+
+diff --git a/driver/common/addr_alloc.h b/driver/common/addr_alloc.h
+index ae19706..67cf33d 100644
+--- a/driver/common/addr_alloc.h
++++ b/driver/common/addr_alloc.h
+@@ -20,8 +20,6 @@
+ #include "osal/inc/osa_mutex.h"
+ #include "ra.h"
+
+-#define FALSE 0
+-#define TRUE 1
+
+ /* Defines whether sequential or random allocation is used */
+ enum {
+diff --git a/driver/common/hash.c b/driver/common/hash.c
+index e3c2048..24116d7 100644
+--- a/driver/common/hash.c
++++ b/driver/common/hash.c
+@@ -22,8 +22,6 @@
+ #include "img_errors.h"
+ #include "pool.h"
+
+-#define FALSE 0
+-#define TRUE 1
+
+ /* pool of struct hash objects */
+ static struct pool *global_hashpool = NULL;
+diff --git a/driver/common/resource.c b/driver/common/resource.c
+index 26bd373..3d2a5f3 100644
+--- a/driver/common/resource.c
++++ b/driver/common/resource.c
+@@ -77,7 +77,7 @@ int32 resource_item_isavailable(uint32 *refcnt)
+ /*
+  * adds an item (and associated id) to a resource list
+  */
+-int32 resource_list_add(struct lst_t *list, void *item, uint32 id, uint32 
*refcnt)
++int32 resource_list_add_img(struct lst_t *list, void *item, uint32 id, uint32 
*refcnt)
+ {
+       struct resource_list_elem *listelem = NULL;
+       int32 bfound = 0;
+diff --git a/driver/common/resource.h b/driver/common/resource.h
+index 540aeb4..278e5c2 100644
+--- a/driver/common/resource.h
++++ b/driver/common/resource.h
+@@ -28,7 +28,7 @@ int32 resource_item_release(uint32 *refcnt);
+
+ int32 resource_item_isavailable(uint32 *refcnt);
+
+-int32 resource_list_add(struct lst_t *list, void *item, uint32 id, uint32 
*refcnt);
++int32 resource_list_add_img(struct lst_t *list, void *item, uint32 id, uint32 
*refcnt);
+
+ void *resource_list_pickhead(struct lst_t *list);
+
+diff --git a/driver/decoder/core.c b/driver/decoder/core.c
+index 29d1383..d7fc0a3 100644
+--- a/driver/decoder/core.c
++++ b/driver/decoder/core.c
+@@ -2201,7 +2201,7 @@ static int32 core_stream_resource_create(struct 
core_stream_context *core_str_ct
+               pictres_int->seq_resint = seqres_int;
+ #endif
+               /* Add the internal picture resources to the list. */
+-              ret = resource_list_add(&core_str_ctx->aux_pict_res_list,
++              ret = resource_list_add_img(&core_str_ctx->aux_pict_res_list,
+                                       pictres_int, 0, &pictres_int->ref_cnt);
+
+               pictres_int = lst_next(pictres_int);
+@@ -2630,7 +2630,7 @@ int32 core_stream_submit_unit(uint32 res_str_id, struct 
vdecdd_str_unit *str_uni
+       dd_str_context = core_str_ctx->dd_str_ctx;
+       VDEC_ASSERT(dd_str_context);
+
+-      ret = resource_list_add(&core_str_ctx->str_unit_list, str_unit, 0,
++      ret = resource_list_add_img(&core_str_ctx->str_unit_list, str_unit, 0,
+                               NULL);
+       VDEC_ASSERT(ret == IMG_SUCCESS);
+
+@@ -2771,7 +2771,7 @@ int32 core_stream_fill_pictbuf(uint32 buf_map_id)
+       VDEC_ASSERT(ddbuf_map_info->buf_type == VDEC_BUFTYPE_PICTURE);
+
+       /* Add the image buffer to the list */
+-      ret = resource_list_add(&core_str_ctx->pict_buf_list, ddbuf_map_info,
++      ret = resource_list_add_img(&core_str_ctx->pict_buf_list, 
ddbuf_map_info,
+                               0, &ddbuf_map_info->ddbuf_info.ref_count);
+
+       return ret;
+diff --git a/driver/decoder/decoder.c b/driver/decoder/decoder.c
+index 7a391a4..f22f66b 100644
+--- a/driver/decoder/decoder.c
++++ b/driver/decoder/decoder.c
+@@ -1125,7 +1125,7 @@ decoder_stream_decode_resource_create(struct dec_str_ctx 
*dec_str_context)
+
+       pict_dec_res->ref_cnt = 1;
+
+-      ret = resource_list_add(&dec_str_context->dec_res_lst, pict_dec_res, 0,
++      ret = resource_list_add_img(&dec_str_context->dec_res_lst, 
pict_dec_res, 0,
+                               &pict_dec_res->ref_cnt);
+
+       if (ret != IMG_SUCCESS) {
+@@ -2377,7 +2377,7 @@ decoder_picture_decode(struct dec_str_ctx *dec_str_ctx,
+
+               if 
(resource_item_isavailable(&dec_str_ctx->prev_fe_pict_dec_res->ref_cnt)) {
+                       resource_list_remove(&dec_str_ctx->dec_res_lst, 
dec_str_ctx->prev_fe_pict_dec_res);
+-                      resource_list_add(&dec_str_ctx->dec_res_lst,
++                      resource_list_add_img(&dec_str_ctx->dec_res_lst,
+                                         dec_str_ctx->prev_fe_pict_dec_res, 0,
+                                         
&dec_str_ctx->prev_fe_pict_dec_res->ref_cnt);
+               }
+@@ -2553,7 +2553,7 @@ decoder_stream_reference_resource_create(struct 
dec_str_ctx *dec_str_ctx)
+
+       pict_ref_res->ref_cnt = 1;
+
+-      ret = resource_list_add(&dec_str_ctx->ref_res_lst, pict_ref_res, 0,
++      ret = resource_list_add_img(&dec_str_ctx->ref_res_lst, pict_ref_res, 0,
+                               &pict_ref_res->ref_cnt);
+       if (ret != IMG_SUCCESS) {
+               OSA_PR_ERR("[USERSID=0x%08X] Failed to add resource",
+@@ -4491,7 +4491,7 @@ int32 decoder_service_firmware_response(void 
*dec_str_ctx_arg, uint32 *msg,
+                       if 
(resource_item_isavailable(&dec_str_ctx->last_be_pict_dec_res->ref_cnt)) {
+                               resource_list_remove(&dec_str_ctx->dec_res_lst,
+                                                    
dec_str_ctx->last_be_pict_dec_res);
+-                              resource_list_add(&dec_str_ctx->dec_res_lst,
++                              resource_list_add_img(&dec_str_ctx->dec_res_lst,
+                                                 
dec_str_ctx->last_be_pict_dec_res,
+                                                 0,
+                                                 
&dec_str_ctx->last_be_pict_dec_res->ref_cnt);
+@@ -4512,7 +4512,7 @@ int32 decoder_service_firmware_response(void 
*dec_str_ctx_arg, uint32 *msg,
+               if 
(resource_item_isavailable(&dec_pict->cur_pict_dec_res->ref_cnt)) {
+                       resource_list_remove(&dec_str_ctx->dec_res_lst,
+                                            dec_pict->cur_pict_dec_res);
+-                      resource_list_add(&dec_str_ctx->dec_res_lst,
++                      resource_list_add_img(&dec_str_ctx->dec_res_lst,
+                                         dec_pict->cur_pict_dec_res,
+                                         0,
+                                         &dec_pict->cur_pict_dec_res->ref_cnt);
+diff --git a/linux/decoder/vxd_v4l2.c b/linux/decoder/vxd_v4l2.c
+index 5f0075a..c2ff49b 100644
+--- a/linux/decoder/vxd_v4l2.c
++++ b/linux/decoder/vxd_v4l2.c
+@@ -1632,12 +1632,12 @@ static int32 vxd_g_selection(struct file *file, void 
*fh,
+ static const struct v4l2_ioctl_ops vxd_dec_ioctl_ops = {
+       .vidioc_querycap = vxd_dec_querycap,
+
+-      .vidioc_enum_fmt_vid_cap_mplane = vxd_dec_enum_fmt,
++      .vidioc_enum_fmt_vid_cap = vxd_dec_enum_fmt,
+       .vidioc_g_fmt_vid_cap_mplane = vxd_dec_g_fmt,
+       .vidioc_try_fmt_vid_cap_mplane = vxd_dec_try_fmt,
+       .vidioc_s_fmt_vid_cap_mplane = vxd_dec_s_fmt,
+
+-      .vidioc_enum_fmt_vid_out_mplane = vxd_dec_enum_fmt,
++      .vidioc_enum_fmt_vid_out = vxd_dec_enum_fmt,
+       .vidioc_g_fmt_vid_out_mplane = vxd_dec_g_fmt,
+       .vidioc_try_fmt_vid_out_mplane = vxd_dec_try_fmt,
+       .vidioc_s_fmt_vid_out_mplane = vxd_dec_s_fmt,
+@@ -2034,6 +2034,7 @@ static int32 vxd_dec_probe(struct platform_device *pdev)
+       vxd->vfd_dec = vfd;
+       *vfd = vxd_dec_videodev;
+       vfd->v4l2_dev = &vxd->v4l2_dev;
++      vfd->device_caps = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_STREAMING;
+       vfd->lock = vxd->mutex;
+
+       video_set_drvdata(vfd, vxd);
+diff --git a/linux/encoder/Makefile b/linux/encoder/Makefile
+index ddb030d..2a33aca 100644
+--- a/linux/encoder/Makefile
++++ b/linux/encoder/Makefile
+@@ -75,7 +75,7 @@ vxe-enc-objs += $(OSAL_PATH)/src/linux/osa_reg_io.o
+ vxe-enc-objs += $(OSAL_PATH)/src/linux/osa_string.o
+ vxe-enc-objs += $(OSAL_PATH)/src/linux/osa_event.o
+
+-obj-m += vxe-enc.o
++obj-$(CONFIG_VIDEO_IMG_VXE_ENC) += vxe-enc.o
+
+ ccflags-y   += -DOSAL_LINUX
+
+diff --git a/linux/encoder/vxe_v4l2.c b/linux/encoder/vxe_v4l2.c
+index c79587c..e3d452a 100644
+--- a/linux/encoder/vxe_v4l2.c
++++ b/linux/encoder/vxe_v4l2.c
+@@ -1602,12 +1602,12 @@ static int32 vxe_s_parm(struct file *file, void *priv,
+ static const struct v4l2_ioctl_ops vxe_enc_ioctl_ops = {
+       .vidioc_querycap = vxe_querycap,
+
+-      .vidioc_enum_fmt_vid_cap_mplane = vxe_enum_fmt,
++      .vidioc_enum_fmt_vid_cap = vxe_enum_fmt,
+       .vidioc_g_fmt_vid_cap_mplane = vxe_g_fmt,
+       .vidioc_try_fmt_vid_cap_mplane = vxe_try_fmt,
+       .vidioc_s_fmt_vid_cap_mplane = vxe_s_fmt,
+
+-      .vidioc_enum_fmt_vid_out_mplane = vxe_enum_fmt,
++      .vidioc_enum_fmt_vid_out = vxe_enum_fmt,
+       .vidioc_g_fmt_vid_out_mplane = vxe_g_fmt,
+       .vidioc_try_fmt_vid_out_mplane = vxe_try_fmt,
+       .vidioc_s_fmt_vid_out_mplane = vxe_s_fmt,
+@@ -1840,6 +1840,7 @@ static int32 vxe_enc_probe(struct platform_device *pdev)
+       vxe->vfd = vfd;
+       *vfd = vxe_enc_videodev;
+       vfd->v4l2_dev = &vxe->ti_vxe_dev;
++      vfd->device_caps = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_STREAMING;
+       vfd->lock = vxe->mutex;
+
+       video_set_drvdata(vfd, vxe);
+diff --git a/osal/inc/osa_time.h b/osal/inc/osa_time.h
+index d74fddf..2aee7f6 100644
+--- a/osal/inc/osa_time.h
++++ b/osal/inc/osa_time.h
+@@ -28,7 +28,7 @@
+ #include <linux/time.h>
+
+ struct osa_timespec {
+-      struct timespec ts;
++      struct timespec64 ts;
+ };
+ #elif defined(OSAL_SYSBIOS)
+ struct osa_timespec {
+diff --git a/osal/src/linux/osa_time.c b/osal/src/linux/osa_time.c
+index 14958da..82e05b2 100644
+--- a/osal/src/linux/osa_time.c
++++ b/osal/src/linux/osa_time.c
+@@ -58,9 +58,9 @@ void osa_getnstimeofday(struct osa_timespec *ts_args)
+
+ void osa_timespec_sub(struct osa_timespec *end_time, struct osa_timespec 
*start_time, struct osa_timespec *dif_time)
+ {
+-    struct timespec *ts = (struct timespec *)(&dif_time->ts);
++      struct timespec64 *ts = (struct timespec64 *)(&dif_time->ts);
+
+-    *ts = timespec_sub(*((struct timespec *)(&end_time->ts)), *((struct timespec 
*)(&start_time->ts)));
++      *ts = timespec64_sub(*((struct timespec64 *)(&end_time->ts)), *((struct 
timespec64 *)(&start_time->ts)));
+ }
+
+ /**
+--
+2.17.1
+
diff --git 
a/recipes-bsp/ti-img-encode-decode/files/0002-Decoder-driver-hanging-on-Gstreamer-and-standalone-t.patch
 
b/recipes-bsp/ti-img-encode-decode/files/0002-Decoder-driver-hanging-on-Gstreamer-and-standalone-t.patch
new file mode 100644
index 00000000..3fda6817
--- /dev/null
+++ 
b/recipes-bsp/ti-img-encode-decode/files/0002-Decoder-driver-hanging-on-Gstreamer-and-standalone-t.patch
@@ -0,0 +1,32 @@
+From 363695b326ce804836d89cf877289da95fb2281f Mon Sep 17 00:00:00 2001
+From: Sidraya Jayagond <[email protected]>
+Date: Mon, 8 Mar 2021 19:35:48 +0530
+Subject: [PATCH 2/2] Decoder driver hanging on Gstreamer and standalone test
+ app
+
+Commit hash "70f0e5762296848cde817752a648df3579ffbfb6" changes revoked to
+avoid gstreamer launch command and standalone test app
+hanging for indefinite time
+
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ driver/decoder/vxd_core.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/driver/decoder/vxd_core.c b/driver/decoder/vxd_core.c
+index 791d470..1f984de 100644
+--- a/driver/decoder/vxd_core.c
++++ b/driver/decoder/vxd_core.c
+@@ -1477,9 +1477,7 @@ int32 vxd_send_msg(struct vxd_dec_ctx *ctx, struct 
vxd_fw_msg *msg)
+               "%s: added item %p to pend, ptd: 0x%x, str: %u flags: 0x%x\n",
+               __func__, item, stream->ptd, stream->id, item->msg.out_flags);
+
+-      osa_mutex_lock(vxd->mutex);
+       vxd_schedule_locked(vxd);
+-      osa_mutex_unlock(vxd->mutex);
+
+ out_unlock:
+       osa_mutex_unlock(ctx->mutex);
+--
+2.17.1
+
diff --git a/recipes-bsp/ti-img-encode-decode/ti-img-encode-decode_1.0.0.bb 
b/recipes-bsp/ti-img-encode-decode/ti-img-encode-decode_1.0.0.bb
new file mode 100644
index 00000000..d0aefe66
--- /dev/null
+++ b/recipes-bsp/ti-img-encode-decode/ti-img-encode-decode_1.0.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Kernel drivers for the IMG VXE384 MP2 and D5520 encoder/decoder found in 
TI SoCs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = 
"file://driver/common/dq.c;beginline=1;endline=16;md5=e015e28ff5e88576dab9fdf641e3dbfe"
+
+inherit module
+
+MACHINE_KERNEL_PR_append = "g"
+PR = "${MACHINE_KERNEL_PR}"
+
+COMPATIBLE_MACHINE = "j7-evm"
+
+SRCREV = "510439deecb584d2277ca9619ea546c81c778752"
+
+EXTRA_OEMAKE = "KPATH=${STAGING_KERNEL_DIR} KCONF=${STAGING_KERNEL_BUILDDIR}"
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+BRANCH = "master"
+SRC_URI = 
"git://git.ti.com/jacinto7_multimedia/ti-img-encode-decode.git;protocol=git;branch=${BRANCH}
 \
+          
file://0001-TI-IMG-video-codec-driver-porting-to-ti-linux-5.4.y.patch \
+          
file://0002-Decoder-driver-hanging-on-Gstreamer-and-standalone-t.patch"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+       oe_runmake all -C ${S}/linux/decoder
+       oe_runmake all -C ${S}/linux/encoder
+}
+
+do_install() {
+       install -d ${D}/${base_libdir}/modules/${KERNEL_VERSION}/extra
+       install -m 644 ${S}/linux/decoder/vxd-dec.ko 
${D}/${base_libdir}/modules/${KERNEL_VERSION}/extra
+       install -m 644 ${S}/linux/encoder/vxe-enc.ko 
${D}/${base_libdir}/modules/${KERNEL_VERSION}/extra
+}
diff --git a/recipes-bsp/ti-img-encode-decode/viddec-test-app_1.0.0.bb 
b/recipes-bsp/ti-img-encode-decode/viddec-test-app_1.0.0.bb
new file mode 100644
index 00000000..48a17537
--- /dev/null
+++ b/recipes-bsp/ti-img-encode-decode/viddec-test-app_1.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Test applications for TI DEC (v4l2 decoder for IMG D5520)"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = 
"file://main.c;beginline=1;endline=14;md5=f17e17d664f72942124e4fcf06c178ee"
+
+DEPENDS = "libdrm ffmpeg"
+
+inherit autotools pkgconfig
+
+PR = "r1"
+SRCREV = "94a80c8c090dbfdc7fafd4e5bb78c2091e715af2"
+
+EXTRA_OEMAKE = "CC="${CC}""
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+BRANCH = "master"
+SRC_URI = 
"git://git.ti.com/jacinto7_multimedia/viddec-test-app.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
diff --git a/recipes-bsp/ti-img-encode-decode/videnc-test-app_1.0.0.bb 
b/recipes-bsp/ti-img-encode-decode/videnc-test-app_1.0.0.bb
new file mode 100644
index 00000000..3bb5d745
--- /dev/null
+++ b/recipes-bsp/ti-img-encode-decode/videnc-test-app_1.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Test applications for TI ENC (v4l2 encoder for IMG VXE384)"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = 
"file://main.c;beginline=1;endline=14;md5=3545dd5bdf513840937d38c10b866605"
+
+DEPENDS = "libdrm"
+
+inherit autotools pkgconfig
+
+PR = "r0"
+SRCREV = "a5e7d820bea1be24f25a8369d4d4521c784f869a"
+
+EXTRA_OEMAKE = "CC="${CC}""
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+BRANCH = "master"
+SRC_URI = 
"git://git.ti.com/jacinto7_multimedia/videnc-test-app.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
diff --git a/recipes-bsp/ti-img-encode-decode/vxd-dec-fw_git.bb 
b/recipes-bsp/ti-img-encode-decode/vxd-dec-fw_git.bb
new file mode 100644
index 00000000..2812fa2c
--- /dev/null
+++ b/recipes-bsp/ti-img-encode-decode/vxd-dec-fw_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Video Decoding Firmware Packaging recipe"
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84ca7278930db001870686ad997d6bb1"
+
+BRANCH = "master"
+SRCREV = "0acbf1d0a7c7eaca0ef14c1a30ce313ea82147e5"
+
+SRC_URI = 
"git://git.ti.com/jacinto7_multimedia/ti-img-encode-decode.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+PV = "1.0-git${SRCPV}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+VXD_FW_DIR = "${S}/decoder/firmware/"
+
+# make sure that lib/firmware, and all its contents are part of the package
+FILES_${PN} += "${base_libdir}/firmware"
+
+do_install() {
+  install -d ${D}${base_libdir}/firmware
+  install -m 0755 ${VXD_FW_DIR}/pvdec_full_bin.fw ${D}${base_libdir}/firmware
+}
+
+# This is used to prevent the build system to strip the executables
+INHIBIT_PACKAGE_STRIP = "1"
+# This is used to prevent the build system to split the debug info in a 
separate file
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+# As it likely to be a different arch from the Yocto build, disable checking by adding 
"arch" to INSANE_SKIP
+INSANE_SKIP_${PN} += "arch"
+
+# we don't want to configure and build the source code
+do_compile[noexec] = "1"
+do_configure[noexec] = "1"
diff --git 
a/recipes-kernel/linux/files/0001-ti_config_fragments-Add-multimedia.cfg.patch 
b/recipes-kernel/linux/files/0001-ti_config_fragments-Add-multimedia.cfg.patch
new file mode 100644
index 00000000..41edaf9b
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0001-ti_config_fragments-Add-multimedia.cfg.patch
@@ -0,0 +1,29 @@
+From 038f143c45be8e1a51eede595a253e502ff5aa5e Mon Sep 17 00:00:00 2001
+From: Sunita Nadampalli <[email protected]>
+Date: Mon, 8 Mar 2021 18:21:40 +0530
+Subject: [PATCH 1/9] ti_config_fragments: Add multimedia.cfg
+
+Add d5520 vxd_dec configurations to multimedia.cfg
+
+Signed-off-by: Sunita Nadampalli <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ ti_config_fragments/multimedia.cfg | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ti_config_fragments/multimedia.cfg 
b/ti_config_fragments/multimedia.cfg
+index f93841327787..f7e7ecf2a061 100644
+--- a/ti_config_fragments/multimedia.cfg
++++ b/ti_config_fragments/multimedia.cfg
+@@ -1,3 +1,7 @@
+ ##################################################
+ # TI Multimedia (Video Decode, Encode) Configs
+ ##################################################
++# IMG D5500 v4l2 Driver Config Options
++
++CONFIG_MEDIA_SUPPORT=y
++CONFIG_VIDEO_IMG_VXD_DEC=m
+--
+2.17.1
+
diff --git 
a/recipes-kernel/linux/files/0002-v4l-videodev2-Add-10bit-definitions-for-NV12-and-NV1.patch
 
b/recipes-kernel/linux/files/0002-v4l-videodev2-Add-10bit-definitions-for-NV12-and-NV1.patch
new file mode 100644
index 00000000..9861b60a
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0002-v4l-videodev2-Add-10bit-definitions-for-NV12-and-NV1.patch
@@ -0,0 +1,46 @@
+From dd1ac27cffaecd5cf7882c7f138da1f8f7775737 Mon Sep 17 00:00:00 2001
+From: Sunita Nadampalli <[email protected]>
+Date: Mon, 8 Mar 2021 18:45:47 +0530
+Subject: [PATCH 2/9] v4l: videodev2: Add 10bit definitions for NV12 and NV16
+ color formats
+
+The default color formats support only 8bit color depth. This patch
+adds 10bit definitions for NV12 and NV16.
+
+Signed-off-by: Sunita Nadampalli <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ drivers/media/v4l2-core/v4l2-ioctl.c | 2 ++
+ include/uapi/linux/videodev2.h       | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c 
b/drivers/media/v4l2-core/v4l2-ioctl.c
+index 58868d7129eb..5d4d1e3fb97f 100644
+--- a/drivers/media/v4l2-core/v4l2-ioctl.c
++++ b/drivers/media/v4l2-core/v4l2-ioctl.c
+@@ -1330,6 +1330,8 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
+       case V4L2_META_FMT_VSP1_HGT:    descr = "R-Car VSP1 2-D Histogram"; 
break;
+       case V4L2_META_FMT_UVC:         descr = "UVC Payload Header Metadata"; 
break;
+       case V4L2_META_FMT_D4XX:        descr = "Intel D4xx UVC Metadata"; 
break;
++      case V4L2_PIX_FMT_TI1210:       descr = "10-bit YUV 4:2:0 (NV12)"; 
break;
++      case V4L2_PIX_FMT_TI1610:       descr = "10-bit YUV 4:2:2 (NV16)"; 
break;
+
+       default:
+               /* Compressed formats */
+diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
+index 3392a118c3a7..2093405b5c86 100644
+--- a/include/uapi/linux/videodev2.h
++++ b/include/uapi/linux/videodev2.h
+@@ -726,6 +726,8 @@ struct v4l2_pix_format {
+ #define V4L2_PIX_FMT_INZI     v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar 
Greyscale 10-bit and Depth 16-bit */
+ #define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* 
Sunxi Tiled NV12 Format */
+ #define V4L2_PIX_FMT_CNF4     v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit 
packed depth confidence information */
++#define V4L2_PIX_FMT_TI1210   v4l2_fourcc('T', 'I', '1', '2') /* TI NV12 
10-bit, two bytes per channel */
++#define V4L2_PIX_FMT_TI1610   v4l2_fourcc('T', 'I', '1', '6') /* TI NV16 
10-bit, two bytes per channel */
+
+ /* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits 
unused */
+ #define V4L2_PIX_FMT_IPU3_SBGGR10     v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 
packed 10-bit BGGR bayer */
+--
+2.17.1
+
diff --git 
a/recipes-kernel/linux/files/0003-drivers-media-platform-Kconfig-Add-Video-decoder-kco.patch
 
b/recipes-kernel/linux/files/0003-drivers-media-platform-Kconfig-Add-Video-decoder-kco.patch
new file mode 100644
index 00000000..8dda888e
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0003-drivers-media-platform-Kconfig-Add-Video-decoder-kco.patch
@@ -0,0 +1,47 @@
+From d4ec201d6606f5dddd862cb5cf14b109968090da Mon Sep 17 00:00:00 2001
+From: Sunita Nadampalli <[email protected]>
+Date: Mon, 8 Mar 2021 18:48:45 +0530
+Subject: [PATCH 3/9] drivers: media: platform: Kconfig: Add Video decoder
+ kconfig entries
+
+Add video decoder basic config to Kconfig and
+select the required V4l2 modules.
+
+Signed-off-by: Angela Stegmaier <[email protected]>
+Signed-off-by: Sunita Nadampalli <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+
+Modified help syntax from --help-- to help
+
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ drivers/media/platform/Kconfig | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
+index ebaa217b5785..49c9f0a889a3 100644
+--- a/drivers/media/platform/Kconfig
++++ b/drivers/media/platform/Kconfig
+@@ -502,6 +502,19 @@ config VIDEO_TI_VPE_DEBUG
+       help
+         Enable debug messages on VPE driver.
+
++config VIDEO_IMG_VXD_DEC
++        tristate "IMG VXD DEC (Video Decoder) driver"
++        depends on VIDEO_DEV && VIDEO_V4L2
++        depends on ARCH_K3_J721E_SOC || COMPILE_TEST
++        select VIDEOBUF2_CORE
++        select VIDEOBUF2_DMA_CONTIG
++        select VIDEOBUF2_DMA_SG
++        select V4L2_MEM2MEM_DEV
++        help
++          This is an IMG VXD DEC V4L2 driver that adds support for the
++          Imagination D5520 (Video Decoder) hardware.
++          The module name when built is vxd-dec.
++
+ config VIDEO_QCOM_VENUS
+       tristate "Qualcomm Venus V4L2 encoder/decoder driver"
+       depends on VIDEO_DEV && VIDEO_V4L2
+--
+2.17.1
+
diff --git 
a/recipes-kernel/linux/files/0004-arm64-dts-ti-k3-j721e-main.dtsi-Add-D5520-node.patch
 
b/recipes-kernel/linux/files/0004-arm64-dts-ti-k3-j721e-main.dtsi-Add-D5520-node.patch
new file mode 100644
index 00000000..3b6bb43e
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0004-arm64-dts-ti-k3-j721e-main.dtsi-Add-D5520-node.patch
@@ -0,0 +1,37 @@
+From ddcd597c48ef2bb1bcea13af5946ae662794f0e3 Mon Sep 17 00:00:00 2001
+From: Sunita Nadampalli <[email protected]>
+Date: Mon, 8 Mar 2021 18:51:22 +0530
+Subject: [PATCH 4/9] arm64: dts: ti: k3-j721e-main.dtsi: Add D5520 node
+
+Add D5520 video decoder node to k3 devices.
+
+Signed-off-by: Angela Stegmaier <[email protected]>
+Signed-off-by: Sunita Nadampalli <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi 
b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+index 8d0c16252ffa..b8c456735e27 100644
+--- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
++++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+@@ -1340,6 +1340,14 @@
+               power-domains = <&k3_pds 193 TI_SCI_PD_EXCLUSIVE>;
+       };
+
++      d5520: video-decoder@4300000 {
++             /* IMG D5520 driver configuration */
++             compatible = "img,d5500-vxd";
++             reg = <0x00 0x04300000 0x00 0x100000>;
++             power-domains = <&k3_pds 144 TI_SCI_PD_EXCLUSIVE>;
++             interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
++      };
++
+       ufs_wrapper: ufs-wrapper@4e80000 {
+               compatible = "ti,j721e-ufs";
+               reg = <0x0 0x4e80000 0x0 0x100>;
+--
+2.17.1
+
diff --git 
a/recipes-kernel/linux/files/0005-dt-bindings-Add-binding-for-img-d5520-vxd-for-J721E.patch
 
b/recipes-kernel/linux/files/0005-dt-bindings-Add-binding-for-img-d5520-vxd-for-J721E.patch
new file mode 100644
index 00000000..e0256b3a
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0005-dt-bindings-Add-binding-for-img-d5520-vxd-for-J721E.patch
@@ -0,0 +1,47 @@
+From c45b294833fd46b7af4f390ddb8d35979ce11ab1 Mon Sep 17 00:00:00 2001
+From: Sunita Nadampalli <[email protected]>
+Date: Mon, 8 Mar 2021 18:56:44 +0530
+Subject: [PATCH 5/9] dt-bindings: Add binding for img,d5520-vxd for J721E
+
+Add the dt-binding for the img,d5520-vxd node for J721E.
+
+Signed-off-by: Angela Stegmaier <[email protected]>
+Signed-off-by: Sunita Nadampalli <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ .../bindings/media/img,d5520-vxd.txt          | 22 +++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+ create mode 100644 Documentation/devicetree/bindings/media/img,d5520-vxd.txt
+
+diff --git a/Documentation/devicetree/bindings/media/img,d5520-vxd.txt 
b/Documentation/devicetree/bindings/media/img,d5520-vxd.txt
+new file mode 100644
+index 000000000000..6025c0841974
+--- /dev/null
++++ b/Documentation/devicetree/bindings/media/img,d5520-vxd.txt
+@@ -0,0 +1,22 @@
++Imagination D5520-VXD Driver
++----------------------------
++
++The IMG VXD video decode driver for the D5500-VXD is a video decoder for
++multiple video formats including H.264 and HEVC on the TI J721E family
++of SoCs.
++
++Required properties:
++- compatible: must be "img,d5500-vxd"
++- reg: physical base address and length of the registers for the D5520
++- interrupts: should contain interrupt number for the D5520
++
++Example for J721E:
++==================
++
++       d5520: video-decoder@4300000 {
++               /* IMG D5520 driver configuration */
++               compatible = "img,d5500-vxd";
++               reg = <0x00 0x04300000 0x00 0x100000>;
++               power-domains = <&k3_pds 144>;
++               interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
++       };
+--
+2.17.1
+
diff --git 
a/recipes-kernel/linux/files/0006-drivers-media-platorm-Kconfig-Add-Video-encoder-kcon.patch
 
b/recipes-kernel/linux/files/0006-drivers-media-platorm-Kconfig-Add-Video-encoder-kcon.patch
new file mode 100644
index 00000000..697f054b
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0006-drivers-media-platorm-Kconfig-Add-Video-encoder-kcon.patch
@@ -0,0 +1,43 @@
+From 59392e29ca0d864d26c814e28034085be3bc2c9d Mon Sep 17 00:00:00 2001
+From: Angela Stegmaier <[email protected]>
+Date: Mon, 8 Mar 2021 19:03:59 +0530
+Subject: [PATCH 6/9] drivers: media: platorm: Kconfig: Add Video encoder
+ kconfig entries
+
+Add video encoder basic config to Kconfig
+and select the required V4L2 modules.
+
+Signed-off-by: Angela Stegmaier <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ drivers/media/platform/Kconfig | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
+index 49c9f0a889a3..7e4563a540f3 100644
+--- a/drivers/media/platform/Kconfig
++++ b/drivers/media/platform/Kconfig
+@@ -515,6 +515,19 @@ config VIDEO_IMG_VXD_DEC
+           Imagination D5520 (Video Decoder) hardware.
+           The module name when built is vxd-dec.
+
++config VIDEO_IMG_VXE_ENC
++        tristate "IMG VXE ENC (Video Encoder) driver"
++        depends on VIDEO_DEV && VIDEO_V4L2
++        depends on ARCH_K3_J721E_SOC || COMPILE_TEST
++        select VIDEOBUF2_CORE
++        select VIDEOBUF2_DMA_CONTIG
++        select VIDEOBUF2_DMA_SG
++        select V4L2_MEM2MEM_DEV
++        help
++          This is an IMG VXE ENC V4L2 driver that adds support for the
++          Imagination VXE384 (Video Encoder) hardware.
++          The module name when built is vxe-enc.
++
+ config VIDEO_QCOM_VENUS
+       tristate "Qualcomm Venus V4L2 encoder/decoder driver"
+       depends on VIDEO_DEV && VIDEO_V4L2
+--
+2.17.1
+
diff --git 
a/recipes-kernel/linux/files/0007-arm64-dts-ti-k3-j721e-main.dtsi-Add-VXE384-node.patch
 
b/recipes-kernel/linux/files/0007-arm64-dts-ti-k3-j721e-main.dtsi-Add-VXE384-node.patch
new file mode 100644
index 00000000..7f63a44d
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0007-arm64-dts-ti-k3-j721e-main.dtsi-Add-VXE384-node.patch
@@ -0,0 +1,35 @@
+From 49fa5eb15209f77ac7540300f0b7dcf74f91232d Mon Sep 17 00:00:00 2001
+From: Angela Stegmaier <[email protected]>
+Date: Mon, 8 Mar 2021 19:08:59 +0530
+Subject: [PATCH 7/9] arm64: dts: ti: k3-j721e-main.dtsi: Add VXE384 node
+
+Add VXE384 video encoder node for J721E.
+
+Signed-off-by: Angela Stegmaier <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi 
b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+index b8c456735e27..bdddac758f16 100644
+--- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
++++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+@@ -1348,6 +1348,13 @@
+              interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
++      vxe384: video-encoder@4200000 {
++              compatible = "img,vxe384";
++              reg = <0x00 0x04200000 0x00 0x100000>;
++              power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
++              interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
++      };
++
+       ufs_wrapper: ufs-wrapper@4e80000 {
+               compatible = "ti,j721e-ufs";
+               reg = <0x0 0x4e80000 0x0 0x100>;
+--
+2.17.1
+
diff --git 
a/recipes-kernel/linux/files/0008-dt-bindings-Add-binding-for-img-vxe384-for-J721E.patch
 
b/recipes-kernel/linux/files/0008-dt-bindings-Add-binding-for-img-vxe384-for-J721E.patch
new file mode 100644
index 00000000..d097c605
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0008-dt-bindings-Add-binding-for-img-vxe384-for-J721E.patch
@@ -0,0 +1,44 @@
+From 8a013785d4c6022c85bd8947bd5e594eeca0c85a Mon Sep 17 00:00:00 2001
+From: Angela Stegmaier <[email protected]>
+Date: Mon, 8 Mar 2021 19:11:37 +0530
+Subject: [PATCH 8/9] dt-bindings: Add binding for img,vxe384 for J721E
+
+Add the dt-binding for the img,vxe384 node for J721E.
+
+Signed-off-by: Angela Stegmaier <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ .../devicetree/bindings/media/img,vxe384.txt  | 20 +++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+ create mode 100644 Documentation/devicetree/bindings/media/img,vxe384.txt
+
+diff --git a/Documentation/devicetree/bindings/media/img,vxe384.txt 
b/Documentation/devicetree/bindings/media/img,vxe384.txt
+new file mode 100644
+index 000000000000..0c8734f54113
+--- /dev/null
++++ b/Documentation/devicetree/bindings/media/img,vxe384.txt
+@@ -0,0 +1,20 @@
++Imagination VXE384 Driver
++-------------------------
++
++The IMG VXE384 video encode driver for the VXE384 is a video encoder for
++multiple video formats including H.264 on the TI J721E family of SoCs.
++
++Required properties:
++- compatible: must be "img,vxe384"
++- reg: physical base address and length of the registers for the VXE384
++- interrupts: should contain interrupt number for the VXE384
++
++Example for J721E:
++==================
++
++       vxe384: video-encoder@4200000 {
++               compatible = "img,vxe384";
++               reg = <0x00 0x04200000 0x00 0x100000>;
++               power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
++               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
++       };
+--
+2.17.1
+
diff --git 
a/recipes-kernel/linux/files/0009-ti_config_fragments-multimedia.cfg-Add-video-encode-.patch
 
b/recipes-kernel/linux/files/0009-ti_config_fragments-multimedia.cfg-Add-video-encode-.patch
new file mode 100644
index 00000000..3ee62a06
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0009-ti_config_fragments-multimedia.cfg-Add-video-encode-.patch
@@ -0,0 +1,29 @@
+From 4fef99f138e74641a617a300c900e3222d39e61b Mon Sep 17 00:00:00 2001
+From: Angela Stegmaier <[email protected]>
+Date: Mon, 8 Mar 2021 19:18:35 +0530
+Subject: [PATCH 9/9] ti_config_fragments: multimedia.cfg: Add video encode
+ configuration
+
+Add vxe384 vxe_enc configurations to multimedia.cfg
+
+Signed-off-by: Angela Stegmaier <[email protected]>
+Reviewed-by: Benoit Parrot <[email protected]>
+Signed-off-by: Sidraya Jayagond <[email protected]>
+---
+ ti_config_fragments/multimedia.cfg | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/ti_config_fragments/multimedia.cfg 
b/ti_config_fragments/multimedia.cfg
+index f7e7ecf2a061..3b022bb43e3c 100644
+--- a/ti_config_fragments/multimedia.cfg
++++ b/ti_config_fragments/multimedia.cfg
+@@ -5,3 +5,6 @@
+
+ CONFIG_MEDIA_SUPPORT=y
+ CONFIG_VIDEO_IMG_VXD_DEC=m
++
++#IMG VXE384 v4l2 Driver Config Options
++CONFIG_VIDEO_IMG_VXE_ENC=m
+--
+2.17.1
+
diff --git a/recipes-kernel/linux/linux-ti-staging_5.4.bb 
b/recipes-kernel/linux/linux-ti-staging_5.4.bb
index 37f387c3..c26341f6 100644
--- a/recipes-kernel/linux/linux-ti-staging_5.4.bb
+++ b/recipes-kernel/linux/linux-ti-staging_5.4.bb
@@ -31,7 +31,16 @@ PR = "${MACHINE_KERNEL_PR}"
  KERNEL_GIT_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
  KERNEL_GIT_PROTOCOL = "git"
  SRC_URI += 
"${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \
-            file://defconfig"
+            file://defconfig \
+            file://0001-ti_config_fragments-Add-multimedia.cfg.patch \
+            
file://0002-v4l-videodev2-Add-10bit-definitions-for-NV12-and-NV1.patch \
+            
file://0003-drivers-media-platform-Kconfig-Add-Video-decoder-kco.patch \
+            file://0004-arm64-dts-ti-k3-j721e-main.dtsi-Add-D5520-node.patch \
+            
file://0005-dt-bindings-Add-binding-for-img-d5520-vxd-for-J721E.patch \
+            
file://0006-drivers-media-platorm-Kconfig-Add-Video-encoder-kcon.patch \
+            file://0007-arm64-dts-ti-k3-j721e-main.dtsi-Add-VXE384-node.patch \
+            file://0008-dt-bindings-Add-binding-for-img-vxe384-for-J721E.patch 
\
+            
file://0009-ti_config_fragments-multimedia.cfg-Add-video-encode-.patch"
FILES_${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/*.itb"
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#13502): 
https://lists.yoctoproject.org/g/meta-ti/message/13502
Mute This Topic: https://lists.yoctoproject.org/mt/81178107/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to