summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/pipeline/raspberrypi/raspberrypi.cpp')
-rw-r--r--src/libcamera/pipeline/raspberrypi/raspberrypi.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 0f01ce8f..41f1cbff 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -1260,16 +1260,15 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
if (result.params & ipa::RPi::ConfigSensorParams) {
/*
* Setup our delayed control writer with the sensor default
- * gain and exposure delays.
+ * gain and exposure delays. Mark VBLANK for priority write.
*/
- std::unordered_map<uint32_t, unsigned int> delays = {
- { V4L2_CID_ANALOGUE_GAIN, result.sensorConfig.gainDelay },
- { V4L2_CID_EXPOSURE, result.sensorConfig.exposureDelay },
- { V4L2_CID_VBLANK, result.sensorConfig.vblankDelay }
+ std::unordered_map<uint32_t, DelayedControls::ControlParams> params = {
+ { V4L2_CID_ANALOGUE_GAIN, { result.sensorConfig.gainDelay, false } },
+ { V4L2_CID_EXPOSURE, { result.sensorConfig.exposureDelay, false } },
+ { V4L2_CID_VBLANK, { result.sensorConfig.vblankDelay, true } }
};
- delayedCtrls_ = std::make_unique<DelayedControls>(unicam_[Unicam::Image].dev(), delays);
-
+ delayedCtrls_ = std::make_unique<DelayedControls>(unicam_[Unicam::Image].dev(), params);
sensorMetadata_ = result.sensorConfig.sensorMetadata;
}