summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-02-16ARM: fiq_debugger: fix compiling for v3.3Colin Cross
Call kernel_restart instead of arch_reset, the ARM reset handling has changed. Remove localtimer irq printing, they now show up in the regular irq stats. Change-Id: I523da343b292c5711f3e1cbfd766d32eea2da84e Signed-off-by: Colin Cross <ccross@android.com>
2016-02-16ARM: Add generic fiq serial debuggerIliyan Malchev
Change-Id: Ibb536c88f0dbaf4766d0599296907e35e42cbfd6 Signed-off-by: Iliyan Malchev <malchev@google.com> Signed-off-by: Arve Hjønnevåg <arve@android.com>
2016-02-16ARM: Add fiq_glueArve Hjønnevåg
Change-Id: I27d2554e07d9de204e0a06696d38db51608d9f6b Signed-off-by: Arve Hjønnevåg <arve@android.com> Signed-off-by: Colin Cross <ccross@android.com>
2016-02-16fix false disconnect due to a signal sent to the reading processkeunyoung
- In the current implementation, when a signal is sent to the reading process, read is cancelled by calling usb_ep_dequeue, which lead into calling acc_complete_out with ECONNRESET, but the current logic treats it as disconnection, which makes the device inaccessible until cable is actually disconnected. - The fix calls disconnect only when ESHUTDOWN error is passed. - If data has already arrived while trying cancelling, the data is marked as available, and it will be read out on the next read. This is necessary as USB bulk is assumed to guarantee no data loss. Signed-off-by: keunyoung <keunyoung@google.com>
2016-02-16usb: gadget: u_ether: use %z format specifier for size_tAmit Pundir
Use '%zd' format specifier for size_t type instead of '%d' to fix build warnings like: drivers/usb/gadget/function/u_ether.c: In function ‘rx_submit’: drivers/usb/gadget/function/u_ether.c:244:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t’ [-Wformat=] DBG(dev, "%s: size: %d\n", __func__, size); ^ Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb: gadget: rndis: fix broken build for 4.4Amit Pundir
Use rndis_params instead of configNr to align with changes from mainline commit 83210e59ee15 "usb: gadget: rndis: use rndis_params instead of configNr". Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb: gadget: rndis: fix broken data aggregation buildAmit Pundir
Declare "cdev" to fix broken AOSP commit "RNDIS: Add Data aggregation (multi packet) support", otherwise we run into following build failure: CC drivers/usb/gadget/function/f_rndis.o drivers/usb/gadget/function/f_rndis.c: In function ‘rndis_command_complete’: drivers/usb/gadget/function/f_rndis.c:479:3: error: ‘cdev’ undeclared (first use in this function) drivers/usb/gadget/function/f_rndis.c:479:3: note: each undeclared identifier is reported only once for each function it appears in make[4]: *** [drivers/usb/gadget/function/f_rndis.o] Error 1 Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb: gadget: rndis: use %z format specifier for size_tAmit Pundir
Use '%z' format specifier for sizeof operator instead of '%u' to fix build warnings like: warning: format '%u' expects type 'unsigned int', but argument 3 has type 'long unsigned int' Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb: gadget: cleanup: fix unused variable and function warningsAmit Pundir
Remove unused variables and functions to fix following build warnings: CC drivers/usb/gadget/configfs.o drivers/usb/gadget/configfs.c: In function ‘gadgets_make’: drivers/usb/gadget/configfs.c:1710:6: warning: unused variable ‘err’ [-Wunused-variable] int err; ^ drivers/usb/gadget/configfs.c:1709:27: warning: unused variable ‘attr’ [-Wunused-variable] struct device_attribute *attr; ^ drivers/usb/gadget/configfs.c:1708:28: warning: unused variable ‘attrs’ [-Wunused-variable] struct device_attribute **attrs; ^ drivers/usb/gadget/configfs.c: In function ‘gadgets_drop’: drivers/usb/gadget/configfs.c:1774:27: warning: unused variable ‘attr’ [-Wunused-variable] struct device_attribute *attr; ^ drivers/usb/gadget/configfs.c:1773:28: warning: unused variable ‘attrs’ [-Wunused-variable] struct device_attribute **attrs; ^ <snip>... CC drivers/usb/gadget/function/f_mtp.o drivers/usb/gadget/function/f_mtp.c:1219:12: warning: ‘mtp_bind_config’ defined but not used [-Wunused-function] static int mtp_bind_config(struct usb_configuration *c, bool ptp_config) ^ drivers/usb/gadget/function/f_mtp.c:1300:12: warning: ‘mtp_setup’ defined but not used [-Wunused-function] static int mtp_setup(void) ^ <snip>... CC drivers/usb/gadget/function/f_accessory.o drivers/usb/gadget/function/f_accessory.c:969:1: warning: ‘acc_function_bind’ defined but not used [-Wunused-function] acc_function_bind(struct usb_configuration *c, struct usb_function *f) { ^ drivers/usb/gadget/function/f_accessory.c:1172:12: warning: ‘acc_bind_config’ defined but not used [-Wunused-function] static int acc_bind_config(struct usb_configuration *c) ^ Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb: gadget: build audio_source function only if SND is enabledAmit Pundir
Also select SND_PCM while building f_audio_source otherwise we run into following build error: LD init/built-in.o drivers/built-in.o: In function `audio_data_complete': /linaro/android/kernel/linaro-android/drivers/usb/gadget/function/f_audio_source.c:458: undefined reference to `snd_pcm_period_elapsed' drivers/built-in.o: In function `audio_pcm_hw_free': /linaro/android/kernel/linaro-android/drivers/usb/gadget/function/f_audio_source.c:770: undefined reference to `snd_pcm_lib_free_vmalloc_buffer' drivers/built-in.o: In function `snd_pcm_lib_alloc_vmalloc_buffer': /linaro/android/kernel/linaro-android/include/sound/pcm.h:1179: undefined reference to `_snd_pcm_lib_alloc_vmalloc_buffer' drivers/built-in.o: In function `audio_pcm_open': /linaro/android/kernel/linaro-android/drivers/usb/gadget/function/f_audio_source.c:734: undefined reference to `snd_pcm_limit_hw_rates' drivers/built-in.o: In function `snd_card_setup': /linaro/android/kernel/linaro-android/drivers/usb/gadget/function/f_audio_source.c:888: undefined reference to `snd_pcm_new' /linaro/android/kernel/linaro-android/drivers/usb/gadget/function/f_audio_source.c:898: undefined reference to `snd_pcm_set_ops' /linaro/android/kernel/linaro-android/drivers/usb/gadget/function/f_audio_source.c:899: undefined reference to `snd_pcm_lib_preallocate_pages_for_all' drivers/built-in.o:(.data+0x1fd28): undefined reference to `snd_pcm_lib_ioctl' make: *** [vmlinux] Error 1 Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb: gadget: configfs: handle gadget reset request for androidAmit Pundir
There is this new mandatory UDC->reset API in v3.18+ kernels, commit ef979a26 "usb: gadget: add reset API at usb_gadget_driver". Let android_disconnect handle that for Android, similar to how composite_disconnect is handling the generic ConfigFS gadget reset request. Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16ANDROID: usb: gadget: create F_midi deviceBadhri Jagan Sridharan
Android frameworks relies on the alsa config reported by the f_midi device. Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Change-Id: I0695e00b166fd953f50acea93802245b0d5a5240
2016-02-16usb: gadget: Add device attribute to determine gadget stateBadhri Jagan Sridharan
Android frameworks (UsbDeviceManager) relies on gadget state exported through device attributes. This CL adds the device attribute to export USB gadget state. Change-Id: Id0391810d75b58c579610fbec6e37ab22f28886d Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
2016-02-16usb: phy: fix dual role sysfs build if kernel modules are supportedAmit Pundir
Add a missing ";" after EXPORT_SYMBOL() otherwise we run into following build error if Kernel Modules are supported: ---------- CC drivers/usb/phy/class-dual-role.o drivers/usb/phy/class-dual-role.c:91:1: error: expected ',' or ';' before 'int' int dual_role_get_property(struct dual_role_phy_instance *dual_role, ^ make[3]: *** [drivers/usb/phy/class-dual-role.o] Error 1 ---------- Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb: phy: Dual role sysfs class definitionBadhri Jagan Sridharan
This CL adds a new class to monitor and change dual role usb ports from userspace. The usb phy drivers can register to the dual_role_usb class and expose the capabilities of the ports. The phy drivers can decide on whether a specific attribute can be changed from userspace by choosing to implement the appropriate callback. Cherry-picked from https://android-review.googlesource.com/#/c/167310/ Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Bug: 21615151 Change-Id: Id1c4aaa97e898264d7006381a7badd029b5d9789
2016-02-16usb: gadget: fix NULL ptr derefer while symlinking PTP funcAmit Pundir
Fix NULL pointer dereference while trying to link PTP function to a gadget configuration without creating MTP function. PTP piggyback on MTP function so make sure we have MTP function created beforehand. Otherwise we run into following kernel panic: ----------------------- [ 70.329957] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 70.330738] pgd = dd8ec000 [ 70.330916] [00000000] *pgd=00000000 [ 70.331663] Internal error: Oops: 805 [#1] SMP THUMB2 [ 70.332155] CPU: 0 PID: 2067 Comm: ln Not tainted 3.18.0-00587-gdfa582e #1 [ 70.332511] task: dd9c92c0 ti: dd822000 task.ti: dd822000 [ 70.333094] PC is at function_alloc_mtp_ptp+0xe/0x68 [ 70.333311] LR is at usb_get_function+0x11/0x1c [ 70.333489] pc : [<c034ec12>] lr : [<c033cce9>] psr: 60070033 <..snip..> [ 70.384111] 3fc0: bec14ae4 00000004 bec14c0a 00000053 00000004 b6f0422d 00000000 bec14adc [ 70.384369] 3fe0: bec14af8 bec14a98 b6f071f3 b6e8977c 20070010 bec14c0d 00000000 00000000 [ 70.384832] [<c034ec12>] (function_alloc_mtp_ptp) from [<c033cce9>] (usb_get_function+0x11/0x1c) [ 70.385146] [<c033cce9>] (usb_get_function) from [<c033da9b>] (config_usb_cfg_link+0x87/0xa8) [ 70.385421] [<c033da9b>] (config_usb_cfg_link) from [<c011f417>] (configfs_symlink+0xb7/0x1c8) [ 70.385696] [<c011f417>] (configfs_symlink) from [<c00dcd8d>] (vfs_symlink+0x85/0xc0) [ 70.386010] [<c00dcd8d>] (vfs_symlink) from [<c00dce0b>] (SyS_symlinkat+0x43/0x70) [ 70.386261] [<c00dce0b>] (SyS_symlinkat) from [<c000ce41>] (ret_fast_syscall+0x1/0x5c) [ 70.386610] Code: eb04 4a0f 6e03 480f (e883) 0005 [ 70.387346] ---[ end trace 8dba7c552e02f8fa ]--- [ 70.387647] Kernel panic - not syncing: Fatal exception [ 70.387980] ---[ end Kernel panic - not syncing: Fatal exception ----------------------- Steps to reproduce the kernel panic: mount -t configfs none /config mkdir /config/usb_gadget/g1 cd /config/usb_gadget/g1 echo 0x18d1 > idVendor echo 0x4e26 > idProduct mkdir strings/0x409 echo 0123459876 > strings/0x409/serialnumber echo Asus > strings/0x409/manufacturer echo Nexus7 > strings/0x409/product mkdir configs/c.1 mkdir configs/c.1/strings/0x409 echo "Conf 1" > configs/c.1/strings/0x409/configuration echo 120 > configs/c.1/MaxPower mkdir functions/ptp.ptp ln -s functions/ptp.ptp configs/c.1/ptp.ptp Also MTP and PTP are mutually exclusive functions so make sure we have only one of it linked to a configuration at a time. Otherwise it opens up another set of bug(s?). Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb:gadget:Add "state" attribute to android_deviceBadhri Jagan Sridharan
Added a device attribute to android_device to determine USB_GADGET's state Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Change-Id: I17f8903120df96bf2f4bf441940b53a87b818230
2016-02-16usb: gadget: Do not disconnect unregistered devBadhri Jagan Sridharan
configfs_composite_unbind sets the gadget data to null. Therefore, add check in disconnect function to make sure that cdev is not NULL. Prints a WARN message if the driver tries to redundantly disconnect a gadget. Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Change-Id: I248cb7175d0dd9a51c18053dd39475d8b3284f6d
2016-02-16usb: gadget: Relocate f_accessoryBadhri Jagan Sridharan
3.18 kernel has reorganized drivers/usb/gadget directory. Moving accessory gadget driver from drivers/usb/gadget to drivers/usb/gadget/function Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Change-Id: If73c6df0537c4b1f51338ed3b0db817e51f06b4a
2016-02-16usb: gadget: Accessory:Migrate to USB_FUNCTION APIBadhri Jagan Sridharan
This patch adds support to use Android accessory gadget function through the DECLARE_USB_FUNCTION_INIT interface. Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Change-Id: Ib352752d5bc905fa1df9049b53eabf1294930db7
2016-02-16usb: gadget: Move gadget functions codeBadhri Jagan Sridharan
3.18 kernel has reorganized drivers/usb/gadget directory. Moving gadget functions drivers from drivers/usb/gadget to drivers/usb/gadget/function Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Change-Id: I1eab0190f8d42e3be1b4e91ad3bc3a2dc853b0ef
2016-02-16usb:gadget:audio_source: Move to USB_FUNCTION APIBadhri Jagan Sridharan
This patch adds support to use audio_source gadget function through DECLARE_USB_FUNCTION_INIT interface. Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Change-Id: I1fc6c9ea07105ae4eb785eebd3bb925bfdd8bc6b
2016-02-16usb: gadget: Add function devices to the parentBadhri Jagan Sridharan
Added create_function_device to create child function devices for USB gadget functions. Android UsbDeviceManager relies on communicating to the devices created by the gadget functions to implement functions such as audio_source. Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Change-Id: I0df9ad86ac32d8cdacdea164e9fed49891b45fc2
2016-02-16usb: gadget: f_audio_source:replace deprecated APIBadhri Jagan Sridharan
Replace snd_card_create with snd_card_new. snd_card_create depcrecated starting form v3.15 Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Change-Id: I76f7d753812963d595055bce7d3e6518163482f5
2016-02-16usb: gadget: check for accessory device before disconnecting HIDsAmit Pundir
While disabling ConfigFS Android gadget, android_disconnect() calls kill_all_hid_devices(), if CONFIG_USB_CONFIGFS_F_ACC is enabled, to free the registered HIDs without checking whether the USB accessory device really exist or not. If USB accessory device doesn't exist then we run into following kernel panic: ----8<---- [  136.724761] Unable to handle kernel NULL pointer dereference at virtual address 00000064 [  136.724809] pgd = c0204000 [  136.731924] [00000064] *pgd=00000000 [  136.737830] Internal error: Oops: 5 [#1] SMP ARM [  136.738108] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.18.0-rc4-00400-gf75300e-dirty #76 [  136.742788] task: c0fb19d8 ti: c0fa4000 task.ti: c0fa4000 [  136.750890] PC is at _raw_spin_lock_irqsave+0x24/0x60 [  136.756246] LR is at kill_all_hid_devices+0x24/0x114 ---->8---- This patch adds a test to check if USB Accessory device exists before freeing HIDs. Change-Id: Ie229feaf0de3f4f7a151fcaa9a994e34e15ff73b Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2016-02-16usb: u_ether: Fix compile errorsPraneeth Bajjuri
commit f1a1823ff24fa4e3412b5078f20021cf40834946 usb: gadget: u_ether: convert into module changes qlen function definition. and this has to be fixed accordingly in current u_ether driver. This patch fixes following compile error in u_ether caused by commit. drivers/usb/gadget/u_ether.c: In function 'rx_fill': drivers/usb/gadget/u_ether.c:416:3: error: too few arguments to function 'qlen' if (++req_cnt > qlen(dev->gadget)) ^ drivers/usb/gadget/u_ether.c: In function 'eth_start_xmit': drivers/usb/gadget/u_ether.c:738:24: error: 'qmult' undeclared (first use in this function) if (dev->tx_qlen == (qmult/2)) { which was caused by commits commit 79467317949e1621240f632acfb7453783bec2e7 USB: gadget: u_ether: Fix data stall issue in RNDIS tethering mode commit 68b91e8c54f5c091986c5719631893b10eab760a usb: u_ether: Add workqueue as bottom half handler for rx data path Change-Id: Ic4e5a1e08cb688e5a606c7c1895f869d8f887b9f Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
2016-02-16usb: gadget: Add Uevent to notify userspaceBadhri Jagan Sridharan
Android userspace UsbDeviceManager relies on the uevents generated by the composition driver to generate user notifications. This CL adds uevents to be generated whenever USB changes its state i.e. connected, disconnected, configured. This CL also intercepts the setup requests from the usb_core anb routes it to the specific usb function if required. Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Change-Id: Ib3d3a78255a532f7449dac286f776c2966caf8c1
2016-02-16usb: gadget: configfs: Add usb_function ptr to fi structBadhri Jagan Sridharan
Add a pointer to the usb_function inside the usb_function_instance structure to service functions specific setup requests even before the function gets added to the usb_gadget Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> Change-Id: I6f457006f6c5516cc6986ec2acdf5b1ecf259d0c
2016-02-16usb: gadget: mtp/ptp: Migrate functions to the USB_FUNCTION interfaceBadhri Jagan Sridharan
This patch adds support to use mtp/ptp gadget functions through the DECLARE_USB_FUNCTION_INIT interface. enabling USB_CONFIGFS_F_MTP config compiles f_mtp.c thereby providing support for MTP gadget enabling USB_CONFIGFS_F_PTP config compiles f_ptp.c thereby providing support for PTP gadget Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Change-Id: I38d7b570e8886d155ef10cd2c839b2232dcb3158
2016-02-16USB: gadget: rndis: Add module parameter for DL max packets per xferxerox_lin
Currently DL aggregation is supported in RNDIS driver and is set to 3 by default. And there is no support to change downlink maximum packets per transfer at runtime through module parameter. Hence add module parameter for DL maximum packets per transfer to change it at runtime. echo 6 > /sys/module/g_android/parameters/rndis_dl_max_pkt_per_xfer To disable DL aggregation during runtime, echo 1 > /sys/module/g_android/parameters/rndis_dl_max_pkt_per_xfer Change-Id: I3a1d0bc97358e2b6f233df7ae8725fb507de50db Signed-off-by: Xerox Lin <xerox_lin@htc.com> Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
2016-02-16ndis: Add debug support to disable RNDIS Multipacket FeatureBadhri Jagan Sridharan
This change adds module param which allows to disable RNDIS Multi-packet Feature (Aggregation support in Downlink path) as this feature is enabled by default. To disable use this param before moving to RNDIS Composition: echo 1 > /sys/module/g_android/parameters/rndis_multipacket_dl_disable Also counts errors as Rx errors if received RNDIS packets are not following RNDIS message format as those packets are being discarded. Change-Id: I764430da78f2204af92e14bb279c11b24c7e4c67 Signed-off-by: Mayank Rana <mrana@codeaurora.org>
2016-02-16RNDIS: Add Data aggregation (multi packet) supportBadhri Jagan Sridharan
Add data aggregation support using RNDIS Multi Packet feature to achieve better UDP Downlink throughput. Max 3 RNDIS Packets aggregated into one RNDIS Packet with this implementation. With this change, seeing UDP Downlink throughput increase from 90 Mbps to above 100 Mbps when using Iperf and sending data more than 100 Mbps. Change-Id: I21c39482718944bb1b1068bdd02f626531e58f08 Signed-off-by: Mayank Rana <mrana@codeaurora.org> Signed-off-by: Rajkumar Raghupathy <raghup@codeaurora.org>
2016-02-16USB: gadget: u_ether: Fix data stall issue in RNDIS tethering modeBadhri Jagan Sridharan
For dual speed gadget, with current no. of request(10), there is possibility of corner case occurence where all 10 reuqests are queued to HW without setting IOC bit, which could lead to data stall in RNDIS tethering and RNDIS local networking. With this patch, counter will be incremented before queueing request to HW and sets IOC bit for every nth request due to which the corner case of all requests queued to HW without IOC bit set will be avoided. Change-Id: I26515bfd9bbc8f7af38be7835692143f7093118a Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
2016-02-16usb: gadget: prevent change of Host MAC address of 'usb0' interfacetaeju.park
On windows 7 platform, previously allocated ip address is maintained. However, Host MAC address of 'usb0' interface is changed when the tethering driver re-enumerated. Thus, the tethering network driver can't be allocated ip address from dhcp. It causes connection delay between host and phone for usb tethering. This patch prevents from changing Host MAC address of 'usb0' interface. In other words, this patch maintains the Host MAC address allocated when first tethering driver although the driver is re-enumerated. However, after reboot, the Host MAC address can be changed. Change-Id: I43add9925e9d6d90c56cffbd3ed999104448f818 Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
2016-02-16usb: u_ether: Add workqueue as bottom half handler for rx data pathBadhri Jagan Sridharan
u_ether driver passes rx data to network layer and resubmits the request back to usb hardware in interrupt context. Network layer processes rx data by scheduling tasklet. For high throughput scenarios on rx data path driver is spending lot of time in interrupt context due to rx data processing by tasklet and continuous completion and re-submission of the usb requests which results in watchdog bark. Hence move the rx data processing and usb request submission to a workqueue bottom half handler. Change-Id: I316de8e267997137ac189a8b7b2846fa325f4a5a Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
2016-02-16usb: Add support for rndis uplink aggregationxerox_lin
RNDIS protocol supports data aggregation on uplink and can help reduce mips by reducing number of interrupts on device. Throughput also improved by 20-30%. Aggregation is disabled by setting aggregation packet size to 1. To help better UL throughput, set as ul aggregation support to 3 rndis packets by default. It can be configured via module parameter: rndis_ul_max_pkt_per_xfer. Change-Id: I0b62a21a5c3ceb6b04933d0d6da33301dbafe493 Signed-off-by: Vamsi Krishna <vskrishn@codeaurora.org> Signed-off-by: Xerox Lin <xerox_lin@htc.com>
2016-02-16USB: rndis: Free the rndis response queue during REMOTE_NDIS_RESET_MSGxerox_lin
When rndis data transfer is in progress, some Windows7 Host PC is not sending the GET_ENCAPSULATED_RESPONSE command for receiving the response for the previous SEND_ENCAPSULATED_COMMAND processed. The rndis function driver appends each response for the SEND_ENCAPSULATED_COMMAND in a queue. As the above process got corrupted, the Host sends a REMOTE_NDIS_RESET_MSG command to do a soft-reset. As the rndis response queue is not freed, the previous response is sent as a part of this REMOTE_NDIS_RESET_MSG's reset response and the Host blocks any more Rndis transfers. Hence free the rndis response queue as a part of this soft-reset so that the current response for REMOTE_NDIS_RESET_MSG is sent properly during the response command. Change-Id: I8eff3849db452fe01b7d1fe4140ef1f1ad3f4fd4 Signed-off-by: Rajkumar Raghupathy <raghup@codeaurora.org> Signed-off-by: Xerox Lin <xerox_lin@htc.com>
2016-02-16usb: gadget: f_audio_source: Fixed USB Audio Class Interface DescriptorAnson Jacob
Fixed Android Issue #56549. When both Vendor Class and Audio Class are activated for AOA 2.0, the baInterfaceNr of the AudioControl Interface Descriptor points to wrong interface numbers. They should be pointing to Audio Control Device and Audio Streaming interfaces. Replaced baInterfaceNr with the correct value. Change-Id: Iaa083f3d97c1f0fc9481bf87852b2b51278a6351 Signed-off-by: Anson Jacob <ansonkuzhumbil@gmail.com>
2016-02-16usb: gadget: f_audio_source: change max ISO packet sizeAnson Jacob
Re-applying from https://gitorious.org/shr/linux/commit/eb4c9d2db894c3492c0a848581bd4f6790f93d5f Most USB-AUDIO devices are limited to 256 byte for max iso buffer size. If a IN_EP_MAX_PACKET_SIZE is bigger than a USB-AUDIO device's max iso buffer size, it will cause noise. This patch will prevent this case as possibe by reducing packet size. When using 44.1khz, 2ch, 16bit audio data, if max packet size is bigger than 176 bytes, it's no problem. Credits to: Iliyan Malchev <malchev@google.com> Change-Id: Ic2a1c19ea65d5fb42bf12926b51b255b465d7215 Signed-off-by: Anson Jacob <ansonkuzhumbil@gmail.com>
2016-02-16usb: gadget: f_accessory: Enabled Zero Length Packet (ZLP) for acc_writeAnson Jacob
Accessory connected to Android Device requires Zero Length Packet (ZLP) to be written when data transferred out from the Android device are multiples of wMaxPacketSize (64bytes (Full-Speed) / 512bytes (High-Speed)) to end the transfer. Change-Id: Ib2c2c0ab98ef9afa10e74a720142deca5c0ed476 Signed-off-by: Anson Jacob <ansonkuzhumbil@gmail.com>
2016-02-16drivers: usb: gadget: 64-bit related type fixesGreg Hackmann
Change-Id: I2f9b12e1e0cdfe64ffe20db78d319a6221821184 Signed-off-by: Greg Hackmann <ghackmann@google.com>
2016-02-16usb: gadget: f_accessory: move userspace interface to uapiColin Cross
Move the entire contents of linux/usb/f_accessory.h header to uapi, it only contains a userspace interface. Change-Id: Ieb5547da449588ae554988a201c0e6b4e3afc531 Signed-off-by: Colin Cross <ccross@android.com>
2016-02-16usb: gadget: f_mtp: move userspace interface to uapiColin Cross
Move the most of linux/usb/f_mtp.h header to uapi. Move the only remaining structure definition into f_mtp.c, the only place that uses it. Change-Id: I952c1a9dc15c36bf295a0eb4d74b6b1ad912ed03 Signed-off-by: Colin Cross <ccross@android.com>
2016-02-16USB: remove duplicate out endpoint creation in MTP modePeter Oh
Android MTP gadget uses 3 endpoints which are 1 in endpoint, 1 out endpoint, and 1 interrupt endpoint. However when MTP gadget creates its endpoints, it creates the out endpoint twice and overwrites the first created out endpoint with the second one, so that it causes a leak of endpoint resources. Change-Id: Iba82950095610b26b362f4b10a67cedfb1fee366 Signed-off-by: Peter Oh <poh@broadcom.com> Reviewed-on: http://mps-gerrit.broadcom.com/37744 Reviewed-by: Graham Williams <gwilli@broadcom.com> Reviewed-by: John Garry <jgarry@broadcom.com> Branch-Open: Branch Status <branch_status_noreply@broadcom.com> Reviewed-by: Checkpatch Status <checkpatch_status_noreply@broadcom.com> Reviewed-by: Joyjit Nath <joyjit@broadcom.com> Tested-by: AutoSubmit Status <autosubmit_status_noreply@broadcom.com>
2016-02-16usb: gadget: Fix android gadget driver buildBenoit Goby
Removed obsolete f_adb function Change-Id: Idfb4110429bc0ea63f493c68ad667f49ca471987 Signed-off-by: Benoit Goby <benoit@android.com>
2016-02-16usb: gadget: android: Fixes and hacks to make android usb gadget compile on 3.8Arve Hjønnevåg
Change-Id: I332a6802dbd49b4018b9318b8621d26ed94c955d Signed-off-by: Arve Hjønnevåg <arve@android.com>
2016-02-16usb: otg: otg-wakelock: Fix build for 3.7Arve Hjønnevåg
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2016-02-16usb: gadget: accessory: Fix section mismatch (again)Todd Poynor
create_bulk_endpoints should not be __init since it is called when accessory is enabled. Change-Id: Iac6e9f29d53c93760e926efd8e7603432632acb4 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2016-02-16USB: gadget: f_audio_source: New gadget driver for audio outputMike Lockwood
This driver presents a standard USB audio class interface to the host and an ALSA PCM device to userspace Change-Id: If16b14a5ff27045f9cb2daaf1ae9195c5eeab7d0 Signed-off-by: Mike Lockwood <lockwood@google.com>
2016-02-16USB: gadget: f_accessory: Add support for HID input devicesMike Lockwood
Change-Id: I4f1452db32508382df52acdc47c0eb395ae328c7 Signed-off-by: Mike Lockwood <lockwood@google.com>