[1/2] libcamera: libipa: camera_sensor: Add Sony IMX283 sensor properties
diff mbox series

Message ID 20240319151121.561588-2-kieran.bingham@ideasonboard.com
State New
Headers show
Series
  • ipa: Add support for the Sony IMX283 Camera Sensor.
Related show

Commit Message

Kieran Bingham March 19, 2024, 3:11 p.m. UTC
Provide the IMX283 camera sensor properties and registration
with libipa for the gain code helpers.

The test patterns exposed by the IMX283 do not map well to the current
set of test pattern controls supplied by libcamera. These are left
inentionally unimplemented.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
 src/ipa/libipa/camera_sensor_helper.cpp           | 11 +++++++++++
 src/libcamera/sensor/camera_sensor_properties.cpp |  4 ++++
 2 files changed, 15 insertions(+)

Comments

Laurent Pinchart March 19, 2024, 9:35 p.m. UTC | #1
Hi Kieran,

Thank you for the patch.

On Tue, Mar 19, 2024 at 03:11:20PM +0000, Kieran Bingham wrote:
> Provide the IMX283 camera sensor properties and registration
> with libipa for the gain code helpers.
> 
> The test patterns exposed by the IMX283 do not map well to the current
> set of test pattern controls supplied by libcamera. These are left
> inentionally unimplemented.

intentionally

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> ---
>  src/ipa/libipa/camera_sensor_helper.cpp           | 11 +++++++++++
>  src/libcamera/sensor/camera_sensor_properties.cpp |  4 ++++
>  2 files changed, 15 insertions(+)
> 
> diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
> index ce29f423e712..f70d898fa94d 100644
> --- a/src/ipa/libipa/camera_sensor_helper.cpp
> +++ b/src/ipa/libipa/camera_sensor_helper.cpp
> @@ -417,6 +417,17 @@ public:
>  };
>  REGISTER_CAMERA_SENSOR_HELPER("imx258", CameraSensorHelperImx258)
>  
> +class CameraSensorHelperImx283 : public CameraSensorHelper
> +{
> +public:
> +	CameraSensorHelperImx283()
> +	{
> +		gainType_ = AnalogueGainLinear;
> +		gainConstants_.linear = { 0, 2048, -1, 2048 };
> +	}
> +};
> +REGISTER_CAMERA_SENSOR_HELPER("imx283", CameraSensorHelperImx283)
> +
>  class CameraSensorHelperImx290 : public CameraSensorHelper
>  {
>  public:
> diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
> index 6e28b09e6655..4eabbbdae585 100644
> --- a/src/libcamera/sensor/camera_sensor_properties.cpp
> +++ b/src/libcamera/sensor/camera_sensor_properties.cpp
> @@ -99,6 +99,10 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
>  				{ controls::draft::TestPatternModePn9, 4 },
>  			},
>  		} },
> +		{ "imx283", {
> +			.unitCellSize = { 2400, 2400 },
> +			.testPatternModes = {},
> +		} },
>  		{ "imx290", {
>  			.unitCellSize = { 2900, 2900 },
>  			.testPatternModes = {},

Patch
diff mbox series

diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
index ce29f423e712..f70d898fa94d 100644
--- a/src/ipa/libipa/camera_sensor_helper.cpp
+++ b/src/ipa/libipa/camera_sensor_helper.cpp
@@ -417,6 +417,17 @@  public:
 };
 REGISTER_CAMERA_SENSOR_HELPER("imx258", CameraSensorHelperImx258)
 
+class CameraSensorHelperImx283 : public CameraSensorHelper
+{
+public:
+	CameraSensorHelperImx283()
+	{
+		gainType_ = AnalogueGainLinear;
+		gainConstants_.linear = { 0, 2048, -1, 2048 };
+	}
+};
+REGISTER_CAMERA_SENSOR_HELPER("imx283", CameraSensorHelperImx283)
+
 class CameraSensorHelperImx290 : public CameraSensorHelper
 {
 public:
diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
index 6e28b09e6655..4eabbbdae585 100644
--- a/src/libcamera/sensor/camera_sensor_properties.cpp
+++ b/src/libcamera/sensor/camera_sensor_properties.cpp
@@ -99,6 +99,10 @@  const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
 				{ controls::draft::TestPatternModePn9, 4 },
 			},
 		} },
+		{ "imx283", {
+			.unitCellSize = { 2400, 2400 },
+			.testPatternModes = {},
+		} },
 		{ "imx290", {
 			.unitCellSize = { 2900, 2900 },
 			.testPatternModes = {},