[RFC,v2] libipa: camera_sensor_helper: Add imx708
diff mbox series

Message ID 20251024075459.1200809-1-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • [RFC,v2] libipa: camera_sensor_helper: Add imx708
Related show

Commit Message

Barnabás Pőcze Oct. 24, 2025, 7:54 a.m. UTC
From: Daniel Scally <dan.scally@ideasonboard.com>

The imx708 sensor driver has long been available, especially in raspberry
pi kernels; and the raspberry pi ipa module has had the corresponding
helper class since 2023 (952ef94ed78d71). The camera sensor properties
database also has an entry for it (2fb0f250196326), but the camera sensor
helper class is missing from the common libipa component. So add it, with
the same gain formula as the raspberry pi ipa module.

Handling the raspberry pi specific "wide" / "noir" suffixes is omitted.
They are not present in the camera sensor properties database either.

Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
[Extend commit message.]
Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
---
changes in v2:
  * drop rpi specific suffixes

v1: https://patchwork.libcamera.org/patch/24708/
---
 src/ipa/libipa/camera_sensor_helper.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

--
2.51.1.dirty

Comments

Kieran Bingham Oct. 24, 2025, 8:24 a.m. UTC | #1
Quoting Barnabás Pőcze (2025-10-24 08:54:59)
> From: Daniel Scally <dan.scally@ideasonboard.com>
> 
> The imx708 sensor driver has long been available, especially in raspberry
> pi kernels; and the raspberry pi ipa module has had the corresponding
> helper class since 2023 (952ef94ed78d71). The camera sensor properties
> database also has an entry for it (2fb0f250196326), but the camera sensor
> helper class is missing from the common libipa component. So add it, with
> the same gain formula as the raspberry pi ipa module.
> 
> Handling the raspberry pi specific "wide" / "noir" suffixes is omitted.
> They are not present in the camera sensor properties database either.
> 
> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
> [Extend commit message.]
> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
> ---
> changes in v2:
>   * drop rpi specific suffixes
> 
> v1: https://patchwork.libcamera.org/patch/24708/
> ---
>  src/ipa/libipa/camera_sensor_helper.cpp | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
> index ef3bd0d62..1f2a95e56 100644
> --- a/src/ipa/libipa/camera_sensor_helper.cpp
> +++ b/src/ipa/libipa/camera_sensor_helper.cpp
> @@ -642,6 +642,16 @@ public:
>  };
>  REGISTER_CAMERA_SENSOR_HELPER("imx477", CameraSensorHelperImx477)
> 
> +class CameraSensorHelperImx708 : public CameraSensorHelper
> +{
> +public:
> +       CameraSensorHelperImx708()
> +       {

Can you add the blackLevel_ in here please? I expect it can be obtained
from the Raspberry Pi tuning files.

> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };
> +       }
> +};
> +REGISTER_CAMERA_SENSOR_HELPER("imx708", CameraSensorHelperImx708)
> +
>  class CameraSensorHelperOv2685 : public CameraSensorHelper
>  {
>  public:
> --
> 2.51.1.dirty
Barnabás Pőcze Oct. 24, 2025, 8:37 a.m. UTC | #2
2025. 10. 24. 10:24 keltezéssel, Kieran Bingham írta:
> Quoting Barnabás Pőcze (2025-10-24 08:54:59)
>> From: Daniel Scally <dan.scally@ideasonboard.com>
>>
>> The imx708 sensor driver has long been available, especially in raspberry
>> pi kernels; and the raspberry pi ipa module has had the corresponding
>> helper class since 2023 (952ef94ed78d71). The camera sensor properties
>> database also has an entry for it (2fb0f250196326), but the camera sensor
>> helper class is missing from the common libipa component. So add it, with
>> the same gain formula as the raspberry pi ipa module.
>>
>> Handling the raspberry pi specific "wide" / "noir" suffixes is omitted.
>> They are not present in the camera sensor properties database either.
>>
>> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
>> [Extend commit message.]
>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
>> ---
>> changes in v2:
>>    * drop rpi specific suffixes
>>
>> v1: https://patchwork.libcamera.org/patch/24708/
>> ---
>>   src/ipa/libipa/camera_sensor_helper.cpp | 10 ++++++++++
>>   1 file changed, 10 insertions(+)
>>
>> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
>> index ef3bd0d62..1f2a95e56 100644
>> --- a/src/ipa/libipa/camera_sensor_helper.cpp
>> +++ b/src/ipa/libipa/camera_sensor_helper.cpp
>> @@ -642,6 +642,16 @@ public:
>>   };
>>   REGISTER_CAMERA_SENSOR_HELPER("imx477", CameraSensorHelperImx477)
>>
>> +class CameraSensorHelperImx708 : public CameraSensorHelper
>> +{
>> +public:
>> +       CameraSensorHelperImx708()
>> +       {
> 
> Can you add the blackLevel_ in here please? I expect it can be obtained
> from the Raspberry Pi tuning files.

Ahh, you're right, there is that as well. I will add:

   blackLevel_ = 4096;


> 
>> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };
>> +       }
>> +};
>> +REGISTER_CAMERA_SENSOR_HELPER("imx708", CameraSensorHelperImx708)
>> +
>>   class CameraSensorHelperOv2685 : public CameraSensorHelper
>>   {
>>   public:
>> --
>> 2.51.1.dirty
Kieran Bingham Oct. 24, 2025, 8:43 a.m. UTC | #3
Quoting Barnabás Pőcze (2025-10-24 09:37:41)
> 2025. 10. 24. 10:24 keltezéssel, Kieran Bingham írta:
> > Quoting Barnabás Pőcze (2025-10-24 08:54:59)
> >> From: Daniel Scally <dan.scally@ideasonboard.com>
> >>
> >> The imx708 sensor driver has long been available, especially in raspberry
> >> pi kernels; and the raspberry pi ipa module has had the corresponding
> >> helper class since 2023 (952ef94ed78d71). The camera sensor properties
> >> database also has an entry for it (2fb0f250196326), but the camera sensor
> >> helper class is missing from the common libipa component. So add it, with
> >> the same gain formula as the raspberry pi ipa module.
> >>
> >> Handling the raspberry pi specific "wide" / "noir" suffixes is omitted.
> >> They are not present in the camera sensor properties database either.
> >>
> >> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
> >> [Extend commit message.]
> >> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
> >> ---
> >> changes in v2:
> >>    * drop rpi specific suffixes
> >>
> >> v1: https://patchwork.libcamera.org/patch/24708/
> >> ---
> >>   src/ipa/libipa/camera_sensor_helper.cpp | 10 ++++++++++
> >>   1 file changed, 10 insertions(+)
> >>
> >> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
> >> index ef3bd0d62..1f2a95e56 100644
> >> --- a/src/ipa/libipa/camera_sensor_helper.cpp
> >> +++ b/src/ipa/libipa/camera_sensor_helper.cpp
> >> @@ -642,6 +642,16 @@ public:
> >>   };
> >>   REGISTER_CAMERA_SENSOR_HELPER("imx477", CameraSensorHelperImx477)
> >>
> >> +class CameraSensorHelperImx708 : public CameraSensorHelper
> >> +{
> >> +public:
> >> +       CameraSensorHelperImx708()
> >> +       {
> > 
> > Can you add the blackLevel_ in here please? I expect it can be obtained
> > from the Raspberry Pi tuning files.
> 
> Ahh, you're right, there is that as well. I will add:
> 
>    blackLevel_ = 4096;

With that:

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> 
> 
> > 
> >> +               gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };
> >> +       }
> >> +};
> >> +REGISTER_CAMERA_SENSOR_HELPER("imx708", CameraSensorHelperImx708)
> >> +
> >>   class CameraSensorHelperOv2685 : public CameraSensorHelper
> >>   {
> >>   public:
> >> --
> >> 2.51.1.dirty
>

Patch
diff mbox series

diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
index ef3bd0d62..1f2a95e56 100644
--- a/src/ipa/libipa/camera_sensor_helper.cpp
+++ b/src/ipa/libipa/camera_sensor_helper.cpp
@@ -642,6 +642,16 @@  public:
 };
 REGISTER_CAMERA_SENSOR_HELPER("imx477", CameraSensorHelperImx477)

+class CameraSensorHelperImx708 : public CameraSensorHelper
+{
+public:
+	CameraSensorHelperImx708()
+	{
+		gain_ = AnalogueGainLinear{ 0, 1024, -1, 1024 };
+	}
+};
+REGISTER_CAMERA_SENSOR_HELPER("imx708", CameraSensorHelperImx708)
+
 class CameraSensorHelperOv2685 : public CameraSensorHelper
 {
 public: