[PATCH v3 0/4] Add V4L2 M2M Driver for E5010 JPEG Encoder

From: Devarsh Thakkar
Date: Wed Aug 16 2023 - 11:23:21 EST


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