Commit b701686a authored by Viresh Kumar's avatar Viresh Kumar Committed by Johan Hovold

greybus: greybus_protocols: Pack all request/response structure

These structures are exchanged between the AP and the module and must be
packed to avoid any unwanted holes.

Its all working currently because compiler doesn't add any pad bytes for
these structures, as their elements are already aligned to their size.

But these structures can change in future and we better mark them
packed.
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
parent 829a91e7
...@@ -96,7 +96,7 @@ struct gb_operation_msg_hdr { ...@@ -96,7 +96,7 @@ struct gb_operation_msg_hdr {
__u8 type; /* E.g GB_I2C_TYPE_* or GB_GPIO_TYPE_* */ __u8 type; /* E.g GB_I2C_TYPE_* or GB_GPIO_TYPE_* */
__u8 result; /* Result of request (in responses only) */ __u8 result; /* Result of request (in responses only) */
__u8 pad[2]; /* must be zero (ignore when read) */ __u8 pad[2]; /* must be zero (ignore when read) */
}; } __packed;
/* Generic request numbers supported by all modules */ /* Generic request numbers supported by all modules */
...@@ -109,7 +109,7 @@ struct gb_operation_msg_hdr { ...@@ -109,7 +109,7 @@ struct gb_operation_msg_hdr {
struct gb_protocol_version_response { struct gb_protocol_version_response {
__u8 major; __u8 major;
__u8 minor; __u8 minor;
}; } __packed;
/* Control Protocol */ /* Control Protocol */
...@@ -127,21 +127,21 @@ struct gb_protocol_version_response { ...@@ -127,21 +127,21 @@ struct gb_protocol_version_response {
/* Control protocol manifest get size request has no payload*/ /* Control protocol manifest get size request has no payload*/
struct gb_control_get_manifest_size_response { struct gb_control_get_manifest_size_response {
__le16 size; __le16 size;
}; } __packed;
/* Control protocol manifest get request has no payload */ /* Control protocol manifest get request has no payload */
struct gb_control_get_manifest_response { struct gb_control_get_manifest_response {
__u8 data[0]; __u8 data[0];
}; } __packed;
/* Control protocol [dis]connected request */ /* Control protocol [dis]connected request */
struct gb_control_connected_request { struct gb_control_connected_request {
__le16 cport_id; __le16 cport_id;
}; } __packed;
struct gb_control_disconnected_request { struct gb_control_disconnected_request {
__le16 cport_id; __le16 cport_id;
}; } __packed;
/* Control protocol [dis]connected response has no payload */ /* Control protocol [dis]connected response has no payload */
...@@ -224,7 +224,7 @@ struct gb_firmware_ready_to_boot_request { ...@@ -224,7 +224,7 @@ struct gb_firmware_ready_to_boot_request {
struct gb_battery_technology_response { struct gb_battery_technology_response {
__le32 technology; __le32 technology;
}; } __packed;
/* Should match up with battery status in linux/power_supply.h */ /* Should match up with battery status in linux/power_supply.h */
#define GB_BATTERY_STATUS_UNKNOWN 0x0000 #define GB_BATTERY_STATUS_UNKNOWN 0x0000
...@@ -235,23 +235,23 @@ struct gb_battery_technology_response { ...@@ -235,23 +235,23 @@ struct gb_battery_technology_response {
struct gb_battery_status_response { struct gb_battery_status_response {
__le16 battery_status; __le16 battery_status;
}; } __packed;
struct gb_battery_max_voltage_response { struct gb_battery_max_voltage_response {
__le32 max_voltage; __le32 max_voltage;
}; } __packed;
struct gb_battery_capacity_response { struct gb_battery_capacity_response {
__le32 capacity; __le32 capacity;
}; } __packed;
struct gb_battery_temperature_response { struct gb_battery_temperature_response {
__le32 temperature; __le32 temperature;
}; } __packed;
struct gb_battery_voltage_response { struct gb_battery_voltage_response {
__le32 voltage; __le32 voltage;
}; } __packed;
/* HID */ /* HID */
...@@ -289,19 +289,19 @@ struct gb_hid_desc_response { ...@@ -289,19 +289,19 @@ struct gb_hid_desc_response {
struct gb_hid_get_report_request { struct gb_hid_get_report_request {
__u8 report_type; __u8 report_type;
__u8 report_id; __u8 report_id;
}; } __packed;
/* HID set report request */ /* HID set report request */
struct gb_hid_set_report_request { struct gb_hid_set_report_request {
__u8 report_type; __u8 report_type;
__u8 report_id; __u8 report_id;
__u8 report[0]; __u8 report[0];
}; } __packed;
/* HID input report request, via interrupt pipe */ /* HID input report request, via interrupt pipe */
struct gb_hid_input_report_request { struct gb_hid_input_report_request {
__u8 report[0]; __u8 report[0];
}; } __packed;
/* I2C */ /* I2C */
...@@ -322,16 +322,16 @@ struct gb_hid_input_report_request { ...@@ -322,16 +322,16 @@ struct gb_hid_input_report_request {
/* functionality request has no payload */ /* functionality request has no payload */
struct gb_i2c_functionality_response { struct gb_i2c_functionality_response {
__le32 functionality; __le32 functionality;
}; } __packed;
struct gb_i2c_timeout_request { struct gb_i2c_timeout_request {
__le16 msec; __le16 msec;
}; } __packed;
/* timeout response has no payload */ /* timeout response has no payload */
struct gb_i2c_retries_request { struct gb_i2c_retries_request {
__u8 retries; __u8 retries;
}; } __packed;
/* retries response has no payload */ /* retries response has no payload */
/* /*
...@@ -348,15 +348,15 @@ struct gb_i2c_transfer_op { ...@@ -348,15 +348,15 @@ struct gb_i2c_transfer_op {
__le16 addr; __le16 addr;
__le16 flags; __le16 flags;
__le16 size; __le16 size;
}; } __packed;
struct gb_i2c_transfer_request { struct gb_i2c_transfer_request {
__le16 op_count; __le16 op_count;
struct gb_i2c_transfer_op ops[0]; /* op_count of these */ struct gb_i2c_transfer_op ops[0]; /* op_count of these */
}; } __packed;
struct gb_i2c_transfer_response { struct gb_i2c_transfer_response {
__u8 data[0]; /* inbound data */ __u8 data[0]; /* inbound data */
}; } __packed;
/* GPIO */ /* GPIO */
...@@ -390,47 +390,47 @@ struct gb_i2c_transfer_response { ...@@ -390,47 +390,47 @@ struct gb_i2c_transfer_response {
/* line count request has no payload */ /* line count request has no payload */
struct gb_gpio_line_count_response { struct gb_gpio_line_count_response {
__u8 count; __u8 count;
}; } __packed;
struct gb_gpio_activate_request { struct gb_gpio_activate_request {
__u8 which; __u8 which;
}; } __packed;
/* activate response has no payload */ /* activate response has no payload */
struct gb_gpio_deactivate_request { struct gb_gpio_deactivate_request {
__u8 which; __u8 which;
}; } __packed;
/* deactivate response has no payload */ /* deactivate response has no payload */
struct gb_gpio_get_direction_request { struct gb_gpio_get_direction_request {
__u8 which; __u8 which;
}; } __packed;
struct gb_gpio_get_direction_response { struct gb_gpio_get_direction_response {
__u8 direction; __u8 direction;
}; } __packed;
struct gb_gpio_direction_in_request { struct gb_gpio_direction_in_request {
__u8 which; __u8 which;
}; } __packed;
/* direction in response has no payload */ /* direction in response has no payload */
struct gb_gpio_direction_out_request { struct gb_gpio_direction_out_request {
__u8 which; __u8 which;
__u8 value; __u8 value;
}; } __packed;
/* direction out response has no payload */ /* direction out response has no payload */
struct gb_gpio_get_value_request { struct gb_gpio_get_value_request {
__u8 which; __u8 which;
}; } __packed;
struct gb_gpio_get_value_response { struct gb_gpio_get_value_response {
__u8 value; __u8 value;
}; } __packed;
struct gb_gpio_set_value_request { struct gb_gpio_set_value_request {
__u8 which; __u8 which;
__u8 value; __u8 value;
}; } __packed;
/* set value response has no payload */ /* set value response has no payload */
struct gb_gpio_set_debounce_request { struct gb_gpio_set_debounce_request {
...@@ -442,23 +442,23 @@ struct gb_gpio_set_debounce_request { ...@@ -442,23 +442,23 @@ struct gb_gpio_set_debounce_request {
struct gb_gpio_irq_type_request { struct gb_gpio_irq_type_request {
__u8 which; __u8 which;
__u8 type; __u8 type;
}; } __packed;
/* irq type response has no payload */ /* irq type response has no payload */
struct gb_gpio_irq_mask_request { struct gb_gpio_irq_mask_request {
__u8 which; __u8 which;
}; } __packed;
/* irq mask response has no payload */ /* irq mask response has no payload */
struct gb_gpio_irq_unmask_request { struct gb_gpio_irq_unmask_request {
__u8 which; __u8 which;
}; } __packed;
/* irq unmask response has no payload */ /* irq unmask response has no payload */
/* irq event requests originate on another module and are handled on the AP */ /* irq event requests originate on another module and are handled on the AP */
struct gb_gpio_irq_event_request { struct gb_gpio_irq_event_request {
__u8 which; __u8 which;
}; } __packed;
/* irq event has no response */ /* irq event has no response */
...@@ -480,15 +480,15 @@ struct gb_gpio_irq_event_request { ...@@ -480,15 +480,15 @@ struct gb_gpio_irq_event_request {
/* pwm count request has no payload */ /* pwm count request has no payload */
struct gb_pwm_count_response { struct gb_pwm_count_response {
__u8 count; __u8 count;
}; } __packed;
struct gb_pwm_activate_request { struct gb_pwm_activate_request {
__u8 which; __u8 which;
}; } __packed;
struct gb_pwm_deactivate_request { struct gb_pwm_deactivate_request {
__u8 which; __u8 which;
}; } __packed;
struct gb_pwm_config_request { struct gb_pwm_config_request {
__u8 which; __u8 which;
...@@ -499,15 +499,15 @@ struct gb_pwm_config_request { ...@@ -499,15 +499,15 @@ struct gb_pwm_config_request {
struct gb_pwm_polarity_request { struct gb_pwm_polarity_request {
__u8 which; __u8 which;
__u8 polarity; __u8 polarity;
}; } __packed;
struct gb_pwm_enable_request { struct gb_pwm_enable_request {
__u8 which; __u8 which;
}; } __packed;
struct gb_pwm_disable_request { struct gb_pwm_disable_request {
__u8 which; __u8 which;
}; } __packed;
/* I2S */ /* I2S */
...@@ -593,48 +593,48 @@ struct gb_i2s_mgmt_configuration { ...@@ -593,48 +593,48 @@ struct gb_i2s_mgmt_configuration {
__u8 ll_wclk_tx_edge; __u8 ll_wclk_tx_edge;
__u8 ll_wclk_rx_edge; __u8 ll_wclk_rx_edge;
__u8 ll_data_offset; __u8 ll_data_offset;
}; } __packed;
/* get supported configurations request has no payload */ /* get supported configurations request has no payload */
struct gb_i2s_mgmt_get_supported_configurations_response { struct gb_i2s_mgmt_get_supported_configurations_response {
__u8 config_count; __u8 config_count;
__u8 pad[3]; __u8 pad[3];
struct gb_i2s_mgmt_configuration config[0]; struct gb_i2s_mgmt_configuration config[0];
}; } __packed;
struct gb_i2s_mgmt_set_configuration_request { struct gb_i2s_mgmt_set_configuration_request {
struct gb_i2s_mgmt_configuration config; struct gb_i2s_mgmt_configuration config;
}; } __packed;
/* set configuration response has no payload */ /* set configuration response has no payload */
struct gb_i2s_mgmt_set_samples_per_message_request { struct gb_i2s_mgmt_set_samples_per_message_request {
__le16 samples_per_message; __le16 samples_per_message;
}; } __packed;
/* set samples per message response has no payload */ /* set samples per message response has no payload */
/* get processing request delay has no payload */ /* get processing request delay has no payload */
struct gb_i2s_mgmt_get_processing_delay_response { struct gb_i2s_mgmt_get_processing_delay_response {
__le32 microseconds; __le32 microseconds;
}; } __packed;
struct gb_i2s_mgmt_set_start_delay_request { struct gb_i2s_mgmt_set_start_delay_request {
__le32 microseconds; __le32 microseconds;
}; } __packed;
/* set start delay response has no payload */ /* set start delay response has no payload */
struct gb_i2s_mgmt_activate_cport_request { struct gb_i2s_mgmt_activate_cport_request {
__le16 cport; __le16 cport;
}; } __packed;
/* activate cport response has no payload */ /* activate cport response has no payload */
struct gb_i2s_mgmt_deactivate_cport_request { struct gb_i2s_mgmt_deactivate_cport_request {
__le16 cport; __le16 cport;
}; } __packed;
/* deactivate cport response has no payload */ /* deactivate cport response has no payload */
struct gb_i2s_mgmt_report_event_request { struct gb_i2s_mgmt_report_event_request {
__u8 event; __u8 event;
}; } __packed;
/* report event response has no payload */ /* report event response has no payload */
#define GB_I2S_DATA_TYPE_SEND_DATA 0x02 #define GB_I2S_DATA_TYPE_SEND_DATA 0x02
...@@ -643,7 +643,7 @@ struct gb_i2s_send_data_request { ...@@ -643,7 +643,7 @@ struct gb_i2s_send_data_request {
__le32 sample_number; __le32 sample_number;
__le32 size; __le32 size;
__u8 data[0]; __u8 data[0];
}; } __packed;
/* send data has no response at all */ /* send data has no response at all */
...@@ -682,22 +682,22 @@ struct gb_i2s_send_data_request { ...@@ -682,22 +682,22 @@ struct gb_i2s_send_data_request {
/* mode request has no payload */ /* mode request has no payload */
struct gb_spi_mode_response { struct gb_spi_mode_response {
__le16 mode; __le16 mode;
}; } __packed;
/* flags request has no payload */ /* flags request has no payload */
struct gb_spi_flags_response { struct gb_spi_flags_response {
__le16 flags; __le16 flags;
}; } __packed;
/* bits-per-word request has no payload */ /* bits-per-word request has no payload */
struct gb_spi_bpw_response { struct gb_spi_bpw_response {
__le32 bits_per_word_mask; __le32 bits_per_word_mask;
}; } __packed;
/* num-chipselects request has no payload */ /* num-chipselects request has no payload */
struct gb_spi_chipselect_response { struct gb_spi_chipselect_response {
__le16 num_chipselect; __le16 num_chipselect;
}; } __packed;
/** /**
* struct gb_spi_transfer - a read/write buffer pair * struct gb_spi_transfer - a read/write buffer pair
...@@ -717,18 +717,18 @@ struct gb_spi_transfer { ...@@ -717,18 +717,18 @@ struct gb_spi_transfer {
__le16 delay_usecs; __le16 delay_usecs;
__u8 cs_change; __u8 cs_change;
__u8 bits_per_word; __u8 bits_per_word;
}; } __packed;
struct gb_spi_transfer_request { struct gb_spi_transfer_request {
__u8 chip_select; /* of the spi device */ __u8 chip_select; /* of the spi device */
__u8 mode; /* of the spi device */ __u8 mode; /* of the spi device */
__le16 count; __le16 count;
struct gb_spi_transfer transfers[0]; /* count of these */ struct gb_spi_transfer transfers[0]; /* count of these */
}; } __packed;
struct gb_spi_transfer_response { struct gb_spi_transfer_response {
__u8 data[0]; /* inbound data */ __u8 data[0]; /* inbound data */
}; } __packed;
/* Version of the Greybus SVC protocol we support */ /* Version of the Greybus SVC protocol we support */
#define GB_SVC_VERSION_MAJOR 0x00 #define GB_SVC_VERSION_MAJOR 0x00
...@@ -819,7 +819,7 @@ struct gb_svc_route_create_request { ...@@ -819,7 +819,7 @@ struct gb_svc_route_create_request {
struct gb_raw_send_request { struct gb_raw_send_request {
__le32 len; __le32 len;
__u8 data[0]; __u8 data[0];
}; } __packed;
/* UART */ /* UART */
...@@ -840,7 +840,7 @@ struct gb_raw_send_request { ...@@ -840,7 +840,7 @@ struct gb_raw_send_request {
struct gb_uart_send_data_request { struct gb_uart_send_data_request {
__le16 size; __le16 size;
__u8 data[0]; __u8 data[0];
}; } __packed;
/* recv-data-request flags */ /* recv-data-request flags */
#define GB_UART_RECV_FLAG_FRAMING 0x01 /* Framing error */ #define GB_UART_RECV_FLAG_FRAMING 0x01 /* Framing error */
...@@ -878,11 +878,11 @@ struct gb_uart_set_line_coding_request { ...@@ -878,11 +878,11 @@ struct gb_uart_set_line_coding_request {
struct gb_uart_set_control_line_state_request { struct gb_uart_set_control_line_state_request {
__u8 control; __u8 control;
}; } __packed;
struct gb_uart_set_break_request { struct gb_uart_set_break_request {
__u8 state; __u8 state;
}; } __packed;
/* input control lines and line errors */ /* input control lines and line errors */
#define GB_UART_CTRL_DCD 0x01 #define GB_UART_CTRL_DCD 0x01
...@@ -891,7 +891,7 @@ struct gb_uart_set_break_request { ...@@ -891,7 +891,7 @@ struct gb_uart_set_break_request {
struct gb_uart_serial_state_request { struct gb_uart_serial_state_request {
__u8 control; __u8 control;
}; } __packed;
/* Loopback */ /* Loopback */
...@@ -907,11 +907,11 @@ struct gb_uart_serial_state_request { ...@@ -907,11 +907,11 @@ struct gb_uart_serial_state_request {
struct gb_loopback_transfer_request { struct gb_loopback_transfer_request {
__le32 len; __le32 len;
__u8 data[0]; __u8 data[0];
}; } __packed;
struct gb_loopback_transfer_response { struct gb_loopback_transfer_response {
__u8 data[0]; __u8 data[0];
}; } __packed;
/* SDIO */ /* SDIO */
/* Version of the Greybus sdio protocol we support */ /* Version of the Greybus sdio protocol we support */
...@@ -954,7 +954,7 @@ struct gb_sdio_get_caps_response { ...@@ -954,7 +954,7 @@ struct gb_sdio_get_caps_response {
__le32 ocr; __le32 ocr;
__le16 max_blk_count; __le16 max_blk_count;
__le16 max_blk_size; __le16 max_blk_size;
}; } __packed;
/* set ios request: response has no payload */ /* set ios request: response has no payload */
struct gb_sdio_set_ios_request { struct gb_sdio_set_ios_request {
...@@ -1040,7 +1040,7 @@ struct gb_sdio_command_request { ...@@ -1040,7 +1040,7 @@ struct gb_sdio_command_request {
struct gb_sdio_command_response { struct gb_sdio_command_response {
__le32 resp[4]; __le32 resp[4];
}; } __packed;
/* transfer request */ /* transfer request */
struct gb_sdio_transfer_request { struct gb_sdio_transfer_request {
...@@ -1058,7 +1058,7 @@ struct gb_sdio_transfer_response { ...@@ -1058,7 +1058,7 @@ struct gb_sdio_transfer_response {
__le16 data_blocks; __le16 data_blocks;
__le16 data_blksz; __le16 data_blksz;
__u8 data[0]; __u8 data[0];
}; } __packed;
/* event request: generated by module and is defined as unidirectional */ /* event request: generated by module and is defined as unidirectional */
struct gb_sdio_event_request { struct gb_sdio_event_request {
...@@ -1066,7 +1066,7 @@ struct gb_sdio_event_request { ...@@ -1066,7 +1066,7 @@ struct gb_sdio_event_request {
#define GB_SDIO_CARD_INSERTED 0x01 #define GB_SDIO_CARD_INSERTED 0x01
#define GB_SDIO_CARD_REMOVED 0x02 #define GB_SDIO_CARD_REMOVED 0x02
#define GB_SDIO_WP 0x04 #define GB_SDIO_WP 0x04
}; } __packed;
/* Lights */ /* Lights */
...@@ -1119,30 +1119,30 @@ struct gb_sdio_event_request { ...@@ -1119,30 +1119,30 @@ struct gb_sdio_event_request {
/* get count of lights in module */ /* get count of lights in module */
struct gb_lights_get_lights_response { struct gb_lights_get_lights_response {
__u8 lights_count; __u8 lights_count;
}; } __packed;
/* light config request payload */ /* light config request payload */
struct gb_lights_get_light_config_request { struct gb_lights_get_light_config_request {
__u8 id; __u8 id;
}; } __packed;
/* light config response payload */ /* light config response payload */
struct gb_lights_get_light_config_response { struct gb_lights_get_light_config_response {
__u8 channel_count; __u8 channel_count;
__u8 name[32]; __u8 name[32];
}; } __packed;
/* channel config request payload */ /* channel config request payload */
struct gb_lights_get_channel_config_request { struct gb_lights_get_channel_config_request {
__u8 light_id; __u8 light_id;
__u8 channel_id; __u8 channel_id;
}; } __packed;
/* channel flash config request payload */ /* channel flash config request payload */
struct gb_lights_get_channel_flash_config_request { struct gb_lights_get_channel_flash_config_request {
__u8 light_id; __u8 light_id;
__u8 channel_id; __u8 channel_id;
}; } __packed;
/* channel config response payload */ /* channel config response payload */
struct gb_lights_get_channel_config_response { struct gb_lights_get_channel_config_response {
...@@ -1162,7 +1162,7 @@ struct gb_lights_get_channel_flash_config_response { ...@@ -1162,7 +1162,7 @@ struct gb_lights_get_channel_flash_config_response {
__le32 timeout_min_us; __le32 timeout_min_us;
__le32 timeout_max_us; __le32 timeout_max_us;
__le32 timeout_step_us; __le32 timeout_step_us;
}; } __packed;
/* blink request payload: response have no payload */ /* blink request payload: response have no payload */
struct gb_lights_blink_request { struct gb_lights_blink_request {
...@@ -1170,14 +1170,14 @@ struct gb_lights_blink_request { ...@@ -1170,14 +1170,14 @@ struct gb_lights_blink_request {
__u8 channel_id; __u8 channel_id;
__le16 time_on_ms; __le16 time_on_ms;
__le16 time_off_ms; __le16 time_off_ms;
}; } __packed;
/* set brightness request payload: response have no payload */ /* set brightness request payload: response have no payload */
struct gb_lights_set_brightness_request { struct gb_lights_set_brightness_request {
__u8 light_id; __u8 light_id;
__u8 channel_id; __u8 channel_id;
__u8 brightness; __u8 brightness;
}; } __packed;
/* set color request payload: response have no payload */ /* set color request payload: response have no payload */
struct gb_lights_set_color_request { struct gb_lights_set_color_request {
...@@ -1192,14 +1192,14 @@ struct gb_lights_set_fade_request { ...@@ -1192,14 +1192,14 @@ struct gb_lights_set_fade_request {
__u8 channel_id; __u8 channel_id;
__u8 fade_in; __u8 fade_in;
__u8 fade_out; __u8 fade_out;
}; } __packed;
/* event request: generated by module */ /* event request: generated by module */
struct gb_lights_event_request { struct gb_lights_event_request {
__u8 light_id; __u8 light_id;
__u8 event; __u8 event;
#define GB_LIGHTS_LIGHT_CONFIG 0x01 #define GB_LIGHTS_LIGHT_CONFIG 0x01
}; } __packed;
/* set flash intensity request payload: response have no payload */ /* set flash intensity request payload: response have no payload */
struct gb_lights_set_flash_intensity_request { struct gb_lights_set_flash_intensity_request {
...@@ -1213,7 +1213,7 @@ struct gb_lights_set_flash_strobe_request { ...@@ -1213,7 +1213,7 @@ struct gb_lights_set_flash_strobe_request {
__u8 light_id; __u8 light_id;
__u8 channel_id; __u8 channel_id;
__u8 state; __u8 state;
}; } __packed;
/* set flash timeout request payload: response have no payload */ /* set flash timeout request payload: response have no payload */
struct gb_lights_set_flash_timeout_request { struct gb_lights_set_flash_timeout_request {
...@@ -1226,7 +1226,7 @@ struct gb_lights_set_flash_timeout_request { ...@@ -1226,7 +1226,7 @@ struct gb_lights_set_flash_timeout_request {
struct gb_lights_get_flash_fault_request { struct gb_lights_get_flash_fault_request {
__u8 light_id; __u8 light_id;
__u8 channel_id; __u8 channel_id;
}; } __packed;
/* get flash fault response payload */ /* get flash fault response payload */
struct gb_lights_get_flash_fault_response { struct gb_lights_get_flash_fault_response {
...@@ -1240,7 +1240,7 @@ struct gb_lights_get_flash_fault_response { ...@@ -1240,7 +1240,7 @@ struct gb_lights_get_flash_fault_response {
#define GB_LIGHTS_FLASH_FAULT_UNDER_VOLTAGE 0x00000020 #define GB_LIGHTS_FLASH_FAULT_UNDER_VOLTAGE 0x00000020
#define GB_LIGHTS_FLASH_FAULT_INPUT_VOLTAGE 0x00000040 #define GB_LIGHTS_FLASH_FAULT_INPUT_VOLTAGE 0x00000040
#define GB_LIGHTS_FLASH_FAULT_LED_OVER_TEMPERATURE 0x00000080 #define GB_LIGHTS_FLASH_FAULT_LED_OVER_TEMPERATURE 0x00000080
}; } __packed;
#endif /* __GREYBUS_PROTOCOLS_H */ #endif /* __GREYBUS_PROTOCOLS_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment