[PATCH 17/19] usb: ehci: minor fixes for Marvell compatibility
Sascha Hauer
s.hauer at pengutronix.de
Mon Jul 27 07:12:33 PDT 2026
On 2026-07-23 15:57, Luca Lauro via B4 Relay wrote:
> From: Luca Lauro <famlauro93l at gmail.com>
>
> ---
> drivers/usb/host/ehci-hcd.c | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
> index 51b9e52a4f..b72436b312 100644
> --- a/drivers/usb/host/ehci-hcd.c
> +++ b/drivers/usb/host/ehci-hcd.c
> @@ -857,8 +857,6 @@ static int ehci_init(struct usb_host *host)
> struct QH *periodic;
> int i;
>
> - ehci_halt(ehci);
> -
> /* EHCI spec section 4.1 */
> if (ehci_reset(ehci) != 0)
> return -1;
> @@ -870,16 +868,16 @@ static int ehci_init(struct usb_host *host)
> }
>
> ehci->qh_list[0].qh_link = cpu_to_hc32(ehci_qh_dma(ehci, &ehci->qh_list[1]) |
> - QH_LINK_TYPE_QH);
> + QH_LINK_TYPE_QH);
Please drop the whitespace-only changes in this patch.
>From what is left: It deserves a better description why the changes are
necessary. We can always read *what* is being done from the patch, but
the most important thing for future readers is *why* it has been done.
Sascha
> ehci->qh_list[0].qh_endpt1 = cpu_to_hc32(QH_ENDPT1_H(1) |
> - QH_ENDPT1_EPS(USB_SPEED_HIGH));
> + QH_ENDPT1_EPS(USB_SPEED_HIGH));
> ehci->qh_list[0].qh_curtd = cpu_to_hc32(QT_NEXT_TERMINATE);
> ehci->qh_list[0].qt_next = cpu_to_hc32(QT_NEXT_TERMINATE);
> ehci->qh_list[0].qt_altnext = cpu_to_hc32(QT_NEXT_TERMINATE);
> ehci->qh_list[0].qt_token = cpu_to_hc32(QT_TOKEN_STATUS_HALTED);
>
> ehci->qh_list[1].qh_link = cpu_to_hc32(ehci_qh_dma(ehci,
> - &ehci->qh_list[0]) |
> + &ehci->qh_list[0]) |
> QH_LINK_TYPE_QH);
> ehci->qh_list[1].qt_altnext = cpu_to_hc32(QT_NEXT_TERMINATE);
>
> @@ -897,6 +895,8 @@ static int ehci_init(struct usb_host *host)
> periodic->qt_next = cpu_to_hc32(QT_NEXT_TERMINATE);
> periodic->qt_altnext = cpu_to_hc32(QT_NEXT_TERMINATE);
>
> + ehci->periodic_queue_dma = ehci_qh_dma(ehci, periodic);
> +
> /*
> * Step 2: Setup frame-list: Every microframe, USB tries the same list.
> * In particular, device specifications on polling frequency
> @@ -906,23 +906,23 @@ static int ehci_init(struct usb_host *host)
> * Split Transactions will be spread across microframes using
> * S-mask and C-mask.
> */
> - if (ehci->periodic_list == NULL)
> + if (ehci->periodic_list == NULL) {
> + ehci->periodic_list = dma_alloc_coherent(DMA_DEVICE_BROKEN, 1024 * 4,
> + &ehci->periodic_list_dma);
> /*
> * FIXME: this memory chunk have to be 4k aligned AND
> * reside in coherent memory. Current implementation of
> * dma_alloc_coherent() allocates PAGE_SIZE aligned memory chunks.
> * PAGE_SIZE less then 4k will break this code.
> */
> - ehci->periodic_list = dma_alloc_coherent(DMA_DEVICE_BROKEN, 1024 * 4,
> - &ehci->periodic_list_dma);
> for (i = 0; i < 1024; i++) {
> - ehci->periodic_list[i] = cpu_to_hc32((unsigned long)ehci->periodic_queue_dma
> - | QH_LINK_TYPE_QH);
> + ehci->periodic_list[i] = cpu_to_hc32(ehci->periodic_queue_dma
> + | QH_LINK_TYPE_QH);
> }
>
> /* Set periodic list base address */
> ehci_writel(&ehci->hcor->or_periodiclistbase,
> - (uint32_t)ehci->periodic_list_dma);
> + ehci->periodic_list_dma);
>
> reg = ehci_readl(&ehci->hccr->cr_hcsparams);
> descriptor.hub.bNbrPorts = HCS_N_PORTS(reg);
>
> --
> 2.47.3
>
>
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list