From 54340ef70f7ece5354dd4b62cecf833da400fdd9 Mon Sep 17 00:00:00 2001
From: Naushir Patuck <naush@raspberrypi.com>
Date: Mon, 5 Jun 2023 09:26:04 +0100
Subject: camera_sensor: ipa: core: Add CFA pattern to IPACameraSensorInfo

Add a new cfaPattern field to the IPACameraSensorInfo to pass the
CFA/Bayer pattern for the current sensor configuration to the IPA.
This field takes a value from properties::draft::ColorFilterArrangementEnum.

Populate cfaPattern in CameraSensor::sensorInfo(), called by the
pipeline handler before it calls ipa->init() and ipa->config().

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 include/libcamera/ipa/core.mojom | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'include')

diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom
index 5cef340d..bce79724 100644
--- a/include/libcamera/ipa/core.mojom
+++ b/include/libcamera/ipa/core.mojom
@@ -140,6 +140,18 @@ module libcamera;
  * image sensor
  */
 
+/**
+ * \var IPACameraSensorInfo::cfaPattern
+ * \brief The arrangement of colour filters on the image sensor
+ *
+ * This takes a value defined by properties::draft::ColorFilterArrangementEnum.
+ * For non-Bayer colour sensors, the cfaPattern will be set to
+ * properties::draft::ColorFilterArrangementEnum::RGB.
+ *
+ * \todo Make this variable optional once mojom supports it, instead of using
+ * RGB for sensors that don't have a CFA.
+ */
+
 /**
  * \var IPACameraSensorInfo::activeAreaSize
  * \brief The size of the pixel array active area of the sensor
@@ -229,6 +241,7 @@ struct IPACameraSensorInfo {
 	string model;
 
 	uint32 bitsPerPixel;
+	uint32 cfaPattern;
 
 	Size activeAreaSize;
 	Rectangle analogCrop;
-- 
cgit v1.2.1