summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUmang Jain <umang.jain@ideasonboard.com>2021-08-04 18:55:26 +0530
committerUmang Jain <umang.jain@ideasonboard.com>2021-08-09 11:02:14 +0530
commit0536a9aa7189f75c898c3bffbb8d6c8bb147557f (patch)
treeab0a6776567831e9552cd133414ba6484c833259
parent36b10b93b198680741986efee6e4a10b3ad037e1 (diff)
ipu3: Disallow raw only camera configuration
To capture raw frames, the ImgU isn't needed. However, to implement auto-exposure, we do need to configure the IPA since it shall setup the sensor controls (exposure, vblank and so on) for the capture. One cannot simply configure the IPA, without the ImgU as the parameters and statistics buffer passed to the IPA are actually managed by the ImgU. Until we prepare and setup the ImgU to run an internal queue for raw-only camera configuration, disallow this configuration and report it as invalid. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 76c3bb3d..19cb5c4e 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -248,6 +248,20 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate()
if (rawCount > 1 || yuvCount > 2) {
LOG(IPU3, Debug) << "Camera configuration not supported";
return Invalid;
+ } else if (rawCount && !yuvCount) {
+ /*
+ * Disallow raw-only camera configuration. Currently, ImgU does
+ * not get configured for raw-only streams and has early return
+ * in configure(). To support raw-only stream, we do need the IPA
+ * to get configured since it will setup the sensor controls for
+ * the capture.
+ *
+ * \todo Configure the ImgU with internal buffers which will enable
+ * the IPA to get configured for the raw-only camera configuration.
+ */
+ LOG(IPU3, Debug)
+ << "Camera configuration cannot support raw-only streams";
+ return Invalid;
}
/*