From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: johannes.goede@oss.qualcomm.com,
Stefan Klug <stefan.klug@ideasonboard.com>,
libcamera-devel@lists.libcamera.org, linux-media@vger.kernel.org,
Loic Poulain <lpoulain@qti.qualcomm.com>,
Michael Riesch <michael.riesch@collabora.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Subject: Re: [ANNOUNCEMENT] Camera & ISP at Linux Plumbers Conference
Date: Fri, 2 Oct 2026 21:31:05 +0300 [thread overview]
Message-ID: <20261002183105.GA102955@killaraus.ideasonboard.com> (raw)
In-Reply-To: <ar9Vlz3RyCUwW0Ia@valkosipuli.retiisi.eu>
On Fri, Oct 02, 2026 at 09:56:23AM +0300, Sakari Ailus wrote:
> On Thu, Oct 01, 2026 at 11:55:05PM +0300, Laurent Pinchart wrote:
> > Hi Hans,
> >
> > (CC'ing Sakari who may have more insight on ACPI properties for
> > Intel-based machines, or who may be able to pull the right people in
> > this conversation)
> >
> > On Thu, Oct 01, 2026 at 05:15:05PM +0200, johannes.goede@oss.qualcomm.com wrote:
> > > Hi Stefan,
> > >
> > > Thank you for the write-up.
> > >
> > > On 30-Sep-26 13:18, Stefan Klug wrote:
> > >
> > > <snip>
> > >
> > > > ## Diving into the examples
> > > >
> > > > Lets look at the example I listed to see how these would be solved.
> > > >
> > > > ### 1. Laptop with camera module from various manufacturers
> > > >
> > > > I believe this can be solved by either integrating the detection logic
> > > > in libcamera and/or adding rules to udev/hwdb. But we are lacking real
> > > > examples. So if you're able to provide identification strategies for
> > > > real, existing hardware, I'd be glad to know about it. One strategy
> > > > might be to use the machine identifier provided by DMI. This is however
> > > > quite coarse and can not handle cases where the manufacturer used
> > > > different camera modules from different vendors (using the same sensor
> > > > model). ARe there for example ACPI properties that we could query for
> > > > additional information?
> > > >
> > > > Q: Does anyone in this group have more details on which information to
> > > > query and where to get more details from the system?
> > > > A: ...
> > >
> > > For the Intel IPU6/IPU7 methods there is an ACPI call which the kernel
> > > can do on the sensor fwnode object which will return a string identifying
> > > the modules. These strings don't really have any fixed format, typically
> > > they contain something which look like how some laptop serials look
> > > just a random bunch of numbers + capital letters.
> >
> > We know that hardware manufacturers like to have multiple providers for
> > camera modules in the same laptop model in order to avoid supply chain
> > issues. Do you know if this can be confirmed from those strings, do we
> > have enough data to see if the identification strings are made of a
> > small number of clusters ?
>
> These strings are unique to the module. I'm afraid they could even be
> module names as defined by the module vendor.
Does that mean that, if a laptop manufacturer sources camera modules
equipped with the same sensor from different module manufacturers to
diversify its supply chain, a single machine model (as report by DMI)
would use a separate module identification string in ACPI for each
module type ?
> > > Userspace cannot get to this without the kernel exporting it.
> > >
> > > Given all the udev talk, I think a sysfs attribute would make sense
> > > for this. We can make the kernel do the ACPI call and if it is present
> > > add a camera_module sysfs attribute to the v4l2-subdev for the sensor,
> > > which will only be visible when there actually is a module-name.
> > >
> > > On laptops using devicetree we could then fill this from a devicetree
> > > property.
> >
> > I would very much like to standardize the API exposed to userspace
> > across different types of firmwares (ACPI and DT). Having more data
> > about the ACPI side could help us design DT properties that would fit
> > nicely with a single API.
>
> Note that this concerns only the Windows specific ACPI tables. DisCo for
> Imaging (or older Chromebook ACPI tables following Linux specific
> definitions) doesn't specify anything (largely because DT doesn't). Of
> course it'd be nice to change that -- for both.
Understood. The needs are likely the same though, userspace needs to
pick the right tuning data.
Do you know if Intel-based laptops typically ship all tuning files for a
device model in the same file system image and pick the appropriate file
based on data in ACPI tables, or if the system image is tailored to each
SKU and contains only the tuning file for the module used by that
particular machine instance ?
> > > > ### 2. Camera modules with an embedded EEPROM
> > > >
> > > > To make use of the EEPROM data from user space we need to carry two
> > > > elements: The EEPROM data itself and some identifier telling which
> > > > format the data in the EEPROM has. This seems relatively straightforward
> > > > and we could model it like this in dts:
> > > >
> > > > dts-snippet:
> > > > imx283_0: sensor@1a {
> > > > compatible = "sony,imx283";
> > > > ...
> > > > eeprom = <&eeprom>;
> > > > eeprom-format = "vendor-a-eeprom-fmt";
> > > > };
> > > >
> > > > Getting the link to the EEPROM from user space is something to
> > > > investigate. Ideas are either sysfs or media-controller.
> > > > The eeprom-format must be specified as well, to tell user space how to
> > > > interpret the EEPROM data, as it is typically not self-contained.
> > > >
> > > > Q: On a first discussion on that topic we were unsure if it would be
> > > > preferred to expose the data directly in sysfs,
> > > > or to symlink to the corresponding sysfs entry for the EEPROM. Any
> > > > preferences?
> > > > A: ...
> > > >
> > > > Q: Any input/things to consider from ACPI side?
> > > > A:
> > >
> > > For IPU6/IPU7 eeprom data is not used for camera-module identification
> > > (AFAIK), it is all done through the (custom, Intel specific) ACPI call
> > > I mentioned above.
> >
> > I wouldn't expect an EEPROM, that would be quite costly for little gain.
> > I wonder if sensor OTP memory is typically used though. Some sensor
> > manufacturers specify how to store calibration data there, such as lens
> > shading tables for instance. I wonder if anyone puts the same data in
> > ACPI tables.
>
> To my knowledge there's no tuning data in system firmware on Intel x86
> systems. That could change in the future of course, but it's perhaps
> unlikely, due to logistical issues.
That's my guess too.
I half recall that Linux-based Nokia phones contained camera tuning data
in a special flash partition, but I don't have much details.
> > > > Q: What happens if the EEPROM driver is not loaded yet or is just not
> > > > available? Should it block/defer probing of the sensor?
> > > > A:
> > > >
> > > > Q: We are missing real-life examples for these cases. So input from
> > > > vendors would be welcome.
> > > > A:
> > > <snip>
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2026-10-02 18:31 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <UzpC1s2YnBtZIaRCab_Y8AbCecyauDUO4OC7Nhd1-h4TE21aLSghbwDuOKgdwJQugvPMjM4foPHuL-UKnBLD6A==@protonmail.internalid>
2026-09-14 23:38 ` [ANNOUNCEMENT] Camera & ISP at Linux Plumbers Conference Laurent Pinchart
2026-09-17 13:47 ` Bryan O'Donoghue
2026-09-18 8:08 ` johannes.goede
2026-09-18 9:18 ` Laurent Pinchart
2026-09-19 21:45 ` Bryan O'Donoghue
2026-09-19 22:29 ` Laurent Pinchart
2026-09-21 11:52 ` Bryan O'Donoghue
2026-09-21 16:02 ` Nicolas Dufresne
2026-09-27 9:01 ` johannes.goede
2026-09-27 9:04 ` johannes.goede
2026-09-30 11:18 ` Stefan Klug
2026-09-30 22:01 ` Conor Dooley
2026-10-02 16:14 ` Stefan Klug
2026-10-03 14:56 ` Loic Poulain
2026-10-01 15:15 ` johannes.goede
2026-10-01 20:55 ` Laurent Pinchart
2026-10-02 6:56 ` Sakari Ailus
2026-10-02 18:31 ` Laurent Pinchart [this message]
2026-10-06 10:03 ` Sakari Ailus
[not found] ` <2e1d628f-8183-4446-9500-9886561f320b@mm-sol.com>
2026-09-30 23:23 ` Laurent Pinchart
2026-10-06 6:30 ` Gjorgji Rosikopulos
2026-10-01 6:19 ` Rishikesh Donadkar
2026-10-01 21:08 ` Laurent Pinchart
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=20261002183105.GA102955@killaraus.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=conor+dt@kernel.org \
--cc=johannes.goede@oss.qualcomm.com \
--cc=krzk+dt@kernel.org \
--cc=libcamera-devel@lists.libcamera.org \
--cc=linux-media@vger.kernel.org \
--cc=lpoulain@qti.qualcomm.com \
--cc=michael.riesch@collabora.com \
--cc=robh@kernel.org \
--cc=sakari.ailus@iki.fi \
--cc=stefan.klug@ideasonboard.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