From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: Maurizio Casciano <mauriziocasciano7@gmail.com>
Cc: linux-media@vger.kernel.org,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Bingbu Cao <bingbu.cao@amd.com>,
Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
Nicholas Roth <nicholas@rothemail.net>,
Andy Shevchenko <andy@kernel.org>,
Hans de Goede <hansg@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jose Maria Martin <jmmartinf@hotmail.com>,
linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 7/8] media: atomisp: allow opt-in raw Bayer capture
Date: Thu, 27 Aug 2026 17:43:08 +0300 [thread overview]
Message-ID: <apBM_BTkHcTgM8m_@ashevche-desk.local> (raw)
In-Reply-To: <20260826132256.3343451-8-mauriziocasciano7@gmail.com>
On Wed, Aug 26, 2026 at 03:22:55PM +0200, Maurizio Casciano wrote:
> AtomISP currently rejects all raw formats and silently substitutes
> YUV420. This prevents userspace camera processing stacks from obtaining
> unprocessed sensor frames.
>
> Add an allow_raw_output module parameter, disabled by default. When it is
> enabled, enumerate only the raw format matching the sensor media-bus code
> and reconcile raw format requests with the code selected by the sensor.
>
> Also apply the per-sensor padding discovered by the CSI-2 bridge when
> enumerating and negotiating frame sizes. Existing systems retain the
> global padding and raw-output defaults.
>
> Tested on a Lenovo Yoga Book YB1-X91L with raw capture from its OV2740
> and OV8858 sensors.
...
> u32 min_pad_w = ISP2400_MIN_PAD_W;
> u32 min_pad_h = ISP2400_MIN_PAD_H;
> struct v4l2_mbus_framefmt *sink;
> + u32 input_padding_w = input->padding_override ?
> + input->padding_w : pad_w;
> + u32 input_padding_h = input->padding_override ?
> + input->padding_h : pad_h;
It's the same condition, split to if-else.
if (input->padding_override) {
input_padding_w = input->padding_w;
input_padding_h = input->padding_h;
} else {
input_padding_w = pad_w;
input_padding_h = pad_h;
}
> if (!input->crop_support) {
> - *padding_w = pad_w;
> - *padding_h = pad_h;
> + *padding_w = input_padding_w;
> + *padding_h = input_padding_h;
> return;
> }
Or maybe you can update pad_w and pad_h instead and leave this and might be
other code alone?
...
> +++ b/drivers/staging/media/atomisp/pci/atomisp_internal.h
> #define ATOMISP_CSS_SUPPORT_YUVPP 1
>
> #define ATOMISP_CSS_OUTPUT_SECOND_INDEX 1
> +
> +extern bool atomisp_allow_raw_output;
> +
Location of this doesn't look right. Find a better one.
> #define ATOMISP_CSS_OUTPUT_DEFAULT_INDEX 0
...
> struct atomisp_input_subdev {
> enum atomisp_camera_port port;
> u32 code; /* MEDIA_BUS_FMT_* */
> + u32 padding_w;
> + u32 padding_h;
Why not struct v4l2_area?
> + bool padding_override;
> bool binning_support;
> bool crop_support;
> bool sensor_on;
...
> - if (format->sh_fmt == IA_CSS_FRAME_FORMAT_RAW)
> - continue;
> + if (format->sh_fmt == IA_CSS_FRAME_FORMAT_RAW) {
> + if (!atomisp_allow_raw_output ||
> + format->mbus_code != code.code)
> + continue;
> + }
if (a) { if (b) { ... }} is equivalent to if (a && b) { ... }.
...
> +bool atomisp_allow_raw_output;
> +module_param_named(allow_raw_output, atomisp_allow_raw_output, bool, 0644);
> +MODULE_PARM_DESC(allow_raw_output,
> + "allow experimental raw Bayer output (default:false)");
Why do we need this? Can it be enabled a run-time via IOCTL or other means
of ABI?
...
> + input->padding_override =
> + atomisp_csi2_get_sensor_padding(input->sensor->dev,
> + &input->padding_w,
> + &input->padding_h);
Make a pointer to a struct v4l2_area to be filled by this function.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2026-08-27 14:43 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-26 13:22 [PATCH 0/8] media: Add Lenovo Yoga Book YB1-X91 camera support Maurizio Casciano
2026-08-26 13:22 ` [PATCH 1/8] media: ov8858: support 19.2 MHz clock and CHT gain setup Maurizio Casciano
2026-08-27 9:40 ` Andy Shevchenko
2026-08-27 11:59 ` Sakari Ailus
2026-08-27 18:19 ` Maurizio Casciano
2026-08-26 13:22 ` [PATCH 2/8] media: i2c: Add Yoga Book camera ACPI IDs Maurizio Casciano
2026-08-27 9:58 ` Andy Shevchenko
2026-08-27 12:14 ` Sakari Ailus
2026-08-27 12:46 ` Andy Shevchenko
2026-08-27 18:19 ` Maurizio Casciano
2026-08-27 23:18 ` Maurizio Casciano
2026-08-27 12:13 ` Sakari Ailus
2026-08-26 13:22 ` [PATCH 3/8] media: intel: ipu-bridge: Add Yoga Book camera sensors Maurizio Casciano
2026-08-26 13:22 ` [PATCH 4/8] media: atomisp: Add Yoga Book camera configuration Maurizio Casciano
2026-08-26 13:22 ` [PATCH 5/8] media: atomisp: support the Yoga Book OV2740 link Maurizio Casciano
2026-08-27 14:26 ` Andy Shevchenko
2026-08-27 23:18 ` Maurizio Casciano
2026-08-26 13:22 ` [PATCH 6/8] media: ov2740: add manual white balance controls Maurizio Casciano
2026-08-27 3:13 ` Cao, Bingbu
2026-08-27 18:19 ` Maurizio Casciano
2026-08-27 14:32 ` Andy Shevchenko
2026-08-26 13:22 ` [PATCH 7/8] media: atomisp: allow opt-in raw Bayer capture Maurizio Casciano
2026-08-27 14:43 ` Andy Shevchenko [this message]
2026-08-26 13:22 ` [PATCH 8/8] media: i2c: Add WV517S lens actuator driver Maurizio Casciano
2026-08-27 12:30 ` Sakari Ailus
2026-08-27 18:19 ` Maurizio Casciano
2026-08-27 18:17 ` [PATCH v2 00/11] media: Add Lenovo Yoga Book YB1-X91 camera support Maurizio Casciano
2026-08-27 18:17 ` [PATCH v2 01/11] media: ov8858: Extract digital gain programming Maurizio Casciano
2026-08-27 18:17 ` [PATCH v2 02/11] media: ov8858: support 19.2 MHz clock and CHT gain setup Maurizio Casciano
2026-08-27 19:46 ` Andy Shevchenko
2026-08-27 23:18 ` Maurizio Casciano
2026-08-28 7:28 ` Sakari Ailus
2026-08-28 7:48 ` Andy Shevchenko
2026-08-27 18:17 ` [PATCH v2 03/11] media: ov2740: Use C99 initializers for ACPI IDs Maurizio Casciano
2026-08-27 19:47 ` Andy Shevchenko
2026-08-27 18:17 ` [PATCH v2 04/11] media: ov2740: Add OVTI2740 ACPI ID Maurizio Casciano
2026-08-27 18:17 ` [PATCH v2 05/11] media: ov8858: Add INT3477 " Maurizio Casciano
2026-08-28 11:21 ` Sakari Ailus
2026-08-28 13:24 ` Andy Shevchenko
2026-08-28 13:31 ` Andy Shevchenko
2026-08-27 18:17 ` [PATCH v2 06/11] media: intel: ipu-bridge: Add Yoga Book camera sensors Maurizio Casciano
2026-08-27 18:17 ` [PATCH v2 07/11] media: atomisp: Add Yoga Book camera configuration Maurizio Casciano
2026-08-27 18:17 ` [PATCH v2 08/11] media: atomisp: support the Yoga Book OV2740 link Maurizio Casciano
2026-08-27 19:57 ` Andy Shevchenko
2026-08-28 11:37 ` Sakari Ailus
2026-08-28 11:42 ` Sakari Ailus
2026-08-27 18:17 ` [PATCH v2 09/11] media: ov2740: add manual white balance controls Maurizio Casciano
2026-08-27 20:03 ` Andy Shevchenko
2026-08-27 18:17 ` [PATCH v2 10/11] media: atomisp: allow raw Bayer capture Maurizio Casciano
2026-08-27 20:24 ` Andy Shevchenko
2026-08-27 18:17 ` [PATCH v2 11/11] media: i2c: Add WV517S lens actuator driver Maurizio Casciano
2026-08-27 20:31 ` Andy Shevchenko
2026-08-27 18:58 ` [PATCH v2 00/11] media: Add Lenovo Yoga Book YB1-X91 camera support Andy Shevchenko
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=apBM_BTkHcTgM8m_@ashevche-desk.local \
--to=andriy.shevchenko@intel.com \
--cc=andy@kernel.org \
--cc=bingbu.cao@amd.com \
--cc=gregkh@linuxfoundation.org \
--cc=hansg@kernel.org \
--cc=jacopo.mondi@ideasonboard.com \
--cc=jmmartinf@hotmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=mauriziocasciano7@gmail.com \
--cc=mchehab@kernel.org \
--cc=nicholas@rothemail.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.