|
|
Subscribe / Log in / New account

media: i2c: ov01a10: Add crop, ov01a1b and ov01a1s support

From:  Hans de Goede <hansg-AT-kernel.org>
To:  Bingbu Cao <bingbu.cao-AT-intel.com>, Sakari Ailus <sakari.ailus-AT-linux.intel.com>
Subject:  [PATCH 00/25] media: i2c: ov01a10: Add crop, ov01a1b and ov01a1s support
Date:  Tue, 14 Oct 2025 19:40:08 +0200
Message-ID:  <20251014174033.20534-1-hansg@kernel.org>
Cc:  Hans de Goede <hansg-AT-kernel.org>, linux-media-AT-vger.kernel.org
Archive-link:  Article

Hi All,

This is a series with various ov01a10 driver improvements
1. A set of bugfixes
2. Add cropping support / allow arbitrary sizes
3. OV01A1B monochrome/IR model support
4. OV01A1S RGB-IR model support

This has been tested on:
1. A Dell XPS 13 9320 Raptor Lake with OV1A10 color + OV1A1B IR sensor
2. A Dell Latitude 9420 Tiger Lake with OV01A1S RGB-IR

Testing has been done both with:
1. libcamera (qcam + softISP patches for RGB-IR); and
2. Intel's proprietary userspace stack with out of tree psys driver (*)

Regards,

Hans


*) The out of tree ov01a1s driver has a fixed resolution of 1296x798
   (with the height not being a multiple of bayer-pattern-size <sigh>)
   the closest the mainline driver can get after this series is 1288x800.
   This requires some changes to the xml files describing the ov01a1s
   graph in ipu6-camera-hal.


Hans de Goede (25):
  media: i2c: ov01a10: Fix the horizontal flip control
  media: i2c: ov01a10: Fix reported pixel-rate value
  media: i2c: ov01a10: Fix gain range
  media: i2c: ov01a10: Add missing v4l2_subdev_cleanup() calls
  media: i2c: ov01a10: Fix passing stream instead of pad to
    v4l2_subdev_state_get_format()
  media: i2c: ov01a10: Fix test-pattern disabling
  media: i2c: ov01a10: Change default vblank value to a vblank resulting
    in 30 fps
  media: i2c: ov01a10: Convert to new CCI register access helpers
  media: i2c: ov01a10: Remove overly verbose probe() error reporting
  media: i2c: ov01a10: Store dev pointer in struct ov01a10
  media: i2c: ov01a10: Add ov01a10_check_hwcfg() function
  media: i2c: ov01a10: Add power on/off sequencing support
  media: i2c: ov01a10: Don't update pixel_rate and link_freq from
    set_fmt
  media: i2c: ov01a10: Move setting of ctrl->flags to after checking
    ctrl_hdlr->error
  media: i2c: ov01a10: Use native and default for pixel-array size names
  media: i2c: ov01a10: Add cropping support / allow arbitrary sizes
  media: i2c: ov01a10: Remove struct ov01a10_reg_list
  media: i2c: ov01a10: Replace exposure->min/step with direct define use
  media: i2c: ov01a10: Only set register 0x0305 once
  media: i2c: ov01a10: Remove values set by controls from
    global_setting[]
  media: i2c: ov01a10: Add ov01a10_sensor_cfg struct
  media: i2c: ov01a10: Optimize setting h/vflip values
  media: i2c: ov01a10: Add ov01a1b support
  media: i2c: ov01a10: Add ov01a1s support
  media: i2c: ov01a10: Register tweaks for ov01a1s model

 drivers/media/i2c/Kconfig   |   1 +
 drivers/media/i2c/ov01a10.c | 959 ++++++++++++++++++++++--------------
 2 files changed, 592 insertions(+), 368 deletions(-)

-- 
2.51.0




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds