mbox series

[00/21] media: atomisp: Use selection API info to determine sensor padding

Message ID 20230529103741.11904-1-hdegoede@redhat.com
Headers show
Series media: atomisp: Use selection API info to determine sensor padding | expand

Message

Hans de Goede May 29, 2023, 10:37 a.m. UTC
Hi All,

Here is my next round of atomisp work.

The atomisp wants some extra padding for processing in the data it receives
from the sensor. E.g. For 1600x1200 it wants to receive 1616x1216 from
the sensor. Currently the private sensor driver copies it uses give it
e.g. 1616x1216 and the ISP2 code then substracts 16 before reporting
the resolution to userspace.

This patch series adds support for the v4l2 selections API and specifically
the crop target so that atomisp can request the extra padding from standard
v4l2 sensor drivers. This is implemented / tested with the atomisp_ov2680
driver.

Besides that there is the usual cleanups / prep work.

With the padding solved, the last bit of private atomisp sensor API is
gone now. So we can start working on getting rid of its private sensor
driver copies.

As mentioned in the updated TODO file the next step is to port
various improvements from the atomisp_ov2680 private sensor driver
to the generic ov2680 sensor driver (such as the selections support)
and then switch to the generic ov2680 sensor driver.

Regards,

Hans


Hans de Goede (21):
  media: atomisp: Update TODO
  media: atomisp: ov2680: s/ov2680_device/ov2680_dev/
  media: atomisp: ov2680: s/input_lock/lock/
  media: atomisp: ov2680: Add missing ov2680_calc_mode() call to probe()
  media: atomisp: ov2680: Add init_cfg pad-op
  media: atomisp: ov2680: Implement selection support
  media: atomisp: Remove a bunch of sensor related custom IOCTLs
  media: atomisp: Remove redundant atomisp_subdev_set_selection() calls
    from atomisp_set_fmt()
  media: atomisp: Simplify atomisp_subdev_set_selection() calls in
    atomisp_set_fmt()
  media: atomisp: Add target validation to
    atomisp_subdev_set_selection()
  media: atomisp: Remove bogus fh use from atomisp_set_fmt*()
  media: atomisp: Add input helper variable for
    isp->asd->inputs[asd->input_curr]
  media: atomisp: Add ia_css_frame_pad_width() helper function
  media: atomisp: Refactor atomisp_try_fmt() / atomisp_set_fmt()
  media: atomisp: Add support for sensors which implement selection API
    / cropping
  media: atomisp: Pass MEDIA_BUS_FMT_* code when calling enum_frame_size
    pad-op
  media: atomisp: Make atomisp_init_sensor() check if the sensor
    supports binning
  media: atomisp: Use selection API info to determine sensor padding
  media: atomisp: Set crop before setting fmt
  media: atomisp: Add enum_framesizes function for sensors with
    selection / crop support
  media: atomisp: csi2-bridge: Set PMC clk-rate for sensors to 19.2 MHz

 drivers/staging/media/atomisp/TODO            | 233 ++-----
 .../media/atomisp/i2c/atomisp-ov2680.c        | 204 +++++-
 drivers/staging/media/atomisp/i2c/ov2680.h    |  20 +-
 .../media/atomisp/i2c/ov5693/atomisp-ov5693.c |  40 --
 .../media/atomisp/include/linux/atomisp.h     | 120 ----
 .../staging/media/atomisp/pci/atomisp_cmd.c   | 612 ++++++------------
 .../staging/media/atomisp/pci/atomisp_cmd.h   |  14 +-
 .../atomisp/pci/atomisp_compat_ioctl32.h      |  55 --
 .../media/atomisp/pci/atomisp_csi2_bridge.c   |  68 +-
 .../media/atomisp/pci/atomisp_internal.h      |   9 +
 .../staging/media/atomisp/pci/atomisp_ioctl.c | 174 +++--
 .../media/atomisp/pci/atomisp_subdev.c        |  18 +-
 .../media/atomisp/pci/atomisp_subdev.h        |   3 +
 .../staging/media/atomisp/pci/atomisp_v4l2.c  |  85 +++
 .../runtime/frame/interface/ia_css_frame.h    |   2 +
 .../atomisp/pci/runtime/frame/src/frame.c     |  44 +-
 16 files changed, 685 insertions(+), 1016 deletions(-)