diff --git a/src/ipa/libipa/agc.cpp b/src/ipa/libipa/agc.cpp
index ea7e095b0d..41c9949f54 100644
--- a/src/ipa/libipa/agc.cpp
+++ b/src/ipa/libipa/agc.cpp
@@ -129,6 +129,9 @@ namespace agc {
  * \var agc::ActiveState::automatic.quantizationGain
  * \brief Automatic quantization gain multiplier
  *
+ * \var agc::ActiveState::automatic.digitalGain
+ * \brief Automatic digital gain multiplier
+ *
  * \var agc::ActiveState::automatic.yTarget
  * \brief Automatically determined luminance target
  *
@@ -355,6 +358,7 @@ int AgcAlgorithm::configure(agc::Session &session, agc::ActiveState &state,
 	state.automatic.gain = session.minAnalogueGain;
 	state.automatic.exposure = defExposure;
 	state.automatic.quantizationGain = 1;
+	state.automatic.digitalGain = 1;
 	state.automatic.yTarget = impl_.effectiveYTarget(0, 1);
 	state.manual.gain = state.automatic.gain;
 	state.manual.exposure = state.automatic.exposure;
@@ -633,13 +637,14 @@ void AgcAlgorithm::process(const agc::Session &session, agc::ActiveState &state,
 	state.automatic.exposure = newEv.exposureTime / lineDuration;
 	state.automatic.gain = newEv.analogueGain;
 	state.automatic.quantizationGain = newEv.quantizationGain;
+	state.automatic.digitalGain = newEv.digitalGain;
 	state.automatic.yTarget = newEv.yTarget;
 
 	LOG(Agc, Debug)
 		<< "exposure-time:" << newEv.exposureTime
 		<< " analogue-gain:" << state.automatic.gain
 		<< " quantization-gain:" << state.automatic.quantizationGain
-		<< " digital-gain:" << newEv.digitalGain;
+		<< " digital-gain:" << state.automatic.digitalGain;
 
 	/*
 	 * Expand the target frame duration so that we do not run faster than
diff --git a/src/ipa/libipa/agc.h b/src/ipa/libipa/agc.h
index 66aa0eacb0..612ac539da 100644
--- a/src/ipa/libipa/agc.h
+++ b/src/ipa/libipa/agc.h
@@ -52,6 +52,7 @@ struct ActiveState {
 		uint32_t exposure;
 		double gain;
 		double quantizationGain;
+		double digitalGain;
 		double yTarget;
 	} automatic;
 
