diff --git a/src/libcamera/software_isp/swstats_cpu.cpp b/src/libcamera/software_isp/swstats_cpu.cpp
index c520c806..a9a3e77a 100644
--- a/src/libcamera/software_isp/swstats_cpu.cpp
+++ b/src/libcamera/software_isp/swstats_cpu.cpp
@@ -71,6 +71,19 @@ namespace libcamera {
  * patternSize height == 1.
  * It'll process line 0 and 1 for input formats with patternSize height >= 2.
  * This function may only be called after a successful setWindow() call.
+ *
+ * This function takes an array of src pointers each pointing to a line in
+ * the source image.
+ *
+ * Bayer input data requires (patternSize_.height + 1) src pointers, with
+ * the middle element of the array pointing to the actual line being processed.
+ * Earlier element(s) will point to the previous line(s) and later element(s)
+ * to the next line(s). See the DebayerCpu::debayerFn documentation for details.
+ *
+ * Planar input data requires a src pointer for each plane, with src[0] pointing
+ * to the line in plane 0, etc.
+ *
+ * For non Bayer single plane input data only a single src pointer is required.
  */
 
 /**
@@ -89,20 +102,6 @@ namespace libcamera {
  * \brief Signals that the statistics are ready
  */
 
-/**
- * \typedef SwStatsCpu::statsProcessFn
- * \brief Called when there is data to get statistics from
- * \param[in] src The input data
- *
- * These functions take an array of (patternSize_.height + 1) src
- * pointers each pointing to a line in the source image. The middle
- * element of the array will point to the actual line being processed.
- * Earlier element(s) will point to the previous line(s) and later
- * element(s) to the next line(s).
- *
- * See the documentation of DebayerCpu::debayerFn for more details.
- */
-
 /**
  * \var unsigned int SwStatsCpu::ySkipMask_
  * \brief Skip lines where this bitmask is set in y
