aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget
diff options
context:
space:
mode:
authorJP Abgrall <jpa@google.com>2012-02-06 13:07:39 -0800
committerJP Abgrall <jpa@google.com>2012-02-06 13:07:39 -0800
commit66b1fe9916260621f3decf5b61142f4010e6cd12 (patch)
treef5ca3444102f737dbdd72d97dc1b94bf62338633 /drivers/usb/gadget
parent47771afc77173e4d87f67cd11c792b92e8578e72 (diff)
parent1f8c5cecfe44994cd617ba2803f41fb56d53e91c (diff)
downloadkernel_samsung_aries-66b1fe9916260621f3decf5b61142f4010e6cd12.zip
kernel_samsung_aries-66b1fe9916260621f3decf5b61142f4010e6cd12.tar.gz
kernel_samsung_aries-66b1fe9916260621f3decf5b61142f4010e6cd12.tar.bz2
Merge remote-tracking branch 'common/android-3.0' into android-samsung-30-wip-mergedown
* common/android-3.0: Input: evdev - fix variable initialisation Input: evdev - Add ioctl to block suspend while event queue is not empty. Input: evdev - Don't hold wakelock when no data is available to user-space net: wireless: bcmdhd: Increase pm_notify callback priority net: wireless: bcmdhd: Fix crash on dhdsdio_probe_attach() failure net: wireless: bcmdhd: Daemonize wl_event_handler net: wireless: bcmdhd: Update to Version 5.90.195.23 net: wireless: bcmdhd: Update to Version 5.90.195.22 net: wireless: bcmdhd: Update to Version 5.90.195.19 net: wireless: bcmdhd: Update to Version 5.90.195.15 net: wireless: bcmdhd: Add WIPHY_FLAG_SUPPORTS_FW_ROAM flag net: wireless: bcmdhd: Fake PNO event to wake up the wpa_supplicant usb: gadget: android: Honor CONFIG_USB_GADGET_VBUS_DRAW usb: gadget: Fix usb string id allocation nl80211/cfg80211: Make addition of new sinfo fields safer cfg80211/nl80211: Send AssocReq IEs to user space in AP mode misc: remove android pmem driver, it's obsolete. Revert "proc: enable writing to /proc/pid/mem" ram_console: set CON_ANYTIME console flag Conflicts: drivers/misc/Kconfig Change-Id: I7d64300b228a0fc05e700f283a02f830bcadd371
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r--drivers/usb/gadget/android.c4
-rw-r--r--drivers/usb/gadget/f_rndis.c12
-rw-r--r--drivers/usb/gadget/rndis.c11
3 files changed, 16 insertions, 11 deletions
diff --git a/drivers/usb/gadget/android.c b/drivers/usb/gadget/android.c
index 00a446b..8df739c 100644
--- a/drivers/usb/gadget/android.c
+++ b/drivers/usb/gadget/android.c
@@ -153,8 +153,6 @@ static struct usb_configuration android_config_driver = {
.label = "android",
.unbind = android_unbind_config,
.bConfigurationValue = 1,
- .bmAttributes = USB_CONFIG_ATT_ONE | USB_CONFIG_ATT_SELFPOWER,
- .bMaxPower = 0xFA, /* 500ma */
};
static void android_work(struct work_struct *data)
@@ -840,7 +838,6 @@ static ssize_t enable_store(struct device *pdev, struct device_attribute *attr,
sscanf(buff, "%d", &enabled);
if (enabled && !dev->enabled) {
- cdev->next_string_id = 0;
/* update values in composite driver's copy of device descriptor */
cdev->desc.idVendor = device_desc.idVendor;
cdev->desc.idProduct = device_desc.idProduct;
@@ -1034,7 +1031,6 @@ static int android_bind(struct usb_composite_dev *cdev)
device_desc.bcdDevice = __constant_cpu_to_le16(0x9999);
}
- usb_gadget_set_selfpowered(gadget);
dev->cdev = cdev;
return 0;
diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c
index d03b11b..96adf45 100644
--- a/drivers/usb/gadget/f_rndis.c
+++ b/drivers/usb/gadget/f_rndis.c
@@ -755,8 +755,6 @@ rndis_unbind(struct usb_configuration *c, struct usb_function *f)
rndis_deregister(rndis->config);
rndis_exit();
- rndis_string_defs[0].id = 0;
-
if (gadget_is_dualspeed(c->cdev->gadget))
usb_free_descriptors(f->hs_descriptors);
usb_free_descriptors(f->descriptors);
@@ -796,14 +794,14 @@ rndis_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
if (!can_support_rndis(c) || !ethaddr)
return -EINVAL;
+ /* setup RNDIS itself */
+ status = rndis_init();
+ if (status < 0)
+ return status;
+
/* maybe allocate device-global string IDs */
if (rndis_string_defs[0].id == 0) {
- /* ... and setup RNDIS itself */
- status = rndis_init();
- if (status < 0)
- return status;
-
/* control interface label */
status = usb_string_id(c->cdev);
if (status < 0)
diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c
index d3cdffe..bbfbde7 100644
--- a/drivers/usb/gadget/rndis.c
+++ b/drivers/usb/gadget/rndis.c
@@ -1147,11 +1147,15 @@ static struct proc_dir_entry *rndis_connect_state [RNDIS_MAX_CONFIGS];
#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
+static bool rndis_initialized;
int rndis_init(void)
{
u8 i;
+ if (rndis_initialized)
+ return 0;
+
for (i = 0; i < RNDIS_MAX_CONFIGS; i++) {
#ifdef CONFIG_USB_GADGET_DEBUG_FILES
char name [20];
@@ -1178,6 +1182,7 @@ int rndis_init(void)
INIT_LIST_HEAD(&(rndis_per_dev_params[i].resp_queue));
}
+ rndis_initialized = true;
return 0;
}
@@ -1186,7 +1191,13 @@ void rndis_exit(void)
#ifdef CONFIG_USB_GADGET_DEBUG_FILES
u8 i;
char name[20];
+#endif
+ if (!rndis_initialized)
+ return;
+ rndis_initialized = false;
+
+#ifdef CONFIG_USB_GADGET_DEBUG_FILES
for (i = 0; i < RNDIS_MAX_CONFIGS; i++) {
sprintf(name, NAME_TEMPLATE, i);
remove_proc_entry(name, NULL);