[U-Boot] [PATCH] usb: dwc3: Fix warnings on 64-bit builds
Lukasz Majewski
l.majewski at samsung.com
Tue Nov 3 11:15:33 CET 2015
Hi Michal,
> Change aritmentics to use 64bit types to be compatible with 64bit
> builds.
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> ---
>
> drivers/usb/dwc3/core.c | 7 ++++---
> drivers/usb/dwc3/ep0.c | 10 +++++-----
> drivers/usb/dwc3/gadget.c | 10 +++++-----
> drivers/usb/dwc3/io.h | 4 ++--
> 4 files changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index ab3c94e51275..0ae3de5c27b9 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -281,7 +281,7 @@ static int dwc3_setup_scratch_buffers(struct dwc3
> *dwc) return 0;
>
> err1:
> - dma_unmap_single((void *)dwc->scratch_addr, dwc->nr_scratch *
> + dma_unmap_single((void *)(uintptr_t)dwc->scratch_addr,
> dwc->nr_scratch * DWC3_SCRATCHBUF_SIZE, DMA_BIDIRECTIONAL);
>
> err0:
> @@ -296,7 +296,7 @@ static void dwc3_free_scratch_buffers(struct dwc3
> *dwc) if (!dwc->nr_scratch)
> return;
>
> - dma_unmap_single((void *)dwc->scratch_addr, dwc->nr_scratch *
> + dma_unmap_single((void *)(uintptr_t)dwc->scratch_addr,
> dwc->nr_scratch * DWC3_SCRATCHBUF_SIZE, DMA_BIDIRECTIONAL);
> kfree(dwc->scratchbuf);
> }
> @@ -629,7 +629,8 @@ int dwc3_uboot_init(struct dwc3_device *dwc3_dev)
> dwc = PTR_ALIGN(mem, DWC3_ALIGN_MASK + 1);
> dwc->mem = mem;
>
> - dwc->regs = (int *)(dwc3_dev->base +
> DWC3_GLOBALS_REGS_START);
> + dwc->regs = (void *)(uintptr_t)(dwc3_dev->base +
> + DWC3_GLOBALS_REGS_START);
>
> /* default to highest possible threshold */
> lpm_nyet_threshold = 0xff;
> diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
> index aba614fb4e98..12b133f93e17 100644
> --- a/drivers/usb/dwc3/ep0.c
> +++ b/drivers/usb/dwc3/ep0.c
> @@ -81,8 +81,8 @@ static int dwc3_ep0_start_trans(struct dwc3 *dwc,
> u8 epnum, dma_addr_t buf_dma, trb->ctrl |= (DWC3_TRB_CTRL_IOC
> | DWC3_TRB_CTRL_LST);
>
> - dwc3_flush_cache((int)buf_dma, len);
> - dwc3_flush_cache((int)trb, sizeof(*trb));
> + dwc3_flush_cache((long)buf_dma, len);
> + dwc3_flush_cache((long)trb, sizeof(*trb));
>
> if (chain)
> return 0;
> @@ -790,7 +790,7 @@ static void dwc3_ep0_complete_data(struct dwc3
> *dwc, if (!r)
> return;
>
> - dwc3_flush_cache((int)trb, sizeof(*trb));
> + dwc3_flush_cache((long)trb, sizeof(*trb));
>
> status = DWC3_TRB_SIZE_TRBSTS(trb->size);
> if (status == DWC3_TRBSTS_SETUP_PENDING) {
> @@ -821,7 +821,7 @@ static void dwc3_ep0_complete_data(struct dwc3
> *dwc, ur->actual += transferred;
>
> trb++;
> - dwc3_flush_cache((int)trb, sizeof(*trb));
> + dwc3_flush_cache((long)trb, sizeof(*trb));
> length = trb->size & DWC3_TRB_SIZE_MASK;
>
> ep0->free_slot = 0;
> @@ -831,7 +831,7 @@ static void dwc3_ep0_complete_data(struct dwc3
> *dwc, maxp);
> transferred = min_t(u32, ur->length - transferred,
> transfer_size - length);
> - dwc3_flush_cache((int)dwc->ep0_bounce,
> DWC3_EP0_BOUNCE_SIZE);
> + dwc3_flush_cache((long)dwc->ep0_bounce,
> DWC3_EP0_BOUNCE_SIZE); memcpy(buf, dwc->ep0_bounce, transferred);
> } else {
> transferred = ur->length - length;
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index f3d649a5ee2f..8ff949d241f6 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -244,7 +244,7 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep,
> struct dwc3_request *req,
> list_del(&req->list);
> req->trb = NULL;
> - dwc3_flush_cache((int)req->request.dma, req->request.length);
> + dwc3_flush_cache((long)req->request.dma,
> req->request.length);
> if (req->request.status == -EINPROGRESS)
> req->request.status = status;
> @@ -771,8 +771,8 @@ static void dwc3_prepare_one_trb(struct dwc3_ep
> *dep,
> trb->ctrl |= DWC3_TRB_CTRL_HWO;
>
> - dwc3_flush_cache((int)dma, length);
> - dwc3_flush_cache((int)trb, sizeof(*trb));
> + dwc3_flush_cache((long)dma, length);
> + dwc3_flush_cache((long)trb, sizeof(*trb));
> }
>
> /*
> @@ -1769,7 +1769,7 @@ static int dwc3_cleanup_done_reqs(struct dwc3
> *dwc, struct dwc3_ep *dep, slot %= DWC3_TRB_NUM;
> trb = &dep->trb_pool[slot];
>
> - dwc3_flush_cache((int)trb, sizeof(*trb));
> + dwc3_flush_cache((long)trb, sizeof(*trb));
> __dwc3_cleanup_done_trbs(dwc, dep, req, trb, event, status);
> dwc3_gadget_giveback(dep, req, status);
>
> @@ -2670,7 +2670,7 @@ void dwc3_gadget_uboot_handle_interrupt(struct
> dwc3 *dwc)
> for (i = 0; i < dwc->num_event_buffers; i++) {
> evt = dwc->ev_buffs[i];
> - dwc3_flush_cache((int)evt->buf, evt->length);
> + dwc3_flush_cache((long)evt->buf,
> evt->length); }
>
> dwc3_thread_interrupt(0, dwc);
> diff --git a/drivers/usb/dwc3/io.h b/drivers/usb/dwc3/io.h
> index 5042a2419369..0d9fa220e922 100644
> --- a/drivers/usb/dwc3/io.h
> +++ b/drivers/usb/dwc3/io.h
> @@ -23,7 +23,7 @@
> #define CACHELINE_SIZE
> CONFIG_SYS_CACHELINE_SIZE static inline u32 dwc3_readl(void __iomem
> *base, u32 offset) {
> - u32 offs = offset - DWC3_GLOBALS_REGS_START;
> + unsigned long offs = offset - DWC3_GLOBALS_REGS_START;
> u32 value;
>
> /*
> @@ -38,7 +38,7 @@ static inline u32 dwc3_readl(void __iomem *base,
> u32 offset)
> static inline void dwc3_writel(void __iomem *base, u32 offset, u32
> value) {
> - u32 offs = offset - DWC3_GLOBALS_REGS_START;
> + unsigned long offs = offset - DWC3_GLOBALS_REGS_START;
>
> /*
> * We requested the mem region starting from the Globals
> address
Acked-by: Lukasz Majewski <l.majewski at samsung.com>
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list