Message ID | a58c12eea7bc21927ebf731750b0fa8a0be0f12c.1446218642.git.michal.simek@xilinx.com |
---|---|
State | Accepted |
Delegated to: | Marek Vasut |
Headers | show |
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
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
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
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
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>
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 --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
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(-)