[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