History log of /openbmc/u-boot/drivers/usb/host/dwc2.c (Results 126 – 150 of 156)
Revision Date Author Comments
# 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


1234567