diff options
author | JP Abgrall <jpa@google.com> | 2012-02-06 13:07:39 -0800 |
---|---|---|
committer | JP Abgrall <jpa@google.com> | 2012-02-06 13:07:39 -0800 |
commit | 66b1fe9916260621f3decf5b61142f4010e6cd12 (patch) | |
tree | f5ca3444102f737dbdd72d97dc1b94bf62338633 /drivers/usb/gadget | |
parent | 47771afc77173e4d87f67cd11c792b92e8578e72 (diff) | |
parent | 1f8c5cecfe44994cd617ba2803f41fb56d53e91c (diff) | |
download | kernel_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.c | 4 | ||||
-rw-r--r-- | drivers/usb/gadget/f_rndis.c | 12 | ||||
-rw-r--r-- | drivers/usb/gadget/rndis.c | 11 |
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); |