mbox series

[0/5] Add Arm Mali-C55 Image Signal Processor Driver

Message ID 20240131164709.810587-1-dan.scally@ideasonboard.com
Headers show
Series Add Arm Mali-C55 Image Signal Processor Driver | expand

Message

Dan Scally Jan. 31, 2024, 4:47 p.m. UTC
Hello all

This patchset introduces a driver for Arm's Mali-C55 Image Signal Processor.
The driver uses the media controller API and in this initial support implements
both of the ISP's capture pipelines allowing a range of output formats plus
downscaling and cropping. The capture pipelines are named "Full resolution" and
"Downscale" and so abbreviated FR and DS throughout the driver.

The driver exposes 4 V4L2 subdevices:

- mali-c55 isp: input data formatting
- mali-c55 tpg: test pattern generator (modeled as a camera sensor entity)
- mali-c55 resizer fr: downscale / crop and format setting for the FR pipe
- mali-c55 resizer ds: downscale / crop and format setting for the DS pipe

Thanks
Dan

Daniel Scally (5):
  media: uapi: Add MEDIA_BUS_FMT_RGB202020_1X60 format code
  dt-bindings: media: Add bindings for ARM mali-c55
  media: mali-c55: Add Mali-C55 ISP driver
  media: Documentation: Add Mali-C55 ISP Documentation
  MAINTAINERS: Add entry for mali-c55 driver

 .../admin-guide/media/mali-c55-graph.dot      |   19 +
 Documentation/admin-guide/media/mali-c55.rst  |  318 ++++++
 .../admin-guide/media/v4l-drivers.rst         |    1 +
 .../bindings/media/arm,mali-c55.yaml          |   51 +
 .../media/v4l/subdev-formats.rst              |  168 +++
 MAINTAINERS                                   |   10 +
 drivers/media/platform/Kconfig                |    1 +
 drivers/media/platform/Makefile               |    1 +
 drivers/media/platform/arm/Kconfig            |    5 +
 drivers/media/platform/arm/Makefile           |    2 +
 drivers/media/platform/arm/mali-c55/Kconfig   |   18 +
 drivers/media/platform/arm/mali-c55/Makefile  |    9 +
 .../platform/arm/mali-c55/mali-c55-capture.c  | 1013 +++++++++++++++++
 .../platform/arm/mali-c55/mali-c55-common.h   |  263 +++++
 .../platform/arm/mali-c55/mali-c55-core.c     |  717 ++++++++++++
 .../platform/arm/mali-c55/mali-c55-isp.c      |  682 +++++++++++
 .../arm/mali-c55/mali-c55-registers.h         |  180 +++
 .../arm/mali-c55/mali-c55-resizer-coefs.h     |  382 +++++++
 .../platform/arm/mali-c55/mali-c55-resizer.c  |  678 +++++++++++
 .../platform/arm/mali-c55/mali-c55-tpg.c      |  425 +++++++
 include/uapi/linux/media-bus-format.h         |    3 +-
 21 files changed, 4945 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/admin-guide/media/mali-c55-graph.dot
 create mode 100644 Documentation/admin-guide/media/mali-c55.rst
 create mode 100644 Documentation/devicetree/bindings/media/arm,mali-c55.yaml
 create mode 100644 drivers/media/platform/arm/Kconfig
 create mode 100644 drivers/media/platform/arm/Makefile
 create mode 100644 drivers/media/platform/arm/mali-c55/Kconfig
 create mode 100644 drivers/media/platform/arm/mali-c55/Makefile
 create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-capture.c
 create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-common.h
 create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-core.c
 create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-isp.c
 create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-registers.h
 create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-resizer-coefs.h
 create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-resizer.c
 create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-tpg.c

Comments

Laurent Pinchart Jan. 31, 2024, 5:43 p.m. UTC | #1
On Wed, Jan 31, 2024 at 04:47:04PM +0000, Daniel Scally wrote:
> Hello all
> 
> This patchset introduces a driver for Arm's Mali-C55 Image Signal Processor.
> The driver uses the media controller API and in this initial support implements
> both of the ISP's capture pipelines allowing a range of output formats plus
> downscaling and cropping. The capture pipelines are named "Full resolution" and
> "Downscale" and so abbreviated FR and DS throughout the driver.
> 
> The driver exposes 4 V4L2 subdevices:
> 
> - mali-c55 isp: input data formatting
> - mali-c55 tpg: test pattern generator (modeled as a camera sensor entity)
> - mali-c55 resizer fr: downscale / crop and format setting for the FR pipe
> - mali-c55 resizer ds: downscale / crop and format setting for the DS pipe

Answering a question I've received out-of-band: the driver doesn't
support ISP statistics and parameters yet. Active work is in progress in
that area, so one option would be to merge this driver in staging in the
meantime.

> Daniel Scally (5):
>   media: uapi: Add MEDIA_BUS_FMT_RGB202020_1X60 format code
>   dt-bindings: media: Add bindings for ARM mali-c55
>   media: mali-c55: Add Mali-C55 ISP driver
>   media: Documentation: Add Mali-C55 ISP Documentation
>   MAINTAINERS: Add entry for mali-c55 driver
> 
>  .../admin-guide/media/mali-c55-graph.dot      |   19 +
>  Documentation/admin-guide/media/mali-c55.rst  |  318 ++++++
>  .../admin-guide/media/v4l-drivers.rst         |    1 +
>  .../bindings/media/arm,mali-c55.yaml          |   51 +
>  .../media/v4l/subdev-formats.rst              |  168 +++
>  MAINTAINERS                                   |   10 +
>  drivers/media/platform/Kconfig                |    1 +
>  drivers/media/platform/Makefile               |    1 +
>  drivers/media/platform/arm/Kconfig            |    5 +
>  drivers/media/platform/arm/Makefile           |    2 +
>  drivers/media/platform/arm/mali-c55/Kconfig   |   18 +
>  drivers/media/platform/arm/mali-c55/Makefile  |    9 +
>  .../platform/arm/mali-c55/mali-c55-capture.c  | 1013 +++++++++++++++++
>  .../platform/arm/mali-c55/mali-c55-common.h   |  263 +++++
>  .../platform/arm/mali-c55/mali-c55-core.c     |  717 ++++++++++++
>  .../platform/arm/mali-c55/mali-c55-isp.c      |  682 +++++++++++
>  .../arm/mali-c55/mali-c55-registers.h         |  180 +++
>  .../arm/mali-c55/mali-c55-resizer-coefs.h     |  382 +++++++
>  .../platform/arm/mali-c55/mali-c55-resizer.c  |  678 +++++++++++
>  .../platform/arm/mali-c55/mali-c55-tpg.c      |  425 +++++++
>  include/uapi/linux/media-bus-format.h         |    3 +-
>  21 files changed, 4945 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/admin-guide/media/mali-c55-graph.dot
>  create mode 100644 Documentation/admin-guide/media/mali-c55.rst
>  create mode 100644 Documentation/devicetree/bindings/media/arm,mali-c55.yaml
>  create mode 100644 drivers/media/platform/arm/Kconfig
>  create mode 100644 drivers/media/platform/arm/Makefile
>  create mode 100644 drivers/media/platform/arm/mali-c55/Kconfig
>  create mode 100644 drivers/media/platform/arm/mali-c55/Makefile
>  create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-capture.c
>  create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-common.h
>  create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-core.c
>  create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-isp.c
>  create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-registers.h
>  create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-resizer-coefs.h
>  create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-resizer.c
>  create mode 100644 drivers/media/platform/arm/mali-c55/mali-c55-tpg.c