summaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus
diff options
context:
space:
mode:
authorJohan Hovold <johan@hovoldconsulting.com>2016-04-23 18:47:28 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2016-04-25 11:08:30 -0700
commit1e8e22b5cb462e9c4da9c988b3355565cdef1d34 (patch)
tree5376b55f4ebaaf4e494a62f8b88e24bd214ac595 /drivers/staging/greybus
parent017482b28decd5b72da2c6c661249e512e6665a8 (diff)
greybus: svc: add stub interface-activate function
Add message structures (based on the current spec) for the SVC Interface Activate operation, and a stub function that always return the Greybus interface type. Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus')
-rw-r--r--drivers/staging/greybus/greybus_protocols.h14
-rw-r--r--drivers/staging/greybus/svc.c9
-rw-r--r--drivers/staging/greybus/svc.h1
3 files changed, 24 insertions, 0 deletions
diff --git a/drivers/staging/greybus/greybus_protocols.h b/drivers/staging/greybus/greybus_protocols.h
index 82798cf3ea2b..9ef87972903e 100644
--- a/drivers/staging/greybus/greybus_protocols.h
+++ b/drivers/staging/greybus/greybus_protocols.h
@@ -802,6 +802,7 @@ struct gb_spi_transfer_response {
#define GB_SVC_TYPE_PWRMON_RAIL_NAMES_GET 0x15
#define GB_SVC_TYPE_PWRMON_SAMPLE_GET 0x16
#define GB_SVC_TYPE_PWRMON_INTF_SAMPLE_GET 0x17
+#define GB_SVC_TYPE_INTF_ACTIVATE 0x27
/*
* SVC version request/response has the same payload as
@@ -1008,6 +1009,19 @@ struct gb_svc_pwrmon_intf_sample_get_response {
__le32 measurement;
} __packed;
+struct gb_svc_intf_activate_request {
+ __u8 intf_id;
+} __packed;
+
+#define GB_SVC_INTF_TYPE_UNKNOWN 0x00
+#define GB_SVC_INTF_TYPE_DUMMY 0x01
+#define GB_SVC_INTF_TYPE_UNIPRO 0x02
+#define GB_SVC_INTF_TYPE_GREYBUS 0x03
+
+struct gb_svc_intf_activate_response {
+ __u8 intf_type;
+} __packed;
+
/* RAW */
/* Version of the Greybus raw protocol we support */
diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c
index cac9789b8f67..1b370195e4c3 100644
--- a/drivers/staging/greybus/svc.c
+++ b/drivers/staging/greybus/svc.c
@@ -274,6 +274,15 @@ int gb_svc_intf_unipro_set(struct gb_svc *svc, u8 intf_id, bool enable)
return 0;
}
+int gb_svc_intf_activate(struct gb_svc *svc, u8 intf_id, u8 *intf_type)
+{
+ /* FIXME: implement */
+
+ *intf_type = GB_SVC_INTF_TYPE_GREYBUS;
+
+ return 0;
+}
+
int gb_svc_dme_peer_get(struct gb_svc *svc, u8 intf_id, u16 attr, u16 selector,
u32 *value)
{
diff --git a/drivers/staging/greybus/svc.h b/drivers/staging/greybus/svc.h
index 055948ce9e2b..546061198cb9 100644
--- a/drivers/staging/greybus/svc.h
+++ b/drivers/staging/greybus/svc.h
@@ -72,6 +72,7 @@ int gb_svc_intf_eject(struct gb_svc *svc, u8 intf_id);
int gb_svc_intf_vsys_set(struct gb_svc *svc, u8 intf_id, bool enable);
int gb_svc_intf_refclk_set(struct gb_svc *svc, u8 intf_id, bool enable);
int gb_svc_intf_unipro_set(struct gb_svc *svc, u8 intf_id, bool enable);
+int gb_svc_intf_activate(struct gb_svc *svc, u8 intf_id, u8 *intf_type);
int gb_svc_dme_peer_get(struct gb_svc *svc, u8 intf_id, u16 attr, u16 selector,
u32 *value);
int gb_svc_dme_peer_set(struct gb_svc *svc, u8 intf_id, u16 attr, u16 selector,