diff --git a/include/libcamera/ipa/ipa_controls.h b/include/libcamera/ipa/ipa_controls.h
index 5fd13394f..7a8051695 100644
--- a/include/libcamera/ipa/ipa_controls.h
+++ b/include/libcamera/ipa/ipa_controls.h
@@ -37,7 +37,7 @@ struct ipa_control_value_entry {
 	uint32_t id;
 	uint8_t type;
 	uint8_t is_array;
-	uint16_t count;
+	uint32_t count;
 	uint32_t offset;
 	uint32_t padding[1];
 };
diff --git a/src/libcamera/ipa_controls.cpp b/src/libcamera/ipa_controls.cpp
index 9420c889f..a1ccc7d61 100644
--- a/src/libcamera/ipa_controls.cpp
+++ b/src/libcamera/ipa_controls.cpp
@@ -207,7 +207,7 @@ static_assert(sizeof(ipa_controls_header) == 32,
  * Padding bytes (shall be set to 0)
  */
 
-static_assert(sizeof(ipa_control_value_entry) == 16,
+static_assert(sizeof(ipa_control_value_entry) == 20,
 	      "Invalid ABI size change for struct ipa_control_value_entry");
 
 /**
