summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHan-Lin Chen <hanlinchen@chromium.org>2021-10-29 19:59:14 +0800
committerJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-11-15 10:49:13 +0100
commitf12efa6730645ba5a9a6c05ea182824ced2a0c3f (patch)
treef19d99fefee81bfe640bcf7627ca52390e381f99
parent6b288f8f4f53edf90cc7ab22fc41c7edaa69e123 (diff)
ipa: ipu3: Extend ipu3 ipa interface for sensor controls
IPU3Event and IPU3Action use single ControlList for both libcamera and V4L2 controls, and it's content could be either one based on the context. Extend IPU3Event and IPU3Action for sensor V4L2 controls, and preserve the original one for only libcamera Controls to make the content of an event more specific. Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org> [Jean-Michel: remove lensControls from the original patch] Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
-rw-r--r--include/libcamera/ipa/ipu3.mojom2
-rw-r--r--src/ipa/ipu3/ipu3.cpp2
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp2
3 files changed, 4 insertions, 2 deletions
diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom
index 2f254ed4..16e3462e 100644
--- a/include/libcamera/ipa/ipu3.mojom
+++ b/include/libcamera/ipa/ipu3.mojom
@@ -23,11 +23,13 @@ struct IPU3Event {
int64 frameTimestamp;
uint32 bufferId;
libcamera.ControlList controls;
+ libcamera.ControlList sensorControls;
};
struct IPU3Action {
IPU3Operations op;
libcamera.ControlList controls;
+ libcamera.ControlList sensorControls;
};
struct IPAConfigInfo {
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index 93b700bd..bcc3863b 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -653,7 +653,7 @@ void IPAIPU3::setControls(unsigned int frame)
ControlList ctrls(ctrls_);
ctrls.set(V4L2_CID_EXPOSURE, static_cast<int32_t>(exposure_));
ctrls.set(V4L2_CID_ANALOGUE_GAIN, static_cast<int32_t>(gain_));
- op.controls = ctrls;
+ op.sensorControls = ctrls;
queueFrameAction.emit(frame, op);
}
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 3cd7383f..75fb2d90 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -1248,7 +1248,7 @@ void IPU3CameraData::queueFrameAction(unsigned int id,
{
switch (action.op) {
case ipa::ipu3::ActionSetSensorControls: {
- const ControlList &controls = action.controls;
+ const ControlList &controls = action.sensorControls;
delayedCtrls_->push(controls);
break;
}