| Message ID | 20260618-imx678-v1-1-646e09a63692@ideasonboard.com |
|---|---|
| State | Superseded, archived |
| Headers | show |
| Series |
|
| Related | show |
Hi Jai, Thank you for the patch. On Thu, Jun 18, 2026 at 05:18:39PM +0530, Jai Luthra wrote: > Add Sony IMX678 properties, along with the black level and gain model > through a libipa camera sensor helper. > > The test patterns are intentionally left empty, as they are similar to > IMX335/IMX283 and don't map very well to libcamera's enum values. We will probably need to introduce more test patterns in the future. > Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > src/ipa/libipa/camera_sensor_helper.cpp | 12 ++++++++++++ > src/libcamera/sensor/camera_sensor_properties.cpp | 10 ++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp > index 3028197e1..9ab7a52f2 100644 > --- a/src/ipa/libipa/camera_sensor_helper.cpp > +++ b/src/ipa/libipa/camera_sensor_helper.cpp > @@ -642,6 +642,18 @@ public: > }; > REGISTER_CAMERA_SENSOR_HELPER("imx477", CameraSensorHelperImx477) > > +class CameraSensorHelperImx678 : public CameraSensorHelper > +{ > +public: > + CameraSensorHelperImx678() > + { > + /* From datasheet: 0x32 at 10bits. */ > + blackLevel_ = 3200; > + gain_ = AnalogueGainExp{ 1.0, expGainDb(0.3) }; > + } > +}; > +REGISTER_CAMERA_SENSOR_HELPER("imx678", CameraSensorHelperImx678) > + > class CameraSensorHelperImx708 : public CameraSensorHelper > { > public: > diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp > index b217363d8..28043150e 100644 > --- a/src/libcamera/sensor/camera_sensor_properties.cpp > +++ b/src/libcamera/sensor/camera_sensor_properties.cpp > @@ -309,6 +309,16 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen > .hblankDelay = 3 > }, > } }, > + { "imx678", { > + .unitCellSize = { 2000, 2000 }, > + .testPatternModes = {}, > + .sensorDelays = { > + .exposureDelay = 2, > + .gainDelay = 2, > + .vblankDelay = 2, > + .hblankDelay = 2 > + }, > + } }, > { "imx708", { > .unitCellSize = { 1400, 1400 }, > .testPatternModes = {
Quoting Jai Luthra (2026-06-18 12:48:39) > Add Sony IMX678 properties, along with the black level and gain model > through a libipa camera sensor helper. > > The test patterns are intentionally left empty, as they are similar to > IMX335/IMX283 and don't map very well to libcamera's enum values. > > Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > --- > src/ipa/libipa/camera_sensor_helper.cpp | 12 ++++++++++++ > src/libcamera/sensor/camera_sensor_properties.cpp | 10 ++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp > index 3028197e1..9ab7a52f2 100644 > --- a/src/ipa/libipa/camera_sensor_helper.cpp > +++ b/src/ipa/libipa/camera_sensor_helper.cpp > @@ -642,6 +642,18 @@ public: > }; > REGISTER_CAMERA_SENSOR_HELPER("imx477", CameraSensorHelperImx477) > > +class CameraSensorHelperImx678 : public CameraSensorHelper > +{ > +public: > + CameraSensorHelperImx678() > + { > + /* From datasheet: 0x32 at 10bits. */ > + blackLevel_ = 3200; > + gain_ = AnalogueGainExp{ 1.0, expGainDb(0.3) }; > + } > +}; > +REGISTER_CAMERA_SENSOR_HELPER("imx678", CameraSensorHelperImx678) > + > class CameraSensorHelperImx708 : public CameraSensorHelper > { > public: > diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp > index b217363d8..28043150e 100644 > --- a/src/libcamera/sensor/camera_sensor_properties.cpp > +++ b/src/libcamera/sensor/camera_sensor_properties.cpp > @@ -309,6 +309,16 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen > .hblankDelay = 3 > }, > } }, > + { "imx678", { > + .unitCellSize = { 2000, 2000 }, > + .testPatternModes = {}, > + .sensorDelays = { > + .exposureDelay = 2, > + .gainDelay = 2, > + .vblankDelay = 2, > + .hblankDelay = 2 > + }, > + } }, > { "imx708", { > .unitCellSize = { 1400, 1400 }, > .testPatternModes = { > > -- > 2.54.0 >
diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp index 3028197e1..9ab7a52f2 100644 --- a/src/ipa/libipa/camera_sensor_helper.cpp +++ b/src/ipa/libipa/camera_sensor_helper.cpp @@ -642,6 +642,18 @@ public: }; REGISTER_CAMERA_SENSOR_HELPER("imx477", CameraSensorHelperImx477) +class CameraSensorHelperImx678 : public CameraSensorHelper +{ +public: + CameraSensorHelperImx678() + { + /* From datasheet: 0x32 at 10bits. */ + blackLevel_ = 3200; + gain_ = AnalogueGainExp{ 1.0, expGainDb(0.3) }; + } +}; +REGISTER_CAMERA_SENSOR_HELPER("imx678", CameraSensorHelperImx678) + class CameraSensorHelperImx708 : public CameraSensorHelper { public: diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp index b217363d8..28043150e 100644 --- a/src/libcamera/sensor/camera_sensor_properties.cpp +++ b/src/libcamera/sensor/camera_sensor_properties.cpp @@ -309,6 +309,16 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen .hblankDelay = 3 }, } }, + { "imx678", { + .unitCellSize = { 2000, 2000 }, + .testPatternModes = {}, + .sensorDelays = { + .exposureDelay = 2, + .gainDelay = 2, + .vblankDelay = 2, + .hblankDelay = 2 + }, + } }, { "imx708", { .unitCellSize = { 1400, 1400 }, .testPatternModes = {
Add Sony IMX678 properties, along with the black level and gain model through a libipa camera sensor helper. The test patterns are intentionally left empty, as they are similar to IMX335/IMX283 and don't map very well to libcamera's enum values. Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com> --- src/ipa/libipa/camera_sensor_helper.cpp | 12 ++++++++++++ src/libcamera/sensor/camera_sensor_properties.cpp | 10 ++++++++++ 2 files changed, 22 insertions(+)