diff mbox

[U-Boot] usb: dwc3: Fix warnings on 64-bit builds

Message ID a58c12eea7bc21927ebf731750b0fa8a0be0f12c.1446218642.git.michal.simek@xilinx.com
State Accepted
Delegated to: Marek Vasut
Headers show

Commit Message

Michal Simek Oct. 30, 2015, 3:24 p.m. UTC
Change aritmentics to use 64bit types to be compatible with 64bit
builds.

Signed-off-by: Michal Simek <michal.simek@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(-)

Comments

Marek Vasut Oct. 30, 2015, 4:27 p.m. UTC | #1
On Friday, October 30, 2015 at 04:24:06 PM, Michal Simek wrote:
> Change aritmentics to use 64bit types to be compatible with 64bit
> builds.
> 
> Signed-off-by: Michal Simek <michal.simek@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 *

Is this double type-cast necessary ?

>  			 DWC3_SCRATCHBUF_SIZE, DMA_BIDIRECTIONAL);
> 
>  err0:

[...]

Best regards,
Marek Vasut
Michal Simek Nov. 2, 2015, 7:13 a.m. UTC | #2
On 10/30/2015 05:27 PM, Marek Vasut wrote:
> On Friday, October 30, 2015 at 04:24:06 PM, Michal Simek wrote:
>> Change aritmentics to use 64bit types to be compatible with 64bit
>> builds.
>>
>> Signed-off-by: Michal Simek <michal.simek@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 *
> 
> Is this double type-cast necessary ?

Do you know better way how to do it?

Thanks,
Michal
Marek Vasut Nov. 2, 2015, 6:20 p.m. UTC | #3
On Monday, November 02, 2015 at 08:13:55 AM, Michal Simek wrote:
> On 10/30/2015 05:27 PM, Marek Vasut wrote:
> > On Friday, October 30, 2015 at 04:24:06 PM, Michal Simek wrote:
> >> Change aritmentics to use 64bit types to be compatible with 64bit
> >> builds.
> >> 
> >> Signed-off-by: Michal Simek <michal.simek@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
> >> *
> > 
> > Is this double type-cast necessary ?
> 
> Do you know better way how to do it?

I guess I don't, sorry.

Best regards,
Marek Vasut
Michal Simek Nov. 3, 2015, 7:20 a.m. UTC | #4
On 11/02/2015 07:20 PM, Marek Vasut wrote:
> On Monday, November 02, 2015 at 08:13:55 AM, Michal Simek wrote:
>> On 10/30/2015 05:27 PM, Marek Vasut wrote:
>>> On Friday, October 30, 2015 at 04:24:06 PM, Michal Simek wrote:
>>>> Change aritmentics to use 64bit types to be compatible with 64bit
>>>> builds.
>>>>
>>>> Signed-off-by: Michal Simek <michal.simek@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
>>>> *
>>>
>>> Is this double type-cast necessary ?
>>
>> Do you know better way how to do it?
> 
> I guess I don't, sorry.

ok. Then can you please apply it?

Thanks,
Michal
Ɓukasz Majewski Nov. 3, 2015, 10:15 a.m. UTC | #5
Hi Michal,

> Change aritmentics to use 64bit types to be compatible with 64bit
> builds.
> 
> Signed-off-by: Michal Simek <michal.simek@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@samsung.com>
Marek Vasut Nov. 3, 2015, 4:30 p.m. UTC | #6
On Tuesday, November 03, 2015 at 08:20:32 AM, Michal Simek wrote:
> On 11/02/2015 07:20 PM, Marek Vasut wrote:
> > On Monday, November 02, 2015 at 08:13:55 AM, Michal Simek wrote:
> >> On 10/30/2015 05:27 PM, Marek Vasut wrote:
> >>> On Friday, October 30, 2015 at 04:24:06 PM, Michal Simek wrote:
> >>>> Change aritmentics to use 64bit types to be compatible with 64bit
> >>>> builds.
> >>>> 
> >>>> Signed-off-by: Michal Simek <michal.simek@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 *
> >>> 
> >>> Is this double type-cast necessary ?
> >> 
> >> Do you know better way how to do it?
> > 
> > I guess I don't, sorry.
> 
> ok. Then can you please apply it?

Applied all three.

Best regards,
Marek Vasut
diff mbox

Patch

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