diff --git a/src/ipa/libipa/module.cpp b/src/ipa/libipa/module.cpp
index 64ca91419..f142c5257 100644
--- a/src/ipa/libipa/module.cpp
+++ b/src/ipa/libipa/module.cpp
@@ -94,6 +94,14 @@ namespace ipa {
  * algorithms. The configuration data is expected to be correct, any error
  * causes the function to fail and return immediately.
  *
+ * Algorithms can optionally be disabled via the tuning file of the camera module
+ * as shown here, with AGC being used as an example:
+ *
+ * - Agc:
+ *     enabled: false
+ *
+ * If this is the case, the algorithm will not be instantiated.
+ *
  * \return 0 on success, or a negative error code on failure
  */
 
diff --git a/src/ipa/libipa/module.h b/src/ipa/libipa/module.h
index 116cb8968..0b3b84219 100644
--- a/src/ipa/libipa/module.h
+++ b/src/ipa/libipa/module.h
@@ -82,6 +82,17 @@ private:
 			return -EINVAL;
 		}
 
+		/*
+		 * Optionally, algorithms can be disabled via the tuning file by including
+		 * enabled: false as a parameter within the algorithm tuning data.
+		 * This is not an error, so we return 0.
+		 */
+		if (!algoData["enabled"].get<bool>(true)) {
+			LOG(IPAModuleAlgo, Debug)
+				<< "Algorithm '" << name << "' disabled via tuning file";
+			return 0;
+		}
+
 		int ret = algo->init(context, algoData);
 		if (ret) {
 			LOG(IPAModuleAlgo, Error)
