diff options
author | Johan Hovold <johan@hovoldconsulting.com> | 2016-04-23 18:47:31 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2016-04-25 11:08:30 -0700 |
commit | b482b0d6f099e282c7499b5b1a3a69747bf4fa8b (patch) | |
tree | 9eed32083d9dd799a7d3adebcfdfce45a46ef257 /drivers/staging/greybus/greybus_protocols.h | |
parent | 22bb9380d620b9632fb47220133ee6ab3fd36f22 (diff) |
greybus: svc: implement interface mailbox event
Implement the new interface mailbox-event operation.
The event is sent by the SVC under certain conditions when an interface
updates its mailbox value. Specifically, this event will be used to
implement the new mode-switch functionality.
Upon reception the AP verifies that the interface is known and that the
mailbox has the expected MAILBOX_GREYBUS value. If so, the interface is
disabled before being re-enabled (re-enumerated).
Note that during mode-switch, the interface will typically already be in
a disabled state when the mailbox is written (with the ES3 bootrom being
the notable exception).
Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/greybus_protocols.h')
-rw-r--r-- | drivers/staging/greybus/greybus_protocols.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/staging/greybus/greybus_protocols.h b/drivers/staging/greybus/greybus_protocols.h index ece8c64ef13d..bf3c132a3266 100644 --- a/drivers/staging/greybus/greybus_protocols.h +++ b/drivers/staging/greybus/greybus_protocols.h @@ -805,6 +805,7 @@ struct gb_spi_transfer_response { #define GB_SVC_TYPE_MODULE_INSERTED 0x1f #define GB_SVC_TYPE_MODULE_REMOVED 0x20 #define GB_SVC_TYPE_INTF_ACTIVATE 0x27 +#define GB_SVC_TYPE_INTF_MAILBOX_EVENT 0x29 /* * SVC version request/response has the same payload as @@ -1038,6 +1039,18 @@ struct gb_svc_intf_activate_response { __u8 intf_type; } __packed; +#define GB_SVC_INTF_MAILBOX_NONE 0x00 +#define GB_SVC_INTF_MAILBOX_AP 0x01 +#define GB_SVC_INTF_MAILBOX_GREYBUS 0x02 + +struct gb_svc_intf_mailbox_event_request { + __u8 intf_id; + __le16 result_code; + __le32 mailbox; +} __packed; +/* intf_mailbox_event response has no payload */ + + /* RAW */ /* Version of the Greybus raw protocol we support */ |