linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hansg@kernel.org>
To: Mehdi Djait <mehdi.djait@linux.intel.com>
Cc: Bingbu Cao <bingbu.cao@intel.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	linux-media@vger.kernel.org
Subject: Re: [PATCH 15/25] media: i2c: ov01a10: Use native and default for pixel-array size names
Date: Tue, 28 Oct 2025 21:19:16 +0100	[thread overview]
Message-ID: <84ba8111-fe54-47f2-a485-1194e50327aa@kernel.org> (raw)
In-Reply-To: <vkghoohncxnmnuy3zitob62huopp5hpklefgknmc2iuz672hct@f3eebr4emy3n>

Hi Mehdi,

On 28-Oct-25 8:01 PM, Mehdi Djait wrote:
> Hi Hans,
> 
> On Tue, Oct 14, 2025 at 07:40:23PM +0200, Hans de Goede wrote:
>> According to the OV01A10 product-brief PDF the OV01A10 has an active pixel
>> array size of 1296x816. In otherwords the native and active sizes are
>> the same.
> 
> Isn't that an error in the product-brief ?
> 
> I understood the following:
> 
> The native pixel array size is 1296x816
> The active pixel array size is 1280x800 = these are the active pixels that can
> be output.
> 
> 1296x816 is not lised under the supported image sizes, so it
> is not the active pixel array size.

The list of supported image sizes typically is just plain non-sense.

As the later patch adding arbitrary output sizes shows there really
is nothing special about the listed supported image sizes.

Typically the vendor will provide a set of register values
for the supported image sizes, which is why we see various sensor
drivers with a fixed list of modes/output-sizes with then a long
register-list per mode.

That does not mean those are the only modes the sensor can actually
do since most sensors can do cropping at at least a 2x2 pixel precision
making any mode possible (although cropping away a lot will significantly
change the field-of-view).

Sometimes there may be some rows of dark pixels which are covered
with something which does not allow light to pass through for blacklevel
measurement but that does not appear to be the case here.

If you run the libcamera+softISP stack anmd specifically qcam with this
series then you will get 1292x816 as resolution and there are no black
borders or artifacts at the borders so it can really do 1296x816.

Also see the out of tree ov01a1s driver:

https://github.com/intel/ipu6-drivers/blob/master/drivers/media/i2c/ov01a1s.c

which also has an output width of 1296 pixels.

> I think in most sensors the active pixel array size is smaller than the
> native one.

Sometimes it is because there are e.g. a few rows of pixels
for blacklevel measuring. But often the entire array can be used.

Even if there are extra pixels for blacklevel measurement then
the actual active area typically is still bigger then a standard
resolution like e.hg. 1280x800 as many hardware ISPs typically
also need some extra pixels at the border for Bayer pattern
interpolation / demosaicing.

Regards,

Hans



