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/17348fc509fe375a630a798196edbb73 E5010 JPEG Encoder Manual tests : Performance: Link: https://gist.github.com/devarsht/ef5aba211aae45166681b8b4418d4e65 Functionality: Link: https://gist.github.com/devarsht/bfef1e3ead8e858b09cbf418aea753e8 Compression Quality: Link: https://gist.github.com/devarsht/345df9bf7157b4ca094293760e257451 Multi Instance: Link: https://gist.github.com/devarsht/4b4d734eeb9e0e616837c0836ddbc769 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