Add V4L2 M2M Driver for E5010 JPEG Encoder
From: | Devarsh Thakkar <devarsht-AT-ti.com> | |
To: | <mchehab-AT-kernel.org>, <robh+dt-AT-kernel.org>, <krzysztof.kozlowski+dt-AT-linaro.org>, <conor+dt-AT-kernel.org>, <hverkuil-cisco-AT-xs4all.nl>, <linux-media-AT-vger.kernel.org>, <devicetree-AT-vger.kernel.org>, <linux-kernel-AT-vger.kernel.org> | |
Subject: | [PATCH v3 0/4] Add V4L2 M2M Driver for E5010 JPEG Encoder | |
Date: | Wed, 16 Aug 2023 20:52:06 +0530 | |
Message-ID: | <20230816152210.4080779-1-devarsht@ti.com> | |
Cc: | <laurent.pinchart-AT-ideasonboard.com>, <eugen.hristev-AT-collabora.com>, <ezequiel-AT-vanguardiasur.com.ar>, <u.kleine-koenig-AT-pengutronix.de>, <sakari.ailus-AT-linux.intel.com>, <praneeth-AT-ti.com>, <nm-AT-ti.com>, <vigneshr-AT-ti.com>, <a-bhatia1-AT-ti.com>, <j-luthra-AT-ti.com>, <b-brnich-AT-ti.com>, <detheridge-AT-ti.com>, <p-mantena-AT-ti.com>, <vijayp-AT-ti.com>, <devarsht-AT-ti.com> | |
Archive-link: | Article |
This adds support for V4L2 M2M based driver for E5010 JPEG Encoder which is a stateful JPEG encoder from Imagination technologies and is present in TI AM62A SoC. v4l2-compliance test : Link: https://gist.github.com/devarsht/17348fc509fe375a630a7981... E5010 JPEG Encoder Manual tests : Performance: Link: https://gist.github.com/devarsht/ef5aba211aae45166681b8b4... Functionality: Link: https://gist.github.com/devarsht/bfef1e3ead8e858b09cbf418... Compression Quality: Link: https://gist.github.com/devarsht/345df9bf7157b4ca09429376... Multi Instance: Link: https://gist.github.com/devarsht/4b4d734eeb9e0e616837c083... Devarsh Thakkar (4): dt-bindings: media: Add bindings for Imagination E5010 JPEG Encoder driver media: imagination: Add E5010 JPEG Encoder driver arm64: dts: ti: k3-am62a : Add E5010 JPEG Encoder arm64: defconfig: Enable E5010 JPEG Encoder .../bindings/media/img,e5010-jpeg-enc.yaml | 81 + MAINTAINERS | 7 + arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 11 + arch/arm64/boot/dts/ti/k3-am62a.dtsi | 2 + arch/arm64/configs/defconfig | 117 +- drivers/media/platform/Kconfig | 1 + drivers/media/platform/Makefile | 1 + drivers/media/platform/imagination/Kconfig | 12 + drivers/media/platform/imagination/Makefile | 3 + .../platform/imagination/e5010-core-regs.h | 585 ++++++ .../platform/imagination/e5010-jpeg-enc-hw.c | 320 ++++ .../platform/imagination/e5010-jpeg-enc-hw.h | 42 + .../platform/imagination/e5010-jpeg-enc.c | 1678 +++++++++++++++++ .../platform/imagination/e5010-jpeg-enc.h | 169 ++ .../platform/imagination/e5010-mmu-regs.h | 311 +++ 15 files changed, 3265 insertions(+), 75 deletions(-) create mode 100644 Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml create mode 100644 drivers/media/platform/imagination/Kconfig create mode 100644 drivers/media/platform/imagination/Makefile create mode 100644 drivers/media/platform/imagination/e5010-core-regs.h create mode 100644 drivers/media/platform/imagination/e5010-jpeg-enc-hw.c create mode 100644 drivers/media/platform/imagination/e5010-jpeg-enc-hw.h create mode 100644 drivers/media/platform/imagination/e5010-jpeg-enc.c create mode 100644 drivers/media/platform/imagination/e5010-jpeg-enc.h create mode 100644 drivers/media/platform/imagination/e5010-mmu-regs.h --- Changelog: V1->V2: No change (sending dt-binding and driver together) V2->V3: - Add DONOTMERGE patches for dts and defconfig - Update driver with below changes : - Correct license headers - Use more generic name core instead of jasper for base registers - Add Comment for forward declarations - Simplify quantization table calculations - Use v4l2_apply_frmsize_constraints for updating framesize and remove unrequired functions - Place TODO at top of file and in commit message too - Use dev_err_probe helper in probe function - Fix return value checking for failure scenarios in probe function - Use v4l2_err/info/warn helpers instead of dev_err/info/warn helpers - Fix unexpected indentation - Correct commit message - Update dt-bindings with below changes : - Add vendor specific compatible - Fix commit title and message - Update reg names - Update clocks to 1 - Fix dts example with proper naming -- 2.34.1