>>
>> Replace the (misspelled) ACTIVE defines for the default resolution of
>> 1280x800 with DEFAULT to avoid giving the impression that the active pixel
>> array size is only 1280x800.
>>
>> And replace PIXEL_ARRAY with NATIVE to make clear this is the native pixel
>> array size / to match the V4L2_SEL_TGT_NATIVE_SIZE naming.
>>
>> Signed-off-by: Hans de Goede <hansg@kernel.org>
>> ---
>>  drivers/media/i2c/ov01a10.c | 32 ++++++++++++++++----------------
>>  1 file changed, 16 insertions(+), 16 deletions(-)
>>
>> diff --git a/drivers/media/i2c/ov01a10.c b/drivers/media/i2c/ov01a10.c
>> index d0153e606c9a..f3bcb61c88dd 100644
>> --- a/drivers/media/i2c/ov01a10.c
>> +++ b/drivers/media/i2c/ov01a10.c
>> @@ -34,10 +34,10 @@
>>  #define OV01A10_MODE_STREAMING		0x01
>>  
>>  /* pixel array */
>> -#define OV01A10_PIXEL_ARRAY_WIDTH	1296
>> -#define OV01A10_PIXEL_ARRAY_HEIGHT	816
>> -#define OV01A10_ACITVE_WIDTH		1280
>> -#define OV01A10_ACITVE_HEIGHT		800
>> +#define OV01A10_NATIVE_WIDTH		1296
>> +#define OV01A10_NATIVE_HEIGHT		816
>> +#define OV01A10_DEFAULT_WIDTH		1280
>> +#define OV01A10_DEFAULT_HEIGHT		800
> 
> --
> Kind Regards
> Mehdi Djait


  reply	other threads:[~2025-10-28 20:19 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-14 17:40 [PATCH 00/25] media: i2c: ov01a10: Add crop, ov01a1b and ov01a1s support Hans de Goede
2025-10-14 17:40 ` [PATCH 01/25] media: i2c: ov01a10: Fix the horizontal flip control Hans de Goede
2025-10-27 19:00   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 02/25] media: i2c: ov01a10: Fix reported pixel-rate value Hans de Goede
2025-10-27 19:03   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 03/25] media: i2c: ov01a10: Fix gain range Hans de Goede
2025-10-27 19:14   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 04/25] media: i2c: ov01a10: Add missing v4l2_subdev_cleanup() calls Hans de Goede
2025-10-15  2:37   ` Bingbu Cao
2025-10-15  2:46   ` Bingbu Cao
2025-10-28 11:24   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 05/25] media: i2c: ov01a10: Fix passing stream instead of pad to v4l2_subdev_state_get_format() Hans de Goede
2025-10-28 11:40   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 06/25] media: i2c: ov01a10: Fix test-pattern disabling Hans de Goede
2025-10-15  2:34   ` Bingbu Cao
2025-10-28 12:08   ` Mehdi Djait
2025-10-28 14:38     ` Hans de Goede
2025-10-28 15:38       ` Mehdi Djait
2025-10-28 15:52         ` Hans de Goede
2025-10-29 17:44           ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 07/25] media: i2c: ov01a10: Change default vblank value to a vblank resulting in 30 fps Hans de Goede
2025-10-28 16:57   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 08/25] media: i2c: ov01a10: Convert to new CCI register access helpers Hans de Goede
2025-10-28 17:01   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 09/25] media: i2c: ov01a10: Remove overly verbose probe() error reporting Hans de Goede
2025-10-28 17:02   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 10/25] media: i2c: ov01a10: Store dev pointer in struct ov01a10 Hans de Goede
2025-10-28 17:18   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 11/25] media: i2c: ov01a10: Add ov01a10_check_hwcfg() function Hans de Goede
2025-10-28 17:29   ` Mehdi Djait
2025-10-28 20:09     ` Hans de Goede
2025-10-29 17:30       ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 12/25] media: i2c: ov01a10: Add power on/off sequencing support Hans de Goede
2025-10-28 18:06   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 13/25] media: i2c: ov01a10: Don't update pixel_rate and link_freq from set_fmt Hans de Goede
2025-10-28 18:15   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 14/25] media: i2c: ov01a10: Move setting of ctrl->flags to after checking ctrl_hdlr->error Hans de Goede
2025-10-28 18:18   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 15/25] media: i2c: ov01a10: Use native and default for pixel-array size names Hans de Goede
2025-10-28 19:01   ` Mehdi Djait
2025-10-28 20:19     ` Hans de Goede [this message]
2025-10-14 17:40 ` [PATCH 16/25] media: i2c: ov01a10: Add cropping support / allow arbitrary sizes Hans de Goede
2025-11-06 15:28   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 17/25] media: i2c: ov01a10: Remove struct ov01a10_reg_list Hans de Goede
2025-10-28 19:13   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 18/25] media: i2c: ov01a10: Replace exposure->min/step with direct define use Hans de Goede
2025-10-28 19:19   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 19/25] media: i2c: ov01a10: Only set register 0x0305 once Hans de Goede
2025-10-28 19:25   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 20/25] media: i2c: ov01a10: Remove values set by controls from global_setting[] Hans de Goede
2025-10-29 17:50   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 21/25] media: i2c: ov01a10: Add ov01a10_sensor_cfg struct Hans de Goede
2025-11-06 15:33   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 22/25] media: i2c: ov01a10: Optimize setting h/vflip values Hans de Goede
2025-11-06 15:54   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 23/25] media: i2c: ov01a10: Add ov01a1b support Hans de Goede
2025-11-06 16:16   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 24/25] media: i2c: ov01a10: Add ov01a1s support Hans de Goede
2025-11-06 16:17   ` Mehdi Djait
2025-10-14 17:40 ` [PATCH 25/25] media: i2c: ov01a10: Register tweaks for ov01a1s model Hans de Goede
2025-10-15 10:45   ` kernel test robot
2025-11-07  9:17   ` Mehdi Djait
2025-11-13  9:54     ` Hans de Goede
2025-11-17  8:17       ` Mehdi Djait
2025-10-28 20:06 ` [PATCH 00/25] media: i2c: ov01a10: Add crop, ov01a1b and ov01a1s support Hans de Goede

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=84ba8111-fe54-47f2-a485-1194e50327aa@kernel.org \
    --to=hansg@kernel.org \
    --cc=bingbu.cao@intel.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mehdi.djait@linux.intel.com \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).