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:
parent
1716d4e86f
commit
427c37f671
2 changed files with 8 additions and 2 deletions
|
@ -26,9 +26,11 @@ struct ipa_controls_header {
|
||||||
|
|
||||||
struct ipa_control_value_entry {
|
struct ipa_control_value_entry {
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
uint32_t type;
|
uint8_t type;
|
||||||
uint32_t count;
|
uint8_t is_array;
|
||||||
|
uint16_t count;
|
||||||
uint32_t offset;
|
uint32_t offset;
|
||||||
|
uint32_t padding[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ipa_control_range_entry {
|
struct ipa_control_range_entry {
|
||||||
|
|
|
@ -163,11 +163,15 @@ static_assert(sizeof(ipa_controls_header) == 32,
|
||||||
* The numerical ID of the control
|
* The numerical ID of the control
|
||||||
* \var ipa_control_value_entry::type
|
* \var ipa_control_value_entry::type
|
||||||
* The type of the control (defined by enum ControlType)
|
* 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
|
* \var ipa_control_value_entry::count
|
||||||
* The number of control array entries for array controls (1 otherwise)
|
* The number of control array entries for array controls (1 otherwise)
|
||||||
* \var ipa_control_value_entry::offset
|
* \var ipa_control_value_entry::offset
|
||||||
* The offset in bytes from the beginning of the data section to the control
|
* The offset in bytes from the beginning of the data section to the control
|
||||||
* value data (shall be a multiple of 8 bytes).
|
* 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,
|
static_assert(sizeof(ipa_control_value_entry) == 16,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue