9599815de61db104ad21bc61f5e3544d2415c6ee |
|
20-Oct-2014 |
Marek Szyprowski <m.szyprowski@samsung.com> |
usb: dwc2: gadget: fix enumeration issues Excessive debug messages might cause timing issues that prevent correct usb enumeration. This patch hides information about USB bus reset to let driver enumerate fast enough to avoid making host angry. This fixes endless enumeration and usb reset loop observed with some Linux hosts. Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
|
3a8146aafcedd93e42045598802e1eb71cae68c0 |
|
20-Oct-2014 |
Marek Szyprowski <m.szyprowski@samsung.com> |
usb: dwc2: gadget: disable phy before turning off power regulators This patch fixes probe function to match the pattern used elsewhere in the driver, where power regulators are turned off as the last element in the device shutdown procedure. Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
|
32805c350bad16e7d4debe55820d2e79dca89fb6 |
|
20-Oct-2014 |
Marek Szyprowski <m.szyprowski@samsung.com> |
usb: dwc2: gadget: fix gadget unregistration in udc_stop() function udc_stop() should clear ->driver pointer unconditionally to let the UDC framework to work correctly with both registering/unregistering gadgets and enabling/disabling gadgets by writing to /sys/class/udc/*hsotg/soft_connect interface. Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
|
b585a48b8a9486f26a68886278f2c8f981676dd4 |
|
17-Oct-2014 |
Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
usb: dwc2: gadget: sparse warning of context imbalance sparse was giving the following warning: warning: context imbalance in 's3c_hsotg_ep_enable' - different lock contexts for basic block we were returning ENOMEM while still holding the spinlock. The sparse warning was fixed by releasing the spinlock before return. Cc: <stable@vger.kernel.org> # v3.17 Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
|
304f7e5e1d08fa2f5674c1323bd0ebd806c86b81 |
|
24-Sep-2014 |
Michal Sojka <sojka@merica.cz> |
usb: gadget: Refactor request completion Use the recently introduced usb_gadget_giveback_request() in favor of direct invocation of the completion routine. All places in drivers/usb/ matching "[-.]complete(" were replaced with a call to usb_gadget_giveback_request(). This was compile-tested with all ARM drivers enabled and runtime-tested for musb. Signed-off-by: Michal Sojka <sojka@merica.cz> Acked-by: Felipe Balbi <balbi@ti.com> Tested-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
1b59fc7e3cda3f626204cadda8bb9b7d15f4f55b |
|
09-Sep-2014 |
Kamil Debski <k.debski@samsung.com> |
usb: dwc2/gadget: move phy bus legth initialization This patch moves the part of code that initializes the PHY bus width. This results in simpler code and removes the need to check whether the Generic PHY Framework is used. Signed-off-by: Kamil Debski <k.debski@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
d00b41428042e72d9dc2557d9147434a4e3d631f |
|
09-Sep-2014 |
Robert Baldyga <r.baldyga@samsung.com> |
usb: dwc2/gadget: disable clock when it's not needed When device is stopped or suspended clock is not needed so we can disable it for this time. Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
b203d0a2e32dd28e87780078f0789322862e4da8 |
|
09-Sep-2014 |
Robert Baldyga <r.baldyga@samsung.com> |
usb: dwc2/gadget: assign TX FIFO dynamically Because we have not enough memory to have each TX FIFO of size at least 3072 bytes (the maximum single packet size with 3 transactions per microframe), we create four FIFOs of lenght 1024, and four of length 3072 bytes, and assing them to endpoints dynamically according to maxpacket size value of given endpoint. Up to now there were initialized 16 TX FIFOs, but we use only 8 IN endpoints, so we can split available memory for 8 FIFOs to have more memory for each one. It needed to do some small modifications in few places in code, because there was assumption that TX FIFO numbers assigned to endpoints are the same as the endpoint numbers, which is not true since we have dynamic FIFO assigning. Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
cff9eb756e18a7763d7ab9c574c0ab191e712341 |
|
09-Sep-2014 |
Marek Szyprowski <m.szyprowski@samsung.com> |
usb: dwc2/gadget: ensure that all fifos have correct memory buffers Print warning if FIFOs are configured in such a way that they don't fit into the SPRAM available on the s3c hsotg module. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
1e01129373f757925a652ea4ea5b278f8c2b9222 |
|
09-Sep-2014 |
Marek Szyprowski <m.szyprowski@samsung.com> |
usb: dwc2/gadget: hide some not really needed debug messages Some DWC2/s3c-hsotg debug messages are really useless for typical user, so hide them behind dev_dbg(). Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
d784f1e50977e58db23a79181971c3c0f62452e5 |
|
09-Sep-2014 |
Andrzej Pietrasiewicz <andrzej.p@samsung.com> |
usb: dwc2/gadget: Fix comment text Adjust the debug text to the name of the printed variable. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
87df8ac3d2e4f47f3d24e6038110feebbe8954cf |
|
11-Sep-2014 |
Robert Baldyga <r.baldyga@samsung.com> |
Revert "usb: dwc2: move "samsung,s3c6400-hsotg" into common platform" This reverts commit 8df438571cdbd5c4fcd1b25b19eea1ad5c3cf777. This patch breaks building dwc2 driver in gadget mode at samsung platforms. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
604eac3c0c69e98f2fd0133305f9e777418f1d3b |
|
09-Sep-2014 |
Robert Baldyga <r.baldyga@samsung.com> |
usb: dwc2/gadget: avoid disabling ep0 Endpoint 0 should not be disabled, so we start loop counter from number 1. Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Cc: stable <stable@vger.kernel.org> # 3.16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
eb3c56c5ccdd252940cb0ec0541fcdc94894bd8d |
|
09-Sep-2014 |
Marek Szyprowski <m.szyprowski@samsung.com> |
usb: dwc2/gadget: delay enabling irq once hardware is configured properly This patch fixes kernel panic/interrupt storm/etc issues if bootloader left s3c-hsotg module in enabled state. Now interrupt handler is enabled only after proper configuration of hardware registers. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Cc: stable <stable@vger.kernel.org> # 3.16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
b510df5a36c066da3a188f4ade3404118b63c6de |
|
09-Sep-2014 |
Marek Szyprowski <m.szyprowski@samsung.com> |
usb: dwc2/gadget: do not call disconnect method in pullup This leads to potential spinlock recursion in composite framework, other udc drivers also don't call it directly from pullup method. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Cc: stable <stable@vger.kernel.org> # 3.16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
e0cbe595db72b037260bbda77106f6811a1ebb1d |
|
09-Sep-2014 |
Marek Szyprowski <m.szyprowski@samsung.com> |
usb: dwc2/gadget: break infinite loop in endpoint disable code This patch fixes possible freeze caused by infinite loop in interrupt context. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Cc: stable <stable@vger.kernel.org> # 3.16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
ca2c5ba80f823a38c4aae506e2f03c1afb076b0a |
|
09-Sep-2014 |
Kamil Debski <k.debski@samsung.com> |
usb: dwc2/gadget: fix phy initialization sequence In the Generic PHY Framework a NULL phy is considered to be a valid phy thus the "if (hsotg->phy)" check does not give us the information whether the Generic PHY Framework is used. In addition to the above this patch also removes phy_init from probe and phy_exit from remove. This is not necessary when init/exit is done in the s3c_hsotg_phy_enable/disable functions. Signed-off-by: Kamil Debski <k.debski@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Cc: stable <stable@vger.kernel.org> # 3.16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
0655314be0d9c54ad5f63500219485c6a9d9e5e2 |
|
09-Sep-2014 |
Kamil Debski <k.debski@samsung.com> |
usb: dwc2/gadget: fix phy disable sequence When the driver is removed s3c_hsotg_phy_disable is called three times instead of once. This results in decreasing of the phy reference counter below zero and thus consecutive inserts of the module fails. This patch removes calls to s3c_hsotg_phy_disable from s3c_hsotg_remove and s3c_hsotg_udc_stop. s3c_hsotg_udc_stop is called from udc-core.c only after usb_gadget_disconnect, which in turn calls s3c_hsotg_pullup, which already calls s3c_hsotg_phy_disable. s3c_hsotg_remove must be called only after udc_stop, so there is no point in disabling phy once again there. Signed-off-by: Kamil Debski <k.debski@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> Cc: stable <stable@vger.kernel.org> # 3.16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
8df438571cdbd5c4fcd1b25b19eea1ad5c3cf777 |
|
26-Aug-2014 |
Dinh Nguyen <dinguyen@opensource.altera.com> |
usb: dwc2: move "samsung,s3c6400-hsotg" into common platform Move the "samsung,s3c6400-hsotg" binding as the probe function in the gadget driver will get removed when the dual-role driver is implemented. Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
9b2667f1f30e91becc3751acd5cffaedcf68e098 |
|
19-Aug-2014 |
Jingoo Han <jg1.han@samsung.com> |
usb: dwc2: gadget: Set the default EP max packet value as 8 bytes Set the default EP max packet value as 8 bytes, because in the case of low-speed, 'ep_mps' is not set. Thus, the default value of 'ep_mps' should be considered for the case of low-speed. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
194f74ebc68f0655d40e9cb4e8a70ef8e8d4d261 |
|
19-Aug-2014 |
Peter Chen <peter.chen@freescale.com> |
usb: dwc2: gadget: fix below build warning linux-2.6/drivers/usb/dwc2/gadget.c: In function 's3c_hsotg_irq_enumdone': linux-2.6/drivers/usb/dwc2/gadget.c:1904: warning: 'ep_mps' may be used uninitialized in this function Acked-by: Paul Zimmerman <Paul.Zimmerman@synopsys.com> Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
53dbcb399b22dad14becb2557a1ebea258ac266d |
|
03-Jun-2014 |
Jingoo Han <jg1.han@samsung.com> |
usb: dwc2: gadget: remove incorrect file reference The file and folder movements resulted in the incorrect reference. So for better code maintainability, let's remove it. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
d04477d84be0bcac96452bdb824ff6eec4b49c96 |
|
03-Jun-2014 |
Jingoo Han <jg1.han@samsung.com> |
usb: dwc2: gadget: remove unnecessary OOM messages The site-specific OOM messages are unnecessary, because they duplicate the MM subsystem generic OOM message. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
e9ebe7c3b76c24fd5bc2f3b99db453ea71c3072b |
|
03-Jun-2014 |
Jingoo Han <jg1.han@samsung.com> |
usb: dwc2: gadget: fix checkpatch errors Fix checkpatch errors as belows. ERROR: open brace '{' following function declarations go on the next line ERROR: space required before the open parenthesis '(' Signed-off-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
0cc4cf6f3049fe174b6698016e046a233a2a6045 |
|
29-Apr-2014 |
Fabio Estevam <fabio.estevam@freescale.com> |
usb: dwc2: Remove '0x' notation when using %pad format %pad notation automatically prints in hexadecimal format (with '0x'), so remove the unneeded '0x' to avoid a '0x0x' string. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
d5dbd3f7d82223b59dc2200c0e9f4f95665a21a4 |
|
25-Apr-2014 |
Paul Zimmerman <Paul.Zimmerman@synopsys.com> |
usb: dwc2: fix sparse warning Sparse warns about the __le16 wValue from the USB SetAddress command being used without converting it to CPU endianness. Fix that, and also add a bit of defensive masking of the received wValue before using it. Reported-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
f7c0b14351c483bdeb86a81d609e26263cb0dd30 |
|
14-Apr-2014 |
Dinh Nguyen <dinguyen@altera.com> |
usb: dwc2: move s3c-hsotg data structures This patch moves the data structures that are in the s3c-hsotg source into core.h. This is a necessary step towards unifying the s3c-hsotg and dwc2 into a single DRD. Signed-off-by: Dinh Nguyen <dinguyen@altera.com> [ jh,rb,fb - For gadget part only: ] Tested-by: Jingoo Han <jg1.han@samsung.com> Tested-by: Robert Baldyga <r.baldyga@samsung.com> Acked-by: Felipe Balbi <balbi@ti.com> [ pz - Tested host part only. ] Signed-off-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
47a1685f139271de401212bd69d17374ca5a5270 |
|
14-Apr-2014 |
Dinh Nguyen <dinguyen@altera.com> |
usb: dwc2/s3c-hsotg: move s3c-hsotg into dwc2 directory Moves the s3c-hsotg driver into the dwc2 directory and uses the dwc2 defines in hw.h. Renames s3c-hsotg.c to gadget.c. NOTE: You can build both host and peripheral as a dynamically linked module, but be aware that if you insmod dwc2_gadget, then rmmod it, then insmod dwc2 and dwc2_platform for host mode, this will not work. As the step to rmmod dwc2_gadget.ko will turn off the clock to the USB IP. The dwc2 host driver currently does not look to turn on a clock yet. A patch to fix that will be coming soon. Signed-off-by: Dinh Nguyen <dinguyen@altera.com> [ jh,rb - For gadget part only: ] Tested-by: Jingoo Han <jg1.han@samsung.com> Tested-by: Robert Baldyga <r.baldyga@samsung.com> [ pz: Folded Kconfig/Makefile changes, which were originally in a separate patch, into this one, to avoid a build breakage. Modified Kconfig/Makefile changes a bit. Tested host part only. ] Signed-off-by: Paul Zimmerman <paulz@synopsys.com> Acked-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|