libcamera: ipa: Support array controls in ipa_control_value_entry
Report in a new field of the ipa_control_value_entry structure if the value contains an array. Reorganize the other fields of the structure to avoid increasing its size. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
@@ -26,9 +26,11 @@ struct ipa_controls_header {
|
||||
|
||||
struct ipa_control_value_entry {
|
||||
uint32_t id;
|
||||
uint32_t type;
|
||||
uint32_t count;
|
||||
uint8_t type;
|
||||
uint8_t is_array;
|
||||
uint16_t count;
|
||||
uint32_t offset;
|
||||
uint32_t padding[1];
|
||||
};
|
||||
|
||||
struct ipa_control_range_entry {
|
||||
|
||||
@@ -163,11 +163,15 @@ static_assert(sizeof(ipa_controls_header) == 32,
|
||||
* The numerical ID of the control
|
||||
* \var ipa_control_value_entry::type
|
||||
* The type of the control (defined by enum ControlType)
|
||||
* \var ipa_control_value_entry::is_array
|
||||
* True if the control value stores an array, false otherwise
|
||||
* \var ipa_control_value_entry::count
|
||||
* The number of control array entries for array controls (1 otherwise)
|
||||
* \var ipa_control_value_entry::offset
|
||||
* The offset in bytes from the beginning of the data section to the control
|
||||
* value data (shall be a multiple of 8 bytes).
|
||||
* \var ipa_control_value_entry::padding
|
||||
* Padding bytes (shall be set to 0)
|
||||
*/
|
||||
|
||||
static_assert(sizeof(ipa_control_value_entry) == 16,
|
||||
|
||||
Reference in New Issue
Block a user