usb: rmnet_sdio/rmnet_smd_sdio: Add support for new composition framework
Also rename various function/variable names and defines to fix
redeclaration errors.
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
diff --git a/drivers/usb/gadget/android.c b/drivers/usb/gadget/android.c
index 827c041..20b73a1 100644
--- a/drivers/usb/gadget/android.c
+++ b/drivers/usb/gadget/android.c
@@ -48,6 +48,8 @@
#include "f_diag.c"
#include "f_rmnet_smd.c"
+#include "f_rmnet_sdio.c"
+#include "f_rmnet_smd_sdio.c"
#include "f_rmnet.c"
#include "f_mass_storage.c"
#include "u_serial.c"
@@ -197,6 +199,7 @@
/*-------------------------------------------------------------------------*/
/* Supported functions initialization */
+/* RMNET_SMD */
static int rmnet_smd_function_bind_config(struct android_usb_function *f,
struct usb_configuration *c)
{
@@ -208,6 +211,48 @@
.bind_config = rmnet_smd_function_bind_config,
};
+/* RMNET_SDIO */
+static int rmnet_sdio_function_bind_config(struct android_usb_function *f,
+ struct usb_configuration *c)
+{
+ return rmnet_sdio_function_add(c);
+}
+
+static struct android_usb_function rmnet_sdio_function = {
+ .name = "rmnet_sdio",
+ .bind_config = rmnet_sdio_function_bind_config,
+};
+
+/* RMNET_SMD_SDIO */
+static int rmnet_smd_sdio_function_init(struct android_usb_function *f,
+ struct usb_composite_dev *cdev)
+{
+ return rmnet_smd_sdio_init();
+}
+
+static void rmnet_smd_sdio_function_cleanup(struct android_usb_function *f)
+{
+ rmnet_smd_sdio_cleanup();
+}
+
+static int rmnet_smd_sdio_bind_config(struct android_usb_function *f,
+ struct usb_configuration *c)
+{
+ return rmnet_smd_sdio_function_add(c);
+}
+
+static struct device_attribute *rmnet_smd_sdio_attributes[] = {
+ &dev_attr_transport, NULL };
+
+static struct android_usb_function rmnet_smd_sdio_function = {
+ .name = "rmnet_smd_sdio",
+ .init = rmnet_smd_sdio_function_init,
+ .cleanup = rmnet_smd_sdio_function_cleanup,
+ .bind_config = rmnet_smd_sdio_bind_config,
+ .attributes = rmnet_smd_sdio_attributes,
+};
+
+/* RMNET - used with BAM */
#define MAX_RMNET_INSTANCES 1
static int rmnet_instances;
static int rmnet_function_init(struct android_usb_function *f,
@@ -269,7 +314,7 @@
.attributes = rmnet_function_attributes,
};
-
+/* DIAG */
static char diag_clients[32]; /*enabled DIAG clients- "diag[,diag_mdm]" */
static ssize_t clients_store(
struct device *device, struct device_attribute *attr,
@@ -332,6 +377,7 @@
.attributes = diag_function_attributes,
};
+/* SERIAL */
static char serial_transports[32]; /*enabled FSERIAL ports - "tty[,sdio]"*/
static ssize_t serial_transports_store(
struct device *device, struct device_attribute *attr,
@@ -405,6 +451,7 @@
};
+/* ADB */
static int adb_function_init(struct android_usb_function *f, struct usb_composite_dev *cdev)
{
return adb_setup();
@@ -867,6 +914,8 @@
static struct android_usb_function *supported_functions[] = {
&rmnet_smd_function,
+ &rmnet_sdio_function,
+ &rmnet_smd_sdio_function,
&rmnet_function,
&diag_function,
&serial_function,