| #
7372b5bd |
| 25-Mar-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: Refactor EHCI init
Move the bulk of the code in usb_lowlevel_init() into a separate function which will also be used by driver model. Keep the CONFIG options out of this function by providi
dm: usb: Refactor EHCI init
Move the bulk of the code in usb_lowlevel_init() into a separate function which will also be used by driver model. Keep the CONFIG options out of this function by providing a tweak flag for Faraday. We need to avoid using CONFIG options in driver model code where possible, since it makes it impossible to use multiple controllers in that code where they have different options.
The CONFIG_EHCI_HCD_INIT_AFTER_RESET option is also kept out of the common init function. With driver model the controller will be able to perform this extra init itself after registering with the EHCI layer.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
show more ...
|
| #
24ed894f |
| 25-Mar-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: ehci: Use a function to find the controller from struct udevice
With driver model we want to remove the controller pointer in struct udevice and use driver model data structures instead. To
dm: usb: ehci: Use a function to find the controller from struct udevice
With driver model we want to remove the controller pointer in struct udevice and use driver model data structures instead. To prepare for this, move access to this field to a function which can provide a different implementation for driver model.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
show more ...
|
| #
6a1a8162 |
| 25-Mar-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: Pass EHCI controller pointer to ehci_get_portsc_register()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller. This ma
dm: usb: Pass EHCI controller pointer to ehci_get_portsc_register()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller. This makes the weak functions use a consistent API.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
show more ...
|
| #
11d18a19 |
| 25-Mar-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: Pass EHCI controller pointer to ehci_set_usbmode()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller. This makes the
dm: usb: Pass EHCI controller pointer to ehci_set_usbmode()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller. This makes the weak functions use a consistent API.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
show more ...
|
| #
727fce36 |
| 25-Mar-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: Pass EHCI controller pointer to ehci_powerup_fixup()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller.
Signed-off-b
dm: usb: Pass EHCI controller pointer to ehci_powerup_fixup()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
show more ...
|
| #
c4a3141d |
| 25-Mar-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: Allow ECHI to hold private data for the controller
Add a private data pointer that clients of EHCI can use to access their private information. This establishes a link between struct ehci_c
dm: usb: Allow ECHI to hold private data for the controller
Add a private data pointer that clients of EHCI can use to access their private information. This establishes a link between struct ehci_ctrl and its associated controller data structure.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
show more ...
|
| #
7338287d |
| 25-Mar-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: Pass EHCI controller pointer to ehci_get_port_speed()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller.
Signed-off-
dm: usb: Pass EHCI controller pointer to ehci_get_port_speed()
Adjust this function so that it is passed an EHCI controller pointer so that implementations can look up their controller.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
show more ...
|
| #
aac064f7 |
| 25-Mar-2015 |
Simon Glass <sjg@chromium.org> |
dm: usb: Move all the EHCI weak functions together and declare them
Put these at the top of the file so they are in one place. Also add function prototypes to the header file to avoid call site mism
dm: usb: Move all the EHCI weak functions together and declare them
Put these at the top of the file so they are in one place. Also add function prototypes to the header file to avoid call site mismatches.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
show more ...
|
| #
98ae840a |
| 17-Mar-2015 |
Rob Herring <robh@kernel.org> |
ehci-hcd: fix warnings on 64-bit builds
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by:
ehci-hcd: fix warnings on 64-bit builds
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring <robh@kernel.org> Cc: Marek Vasut <marex@denx.de>
show more ...
|
| #
e72d3443 |
| 13-Feb-2015 |
Stefano Babic <sbabic@denx.de> |
Merge branch 'master' of git://git.denx.de/u-boot
|
| #
b44a4149 |
| 20-Jan-2015 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://git.denx.de/u-boot-usb
|
| #
8bb6c1d1 |
| 11-Jan-2015 |
Hans de Goede <hdegoede@redhat.com> |
usb: Add an interval parameter to create_int_queue
Currently create_int_queue is only implemented by the ehci code, and that does not honor interrupt intervals, but other drivers which might also wa
usb: Add an interval parameter to create_int_queue
Currently create_int_queue is only implemented by the ehci code, and that does not honor interrupt intervals, but other drivers which might also want to implement create_int_queue may honor intervals, so add an interval param.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
show more ...
|
| #
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>
|
| #
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, min3, max3 mac
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 ...
|
| #
0c6de885 |
| 17-Nov-2014 |
Masahiro Yamada <yamada.m@jp.panasonic.com> |
usb: ehci: do not set the LSB of Current qTD pointer
According to EHCI specification, the LSB of DWORD 3 of Queue Head (Current qTD Pointer) is not T-bit, but always zero.
Signed-off-by: Masahiro Y
usb: ehci: do not set the LSB of Current qTD pointer
According to EHCI specification, the LSB of DWORD 3 of Queue Head (Current qTD Pointer) is not T-bit, but always zero.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
show more ...
|
| #
8460b89a |
| 24-Sep-2014 |
Hans de Goede <hdegoede@redhat.com> |
usb: Make pollable int support available outside of ehci-hcd.c
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
| #
8aa26b8e |
| 24-Sep-2014 |
Hans de Goede <hdegoede@redhat.com> |
usb: ehci: Move cache invalidation to poll_int_queue
Preperation patch to use poll_int_queue outside of ehci-hcd.c .
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
| #
bd818d81 |
| 24-Sep-2014 |
Hans de Goede <hdegoede@redhat.com> |
usb: ehci: Move interrupt packet length check to create_int_queue
Preperation patch to use create_int_queue outside of ehci-hcd.c .
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
| #
32f2eac1 |
| 24-Sep-2014 |
Hans de Goede <hdegoede@redhat.com> |
usb: ehci: Do not disable an already disabled periodic schedule
When periodic_schedules == 0, the schedule is disabled and there is no reason to disable it again.
Signed-off-by: Hans de Goede <hdeg
usb: ehci: Do not disable an already disabled periodic schedule
When periodic_schedules == 0, the schedule is disabled and there is no reason to disable it again.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
show more ...
|
| #
2d17b489 |
| 08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
ehci-hcd.c: make local functions static
Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
|
| #
3dd80aae |
| 08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
usb: use __weak
Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
|
| #
790af815 |
| 10-Oct-2014 |
Albert ARIBAUD <albert.u.boot@aribaud.net> |
Merge branch 'u-boot/master' into 'u-boot-arm/master'
|
| #
8a6b088a |
| 06-Oct-2014 |
Tom Rini <trini@ti.com> |
Merge branch 'master' of git://git.denx.de/u-boot-usb
|
| #
36b73109 |
| 20-Sep-2014 |
Hans de Goede <hdegoede@redhat.com> |
usb: ehci: Make periodic_schedules a per controller variable
Periodic schedules tracks how many int_queue-s are active, and decides whether or not to en/disable the periodic schedule based on this.
usb: ehci: Make periodic_schedules a per controller variable
Periodic schedules tracks how many int_queue-s are active, and decides whether or not to en/disable the periodic schedule based on this. This is clearly a per controller thing.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
show more ...
|
| #
415548d8 |
| 20-Sep-2014 |
Hans de Goede <hdegoede@redhat.com> |
usb: ehci: poll_int_queue check real qtd, not the overlay
When we first start an int queue, the qh's overlay area is all zeros. This gets filled by the hc with the actual qtd values as soon as it ad
usb: ehci: poll_int_queue check real qtd, not the overlay
When we first start an int queue, the qh's overlay area is all zeros. This gets filled by the hc with the actual qtd values as soon as it advances the queue, but we may call poll_int_queue before then, in which case we would think the transfer has completed as the hc has not yet copied the qt_token to the overlay, so the active flag is not set.
This fixes this by checking the actual qtd token, rather then the overlay. This also fixes a (theoretical) race where we see the completion in the overlay and free and re-use the qtd before the hc has completed writing back the overlay to the actual qtd.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
show more ...
|