#
e236519b |
| 10-Apr-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: implement interrupt transfers As best I can tell, there's no difference between bulk and interrupt transfers in terms of how the HW should be programmed, at least given th
usb: dwc2: implement interrupt transfers As best I can tell, there's no difference between bulk and interrupt transfers in terms of how the HW should be programmed, at least given that we're executing one transaction at a time rather than scheduling them into frames for maximum throughput. This patch ends up sharing the toggle bit state between bulk and interrupt transfers on a particular EP. However I believe this is fine; AFAIK a given EP either uses bulk or interrupt transfers and doesn't mix them. This patch doesn't do anything with the "interval" parameter for interrupt transfers, but then most other USB controller drivers in U-Boot don't either. It turns out that one of my keyboards is happy to work using control transfers but the other only gives non-zero "HID reports" via interrupt transfers. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
ed9bcbc7 |
| 10-Apr-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: correctly program hcchar for LS devices A bit must be set in HCCHAR when communicating with low-speed devices. I have no idea why there's no corresponding bit to distinguish b
usb: dwc2: correctly program hcchar for LS devices A bit must be set in HCCHAR when communicating with low-speed devices. I have no idea why there's no corresponding bit to distinguish between full-speed and high-speed devices, but no matter; they all work now! Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
4748cce5 |
| 27-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: detect device speed correctly This doesn't make my LS keyboard work any better, but it does at least report the correct speed in "usb tree". Signed-off-by: Stephen Wa
usb: dwc2: detect device speed correctly This doesn't make my LS keyboard work any better, but it does at least report the correct speed in "usb tree". Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
5c0beb5c |
| 24-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: use phys_to_bus/bus_to_phys Use of these APIs is required on the Raspberry Pi. With this change, USB on RPi1 should be more reliable, and USB on the RPi2 will start working.
usb: dwc2: use phys_to_bus/bus_to_phys Use of these APIs is required on the Raspberry Pi. With this change, USB on RPi1 should be more reliable, and USB on the RPi2 will start working. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
fc909c05 |
| 24-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: fix bulk transfers When I created wait_for_chhltd(), I noticed that some instances of the code it replaced expected the ACK bit to be set and others didn't. I assumed this
usb: dwc2: fix bulk transfers When I created wait_for_chhltd(), I noticed that some instances of the code it replaced expected the ACK bit to be set and others didn't. I assumed this was an accidental inconsistency in the code, so wrote wait_for_chhltd() to always expect ACK to be set. This code appeared to work correctly for both enumeration of USB keyboards and operation of USB Ethernet devices. However, this change broke USB Mass Storage (at least my USB SD card reader). This change reverts to exactly the original behaviour. I'm not sure why the ACK bit isn't always set (perhaps a quirk in the USB HW or DWC2 controller), but the code works this way! Fixes: 5be4ca7d6ac8 ("usb: dwc2: unify waiting for transfer completion") Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
805b67e1 |
| 08-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: remove restriction on buffer length Each USB transfer is split up into chunks that are held in an aligned buffer. This imposes a limit on the size of each chunk, but no limit
usb: dwc2: remove restriction on buffer length Each USB transfer is split up into chunks that are held in an aligned buffer. This imposes a limit on the size of each chunk, but no limit on the total size of transferred data. Fix the logic in chunk_msg() not to reject large transfers, but simply take the size of the aligned buffer into account when calculating the chunk size. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
d1c880c6 |
| 08-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: fix aligned buffer usage The original aligned_buffer usage: a) Uselessly copied data into the aligned buffer even for IN transactions. Fix this my making the copy condi
usb: dwc2: fix aligned buffer usage The original aligned_buffer usage: a) Uselessly copied data into the aligned buffer even for IN transactions. Fix this my making the copy conditional. b) Always programmed the HW to transfer to/from the start of the aligned buffer. This worked fine for OUT transactions since the memcpy copied the OUT data to this location too. However, for large IN transactions, since the copy from the aligned buffer to the "client" buffer was deferred until after all chunks were transferred. it resulted in each chunk's transfer over-writing the data for the first transfer. Fix this by copying IN data as soon as it's received. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
66ffc875 |
| 07-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: simplify wait_for_chhltd toggle is never NULL. Simplify the code by removing handling of when it is NULL. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
|
#
282685e0 |
| 07-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: remove control_data_toggle[] The control data toggle resets to DATA1 at the start of the data phase of every setup transaction. We don't need a global variable to store th
usb: dwc2: remove control_data_toggle[] The control data toggle resets to DATA1 at the start of the data phase of every setup transaction. We don't need a global variable to store the value; we can just store it on the stack. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
ee837554 |
| 07-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: usb chunk_msg() for control transfers too This removes duplicated code. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
|
#
7b5e504d |
| 07-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: refactor submit_bulk_msg to be common Move the body of submit_bulk_msg() into new function chunk_msg(). This can be shared with submit_control_msg() to reduce code duplication
usb: dwc2: refactor submit_bulk_msg to be common Move the body of submit_bulk_msg() into new function chunk_msg(). This can be shared with submit_control_msg() to reduce code duplication, and allow control messages larger than maxpacket. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
show more ...
|
#
4a1d21fc |
| 07-Mar-2015 |
Stephen Warren <swarren@wwwdotorg.org> |
usb: dwc2: unify waiting for transfer completion Lift common code out of submit_bulk_msg() and submit_control_msg(). Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
|
#
bd5053ff |
| 14-Jan-2015 |
Tom Rini <trini@ti.com> |
Merge branch 'buildman' of git://git.denx.de/u-boot-x86 Conflicts: tools/buildman/control.py Signed-off-by: Tom Rini <trini@ti.com>
|
#
fc9b0b80 |
| 11-Dec-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://git.denx.de/u-boot-usb Conflicts: board/freescale/mx6sxsabresd/mx6sxsabresd.c Signed-off-by: Tom Rini <trini@ti.com>
|
#
85bafb6d |
| 25-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq
|
#
21008ad6 |
| 26-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx Conflicts: drivers/mmc/fsl_esdhc.c Signed-off-by: Tom Rini <trini@ti.com>
|
#
878cd63e |
| 25-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of http://git.denx.de/u-boot-samsung
|
#
1fc4e6f4 |
| 25-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge git://git.denx.de/u-boot-fdt
|
#
fce0a90a |
| 24-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://git.denx.de/u-boot-arm
|
#
dee332ff |
| 24-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://www.denx.de/git/u-boot-imx
|
#
1739564e |
| 24-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge git://git.denx.de/u-boot-dm Conflicts: drivers/serial/serial-uclass.c Signed-off-by: Tom Rini <trini@ti.com>
|
#
746667f1 |
| 24-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge git://git.denx.de/u-boot-x86 Conflicts: arch/x86/cpu/Makefile Signed-off-by: Tom Rini <trini@ti.com>
|
#
b4141195 |
| 06-Nov-2014 |
Masahiro Yamada <yamada.m@jp.panasonic.com> |
linux/kernel.h: sync min, max, min3, max3 macros with Linux U-Boot has never cared about the type when we get max/min of two values, but Linux Kernel does. This commit gets min, max, mi
linux/kernel.h: sync min, max, min3, max3 macros with Linux U-Boot has never cared about the type when we get max/min of two values, but Linux Kernel does. This commit gets min, max, min3, max3 macros synced with the kernel introducing type checks. Many of references of those macros must be fixed to suppress warnings. We have two options: - Use min, max, min3, max3 only when the arguments have the same type (or add casts to the arguments) - Use min_t/max_t instead with the appropriate type for the first argument Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Pavel Machek <pavel@denx.de> Acked-by: Lukasz Majewski <l.majewski@samsung.com> Tested-by: Lukasz Majewski <l.majewski@samsung.com> [trini: Fixup arch/blackfin/lib/string.c] Signed-off-by: Tom Rini <trini@ti.com>
show more ...
|
#
2db8c2d6 |
| 07-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://git.denx.de/u-boot-arm
|
#
625509ab |
| 05-Nov-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://www.denx.de/git/u-boot-imx
|