diff --git a/src/ipa/libipa/awb.cpp b/src/ipa/libipa/awb.cpp
index 62b69dd96238..6157bd436183 100644
--- a/src/ipa/libipa/awb.cpp
+++ b/src/ipa/libipa/awb.cpp
@@ -57,8 +57,9 @@ namespace ipa {
  * applied. To keep the actual implementations computationally inexpensive,
  * the squared colour error shall be returned.
  *
- * If the awb statistics provide multiple zones, the sum over all zones needs to
- * calculated.
+ * If the awb statistics provide multiple zones, the average of the individual
+ * squared errors shall be returned. Averaging/normalizing is necessary so that
+ * the numeric dimensions are the same on all hardware platforms.
  *
  * \return The computed error value
  */
diff --git a/src/ipa/libipa/awb_bayes.cpp b/src/ipa/libipa/awb_bayes.cpp
index 6b88aebeffb5..5f43421e14c7 100644
--- a/src/ipa/libipa/awb_bayes.cpp
+++ b/src/ipa/libipa/awb_bayes.cpp
@@ -235,6 +235,10 @@ int AwbBayes::readPriors(const YamlObject &tuningData)
 
 		auto &pwl = priors[lux];
 		for (const auto &[ct, prob] : ctToProbability) {
+			if (prob < 1e-6) {
+				LOG(Awb, Error) << "Prior probability must be larger than 1e-6";
+				return -EINVAL;
+			}
 			pwl.append(ct, prob);
 		}
 	}
@@ -324,7 +328,7 @@ double AwbBayes::coarseSearch(const ipa::Pwl &prior, const AwbStats &stats) cons
 		double b = ctB_.eval(t, &spanB);
 		RGB<double> gains({ 1 / r, 1.0, 1 / b });
 		double delta2Sum = stats.computeColourError(gains);
-		double priorLogLikelihood = prior.eval(prior.domain().clamp(t));
+		double priorLogLikelihood = log(prior.eval(prior.domain().clamp(t)));
 		double finalLogLikelihood = delta2Sum - priorLogLikelihood;
 
 		errorLimits.record(delta2Sum);
@@ -407,7 +411,7 @@ void AwbBayes::fineSearch(double &t, double &r, double &b, ipa::Pwl const &prior
 	for (int i = -nsteps; i <= nsteps; i++) {
 		double tTest = t + i * step;
 		double priorLogLikelihood =
-			prior.eval(prior.domain().clamp(tTest));
+			log(prior.eval(prior.domain().clamp(tTest)));
 		priorLogLikelihoodLimits.record(priorLogLikelihood);
 		Pwl::Point rbStart{ { ctR_.eval(tTest, &spanR),
 				      ctB_.eval(tTest, &spanB) } };
diff --git a/utils/tuning/config-example.yaml b/utils/tuning/config-example.yaml
index 1bbb275778dc..5593eaef809e 100644
--- a/utils/tuning/config-example.yaml
+++ b/utils/tuning/config-example.yaml
@@ -7,21 +7,21 @@ general:
   awb:
     # Algorithm can either be 'grey' or 'bayes'
     algorithm: bayes
-    # Priors is only used for the bayes algorithm. They are defined in
-    # logarithmic space. A good staring point is:
+    # Priors is only used for the bayes algorithm. They are defined in linear
+    # space. A good staring point is:
     # - lux: 0
     #   ct: [ 2000, 3000, 13000 ]
-    #   probability: [ 1.0, 0.0, 0.0 ]
+    #   probability: [ 1.005, 1.0, 1.0 ]
     # - lux: 800
     #   ct: [ 2000, 6000, 13000 ]
-    #   probability: [ 0.0, 2.0, 2.0 ]
+    #   probability: [ 1.0, 1.01, 1.01 ]
     # - lux: 1500
     #   ct: [ 2000, 4000, 6000, 6500, 7000, 13000 ]
-    #   probability: [ 0.0, 1.0, 6.0, 7.0, 1.0, 1.0 ]
+    #   probability: [ 1.0, 1.005, 1.032, 1.037, 1.01, 1.01 ]
     priors:
       - lux: 0
         ct: [ 2000, 13000 ]
-        probability: [ 0.0, 0.0 ]
+        probability: [ 1.0, 1.0 ]
     AwbMode:
       AwbAuto:
         lo: 2500
