Commit 1c3aead1 authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman

greybus: control: implement mode-switch operation

Implement the unidirectional mode-switch operation.

This operation will be used in the implementation of the new generic
mode-switch functionality.
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 5fdc027d
...@@ -149,6 +149,13 @@ int gb_control_disconnected_operation(struct gb_control *control, u16 cport_id) ...@@ -149,6 +149,13 @@ int gb_control_disconnected_operation(struct gb_control *control, u16 cport_id)
sizeof(request), NULL, 0); sizeof(request), NULL, 0);
} }
int gb_control_mode_switch_operation(struct gb_control *control)
{
return gb_operation_unidirectional(control->connection,
GB_CONTROL_TYPE_MODE_SWITCH,
NULL, 0);
}
int gb_control_get_interface_version_operation(struct gb_interface *intf) int gb_control_get_interface_version_operation(struct gb_interface *intf)
{ {
struct gb_control_interface_version_response response; struct gb_control_interface_version_response response;
......
...@@ -36,6 +36,7 @@ void gb_control_put(struct gb_control *control); ...@@ -36,6 +36,7 @@ void gb_control_put(struct gb_control *control);
int gb_control_get_bundle_versions(struct gb_control *control); int gb_control_get_bundle_versions(struct gb_control *control);
int gb_control_connected_operation(struct gb_control *control, u16 cport_id); int gb_control_connected_operation(struct gb_control *control, u16 cport_id);
int gb_control_disconnected_operation(struct gb_control *control, u16 cport_id); int gb_control_disconnected_operation(struct gb_control *control, u16 cport_id);
int gb_control_mode_switch_operation(struct gb_control *control);
int gb_control_get_manifest_size_operation(struct gb_interface *intf); int gb_control_get_manifest_size_operation(struct gb_interface *intf);
int gb_control_get_manifest_operation(struct gb_interface *intf, void *manifest, int gb_control_get_manifest_operation(struct gb_interface *intf, void *manifest,
size_t size); size_t size);
......
...@@ -123,6 +123,7 @@ struct gb_protocol_version_response { ...@@ -123,6 +123,7 @@ struct gb_protocol_version_response {
#define GB_CONTROL_TYPE_TIMESYNC_AUTHORITATIVE 0x09 #define GB_CONTROL_TYPE_TIMESYNC_AUTHORITATIVE 0x09
#define GB_CONTROL_TYPE_INTERFACE_VERSION 0x0a #define GB_CONTROL_TYPE_INTERFACE_VERSION 0x0a
#define GB_CONTROL_TYPE_BUNDLE_VERSION 0x0b #define GB_CONTROL_TYPE_BUNDLE_VERSION 0x0b
#define GB_CONTROL_TYPE_MODE_SWITCH 0x0e
struct gb_control_version_request { struct gb_control_version_request {
__u8 major; __u8 major;
......
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