[PATCH v1 2/4] usb: xhci: xhci_mem_init: Use cpu_to_le64() and not xhci_writeq()
Bin Meng
bmeng.cn at gmail.com
Fri Jul 17 07:24:45 CEST 2020
Hi Stefan,
On Thu, Jul 2, 2020 at 4:47 PM Stefan Roese <sr at denx.de> wrote:
>
> xhci_writeq() makes the CPU->LE swapping only when addressing registers
> in the xHCI controller address range and not in the local memory (RAM).
Is the above behavior exposed by the MIPS platform's writel()?
> We need to use cpu_to_le64() here to ensure that the conversion is done
> correctly.
>
> Signed-off-by: Stefan Roese <sr at denx.de>
> Cc: Bin Meng <bmeng.cn at gmail.com>
> Cc: Marek Vasut <marex at denx.de>
> ---
>
> drivers/usb/host/xhci-mem.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
> index bd959b4093..3b805ecb9e 100644
> --- a/drivers/usb/host/xhci-mem.c
> +++ b/drivers/usb/host/xhci-mem.c
> @@ -562,7 +562,7 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr,
> trb_64 = 0;
> trb_64 = (uintptr_t)seg->trbs;
> struct xhci_erst_entry *entry = &ctrl->erst.entries[val];
> - xhci_writeq(&entry->seg_addr, trb_64);
> + entry->seg_addr = cpu_to_le64(trb_64);
> entry->seg_size = cpu_to_le32(TRBS_PER_SEGMENT);
> entry->rsvd = 0;
> seg = seg->next;
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
Regards,
Bin
More information about the U-Boot
mailing list