From 813a58e1caf6119e763d1924ff7ff1f910f17357 Mon Sep 17 00:00:00 2001 From: Thorsten Lannynd Date: Thu, 21 Aug 2025 10:41:36 -0500 Subject: ti-bsp: recipes-multimedia: Add udev rules for VPU and JPEG encoder symlinks This patch introduces udev rules to ensure consistent device naming for VPU decoders, encoders, and the JPEG encoder. These rules are essential for enabling hardware-accelerated video decoding in Chromium using the V4L2 Stateful decoder. The following udev rules are added: - Map vpu and vpu0 to /dev/video-dec0 and /dev/video-enc0. - Map vpu1 to /dev/video-dec1 and /dev/video-enc1. - Map the JPEG encoder to /dev/jpeg-enc0. These changes ensure proper operation of the VPU and JPEG encoder, especially when other video devices are connected, avoiding mismatches. Signed-off-by: Thorsten Lannynd Signed-off-by: Ryan Eatmon --- meta-ti-bsp/recipes-bsp/cnm-wave-fw/cnm-wave-fw_git.bb | 2 ++ .../ti-img-encode-decode/ti-vxe-vxd-driver_6.12.bb | 2 ++ .../ti-multimedia-udev/files/67-multimedia.rules | 5 +++++ .../ti-multimedia-udev/ti-multimedia-udev.bb | 11 +++++++++++ 4 files changed, 20 insertions(+) create mode 100644 meta-ti-bsp/recipes-multimedia/ti-multimedia-udev/files/67-multimedia.rules create mode 100644 meta-ti-bsp/recipes-multimedia/ti-multimedia-udev/ti-multimedia-udev.bb diff --git a/meta-ti-bsp/recipes-bsp/cnm-wave-fw/cnm-wave-fw_git.bb b/meta-ti-bsp/recipes-bsp/cnm-wave-fw/cnm-wave-fw_git.bb index 6a65992f..95bfd01a 100644 --- a/meta-ti-bsp/recipes-bsp/cnm-wave-fw/cnm-wave-fw_git.bb +++ b/meta-ti-bsp/recipes-bsp/cnm-wave-fw/cnm-wave-fw_git.bb @@ -27,3 +27,5 @@ do_install() { install -d ${D}${nonarch_base_libdir}/firmware/cnm install -m 0644 ${S}/cnm/${SOURCE_WAVE521C} ${D}${nonarch_base_libdir}/firmware/cnm/${TARGET_WAVE521C} } + +RDEPENDS:${PN} += "ti-multimedia-udev" diff --git a/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/ti-vxe-vxd-driver_6.12.bb b/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/ti-vxe-vxd-driver_6.12.bb index 85f519ab..33057415 100644 --- a/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/ti-vxe-vxd-driver_6.12.bb +++ b/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/ti-vxe-vxd-driver_6.12.bb @@ -21,3 +21,5 @@ TARGET_PRODUCT:j721e = "j721e_linux" S = "${WORKDIR}/git" EXTRA_OEMAKE += 'KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"' + +RDEPENDS:${PN} += "ti-multimedia-udev" diff --git a/meta-ti-bsp/recipes-multimedia/ti-multimedia-udev/files/67-multimedia.rules b/meta-ti-bsp/recipes-multimedia/ti-multimedia-udev/files/67-multimedia.rules new file mode 100644 index 00000000..5239d1ef --- /dev/null +++ b/meta-ti-bsp/recipes-multimedia/ti-multimedia-udev/files/67-multimedia.rules @@ -0,0 +1,5 @@ +SUBSYSTEM=="video4linux", DEVPATH=="/devices/*/*210000.video-codec/video4linux/video*", ATTR{name}=="C&M Wave5 VPU decoder", SYMLINK+="video-dec0" +SUBSYSTEM=="video4linux", DEVPATH=="/devices/*/*210000.video-codec/video4linux/video*", ATTR{name}=="C&M Wave5 VPU encoder", SYMLINK+="video-enc0" +SUBSYSTEM=="video4linux", DEVPATH=="/devices/*/4220000.video-codec/video4linux/video*", ATTR{name}=="C&M Wave5 VPU decoder", SYMLINK+="video-dec1" +SUBSYSTEM=="video4linux", DEVPATH=="/devices/*/4220000.video-codec/video4linux/video*", ATTR{name}=="C&M Wave5 VPU encoder", SYMLINK+="video-enc1" +SUBSYSTEM=="video4linux", DEVPATH=="/devices/*/fd20000.jpeg-encoder/video4linux/video*", ATTR{name}=="e5010", SYMLINK+="jpeg-enc0" diff --git a/meta-ti-bsp/recipes-multimedia/ti-multimedia-udev/ti-multimedia-udev.bb b/meta-ti-bsp/recipes-multimedia/ti-multimedia-udev/ti-multimedia-udev.bb new file mode 100644 index 00000000..40b0db8e --- /dev/null +++ b/meta-ti-bsp/recipes-multimedia/ti-multimedia-udev/ti-multimedia-udev.bb @@ -0,0 +1,11 @@ +SUMMARY = "Udev rules for device naming of VPU devices and JPEG encoder" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI += "file://67-multimedia.rules" + +do_install() { + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/67-multimedia.rules ${D}${sysconfdir}/udev/rules.d/ +} -- cgit v1.2.3-54-g00ecf