- 18 Aug, 2017 3 commits
-
-
Dmitry Osipenko authored
That quirk is required to make USB Ethernet gadget working on HW that can't cope with unaligned DMA. For some reason only f_ncm sets up that quirk, let's setup it directly in u_ether so other network models would have that quirk applied as well. All network models have been tested with ChipIdea UDC driver on NVIDIA Tegra20 SoC that require DMA to be aligned. Signed-off-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Stephen Warren authored
When the gadget serial device has no associated TTY, do not pass any received data into the TTY layer for processing; simply drop it instead. This prevents the TTY layer from calling back into the gadget serial driver, which will then crash in e.g. gs_write_room() due to lack of gadget serial device to TTY association (i.e. a NULL pointer dereference). Signed-off-by:
Stephen Warren <swarren@nvidia.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Alan Stern authored
The usb_add_gadget_udc_release() routine in the USB gadget core will sometimes but not always call the gadget's release function when an error occurs. More specifically, if the struct usb_udc allocation fails then the release function is not called, and for other errors it is. As a result, users of this routine cannot know whether they need to deallocate the memory containing the gadget structure following an error. This leads to unavoidable memory leaks or double frees. This patch fixes the problem by splitting the existing device_register() call into device_initialize() and device_add(), and doing the udc allocation in between. That way, even if the allocation fails it is still possible to call device_del(), and so the release function will be always called following an error. Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Reported-by:
Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
- 17 Aug, 2017 1 commit
-
-
Franklin S Cooper Jr authored
Update various properties to properly indicate their requirement depending on the SoC. Signed-off-by:
Franklin S Cooper Jr <fcooper@ti.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
- 15 Aug, 2017 36 commits
-
-
Baolin Wang authored
Integrate with the newly added USB charger interface to limit the current we draw from the USB input based on the input device configuration identified by the USB stack, allowing us to charge more quickly from high current inputs without drawing more current than specified from others. Signed-off-by:
Mark Brown <broonie@kernel.org> Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Acked-by:
Lee Jones <lee.jones@linaro.org> Acked-by:
Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Acked-by:
Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Baolin Wang authored
This patch introduces the usb charger support based on usb phy that makes an enhancement to a power driver. The basic conception of the usb charger is that, when one usb charger is added or removed by reporting from the extcon device state change, the usb charger will report to power user to set the current limitation. Power user can register a notifiee on the usb phy by issuing usb_register_notifier() to get notified by charger status changes or charger current changes. we can notify what current to be drawn to power user according to different charger type, and now we have 2 methods to get charger type. One is get charger type from extcon subsystem, which also means the charger state changes. Another is we can get the charger type from USB controller detecting or PMIC detecting, and the charger state changes should be told by issuing usb_phy_set_charger_state(). Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Baolin Wang authored
Introducing USB charger type and state definition can help to support USB charging which will be added in USB phy core. Signed-off-by:
Baolin Wang <baolin.wang@linaro.org> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Jerry Zhang authored
Users can apply i/o in the wrong direction on an endpoint to stall it. In case there is an error that does not allow the endpoint to be stalled, we want the user to know. An operation to stall the endpoint will return EBADMSG if successful, EAGAIN if there are still queued requests, and other errors depending on the underlying implementation. Also remove the conditional since it is always true. Acked-by:
Michal Nazarewicz <mina86@mina86.com> Signed-off-by:
Jerry Zhang <zhangjerry@google.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Al Cooper authored
If a phy is specified in the device tree node, get it and use it. This was based on a patch by: "Srinath Mannam <srinath.mannam@broadcom.com>" Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Al Cooper authored
Many ARM based Broadcom STB SoC's have a USB BDC controller so enable this driver for these systems. Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Al Cooper authored
This patch essentially clears the port status change bits at the correct times. It is necessary because the driver was not handling the change bits correctly for events during device connection/disconnection and bus enumeration. So, one of them (PCC) was left stuck sometimes causing the "xsf for ep not enabled" error we get on first connection. This was found by the Android team. This was debugged and fixed by Sasi Kumar. Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Al Cooper authored
Based on a previous commit by Danesh Petigara <dpetigara@broadcom.com> that added resume to solve the following problem: "The BDC driver will fail after resuming from S3 suspend and this will cause any upper layer gadget driver to fail." This commit also adds support for suspend and manages the clock during suspend/resume. Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Florian Fainelli authored
Allows Device Tree probing Signed-off-by:
Florian Fainelli <f.fainelli@gmail.com> Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Al Cooper authored
Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Al Cooper authored
Newer SoC's have added a BDC clock to the Device Tree, so get and enable it. Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Florian Fainelli <f.fainelli@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Al Cooper authored
Add Device Tree binding document for Broadcom USB Device Controller (BDC). Acked-by:
Rob Herring <robh@kernel.org> Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Al Cooper authored
The BDC endpoint status registers 0-7 were originally each going to be an array of regsiters. This was later changed to being a single register. The register definitions are being changed from: "#define BDC_EPSTS0(n) (0x60 + (n * 0x10))" to "#define BDC_EPSTS0 0x60" to reflect this change and to avoid future coding mistakes. Signed-off-by:
Al Cooper <alcooperx@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
David Lechner authored
This adds 3 new options to the RNDIS gadget function configs. It allows overriding the default USB interface class/subclass/protocol. The motivation for this is that if you set the values to "ef" (Misc), "04" (RNDIS), "01" (Ethernet) respectively, then the device will be recognized by the rndiscmp.inf file in Windows Vista and newer and will cause Windows to load the correct RNDIS driver without the need for a custom (signed) .inf file. Signed-off-by:
David Lechner <david@lechnology.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Arvind Yadav authored
attribute_group are not supposed to change at runtime. All functions working with attribute_group provided by <linux/sysfs.h> work with const attribute_group. So mark the non-const structs as const. Signed-off-by:
Arvind Yadav <arvind.yadav.cs@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Arvind Yadav authored
attribute_group are not supposed to change at runtime. All functions working with attribute_group provided by <linux/sysfs.h> work with const attribute_group. So mark the non-const structs as const. Signed-off-by:
Arvind Yadav <arvind.yadav.cs@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Meng Dongyang authored
In the case hcd autosuspend is enabled, the hcd will enter L2 state if no device connected. But if the controller works in otg mode, the gadget driver still works in L0 state if connected with host. This may result in transfer fail when gadget enqueue new request but the hcd driver has set the global state into L2. This patch prevent the hcd enter L2 state if the controller work in device mode. Signed-off-by:
Meng Dongyang <daniel.meng@rock-chips.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Yoshihiro Shimoda authored
This patch fixes an issue that the spin_lock_init() is not called for almost all pipes. Otherwise, the lockdep output the following message when we connect a usb cable using g_ncm: INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. Reported-by:
Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com> Fixes: b8b9c974 ("usb: renesas_usbhs: gadget: disable all eps when the driver stops") Signed-off-by:
Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Tested-by:
Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Jack Pham authored
In the SG case this is already handled since a non-zero request->num_mapped_sgs is a clear indicator that dma_map_sg() had been called. While it would be nice to do the same for the singly mapped case by simply checking for non-zero request->dma, it's conceivable that 0 is a valid dma_addr_t handle. Hence add a flag 'dma_mapped' to struct usb_request and use this to determine the need to call dma_unmap_single(). Otherwise, if a request is not DMA mapped then the result of calling usb_request_unmap_request() would safely be a no-op. Signed-off-by:
Jack Pham <jackp@codeaurora.org> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Thadeu Lima de Souza Cascardo authored
USB gadget serial console works on functions other than the legacy configurations. Let the user enable it when using any function that uses the serial utilities. Signed-off-by:
Thadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Bhumika Goyal authored
Make the structure const as it is only stored in the ops field of a usb_ep structure, which is of type const. Done using Coccinelle. Signed-off-by:
Bhumika Goyal <bhumirks@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Bhumika Goyal authored
Make the structure const as it is only stored in the ops field of a usb_ep structure, which is of type const. Done using Coccinelle. Signed-off-by:
Bhumika Goyal <bhumirks@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Bhumika Goyal authored
Make the structure const as it is only stored in the ops field of a usb_ep structure, which is of type const. Done using Coccinelle. Signed-off-by:
Bhumika Goyal <bhumirks@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Shawn Guo authored
The header clk-provider.h is there for clock drivers (providers) to include, not client drivers (consumers). That said, of_clk_get_parent_count() is a helper function for clock providers, not a clk API for consumers. Let's replace of_clk_get_parent_count() with of_count_phandle_with_args() call, so that we can remove the include of clk-provider.h. Signed-off-by:
Shawn Guo <shawn.guo@linaro.org> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Jerry Zhang authored
Currenly, f_midi_free uses snd_card_free, which will wait until the user has released the sound card before returning. However, if the user doesn't release the sound card, then f_midi_free can block for an arbitrary amount of time, which also blocks any gadget operations on that thread. Instead, we can use snd_card_free_when_closed which returns before all handles are released. Since f_midi can be accessed through rmidi if usb_put_function is called before release_card_device, add refcounting to f_midi_free and have rawmidi's private free call it. The f_midi memory is only kfreed when usb_put_function and release_card_device have both been called. Signed-off-by:
Jerry Zhang <zhangjerry@google.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Badhri Jagan Sridharan authored
Add super speed descriptors for f_midi. Signed-off-by:
Badhri Jagan Sridharan <Badhri@google.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Colin Ian King authored
The while loop never terminates because the loop counter i is never decremented. Fix this by decrementing i. Detected by CoverityScan, CID#751073 ("Infinite Loop") Signed-off-by:
Colin Ian King <colin.king@canonical.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Julia Lawall authored
These snd_rawmidi_ops structures are only passed as the third argument of snd_rawmidi_set_ops. This argument is const, so the snd_rawmidi_ops structures can be const too. Done with the help of Coccinelle. Signed-off-by:
Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Chunfeng Yun authored
The mtu3 driver is a generic driver for MediaTek usb3 DRD IP, add a generic compatible to avoid confusion when support new SoCs but use a compatible with specific SoC's name "mt8173". Signed-off-by:
Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Abdulhadi Mohamed authored
The current f_hid driver doesn't handle GET_PROCOTOL and SET_PROCOTOL requests, which are required to operate HID gadgets in BOOT mode. This patch implements this feature for devices that have the same implementation for REPORT and BOOT mode so that these devices are recognized by older BIOSes. Signed-off-by:
Abdulhadi Mohamed <abdulahhadi2@gmail.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Chunfeng Yun authored
Ip sleep will auto exit if vbus comparison circuit of u2 phy is disabled when system tries to enter suspend mode, so get vbus-valid status from mac but not from u2 phy when enable DRD mode to fix the issue. Signed-off-by:
Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Chunfeng Yun authored
when the device is reset by host, the status of u1_enable and u2_enable should also be restored to default value. Signed-off-by:
Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Chunfeng Yun authored
Add the delayed status handling. This is used by mass storage etc to gain some extra time to setup its internal status before it can proceed further requests, and once the gadget is ready, it will enqueue an empty packet which is used for synchronization. The issue may happen on some FGPA platform with very low cpu frequency. Signed-off-by:
Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Fabio Estevam authored
Using devm_ioremap_resource() can make the code simpler, as it already does the resource NULL check. Signed-off-by:
Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Julia Lawall authored
qe_ep0_desc is only passed as the second argument to qe_ep_init, which is const, so qe_ep0_desc can be const too. Done with the help of Coccinelle. Acked-by:
Li Yang <leoyang.li@nxp.com> Signed-off-by:
Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-
Yoshihiro Shimoda authored
This patch adds support for R-Car M3-W. This patch also adds R-Car Gen3 generic version's compatible and changes ".compatible" in the usb3_of_match from "renesas,r8a7796-usb3-peri" to "renesas,rcar-gen3-usb3-peri". Signed-off-by:
Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by:
Felipe Balbi <felipe.balbi@linux.intel.com>
-