[U-Boot] [PATCH] usb: ci_udc: fix warnings on 64-bit builds

Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: "Łukasz Majewski" l.majewski@samsung.com Cc: Marek Vasut marex@denx.de --- drivers/usb/gadget/ci_udc.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c index b0ef35e..a231abf 100644 --- a/drivers/usb/gadget/ci_udc.c +++ b/drivers/usb/gadget/ci_udc.c @@ -160,8 +160,8 @@ static struct ept_queue_item *ci_get_qtd(int ep_num, int dir_in) static void ci_flush_qh(int ep_num) { struct ept_queue_head *head = ci_get_qh(ep_num, 0); - const uint32_t start = (uint32_t)head; - const uint32_t end = start + 2 * sizeof(*head); + const unsigned long start = (unsigned long)head; + const unsigned long end = start + 2 * sizeof(*head);
flush_dcache_range(start, end); } @@ -175,8 +175,8 @@ static void ci_flush_qh(int ep_num) static void ci_invalidate_qh(int ep_num) { struct ept_queue_head *head = ci_get_qh(ep_num, 0); - uint32_t start = (uint32_t)head; - uint32_t end = start + 2 * sizeof(*head); + unsigned long start = (unsigned long)head; + unsigned long end = start + 2 * sizeof(*head);
invalidate_dcache_range(start, end); } @@ -190,8 +190,8 @@ static void ci_invalidate_qh(int ep_num) static void ci_flush_qtd(int ep_num) { struct ept_queue_item *item = ci_get_qtd(ep_num, 0); - const uint32_t start = (uint32_t)item; - const uint32_t end = start + 2 * ILIST_ENT_SZ; + const unsigned long start = (unsigned long)item; + const unsigned long end = start + 2 * ILIST_ENT_SZ;
flush_dcache_range(start, end); } @@ -205,8 +205,8 @@ static void ci_flush_qtd(int ep_num) static void ci_invalidate_qtd(int ep_num) { struct ept_queue_item *item = ci_get_qtd(ep_num, 0); - const uint32_t start = (uint32_t)item; - const uint32_t end = start + 2 * ILIST_ENT_SZ; + const unsigned long start = (unsigned long)item; + const unsigned long end = start + 2 * ILIST_ENT_SZ;
invalidate_dcache_range(start, end); } @@ -308,8 +308,8 @@ static int ci_ep_disable(struct usb_ep *ep) static int ci_bounce(struct ci_req *ci_req, int in) { struct usb_request *req = &ci_req->req; - uint32_t addr = (uint32_t)req->buf; - uint32_t hwaddr; + unsigned long addr = (unsigned long)req->buf; + unsigned long hwaddr; uint32_t aligned_used_len;
/* Input buffer address is not aligned. */ @@ -343,7 +343,7 @@ align: memcpy(ci_req->hw_buf, req->buf, req->length);
flush: - hwaddr = (uint32_t)ci_req->hw_buf; + hwaddr = (unsigned long)ci_req->hw_buf; aligned_used_len = roundup(req->length, ARCH_DMA_MINALIGN); flush_dcache_range(hwaddr, hwaddr + aligned_used_len);
@@ -353,8 +353,8 @@ flush: static void ci_debounce(struct ci_req *ci_req, int in) { struct usb_request *req = &ci_req->req; - uint32_t addr = (uint32_t)req->buf; - uint32_t hwaddr = (uint32_t)ci_req->hw_buf; + unsigned long addr = (unsigned long)req->buf; + unsigned long hwaddr = (unsigned long)ci_req->hw_buf; uint32_t aligned_used_len;
if (in) @@ -388,13 +388,13 @@ static void ci_ep_submit_next_request(struct ci_ep *ci_ep) len = ci_req->req.length;
item->info = INFO_BYTES(len) | INFO_ACTIVE; - item->page0 = (uint32_t)ci_req->hw_buf; - item->page1 = ((uint32_t)ci_req->hw_buf & 0xfffff000) + 0x1000; - item->page2 = ((uint32_t)ci_req->hw_buf & 0xfffff000) + 0x2000; - item->page3 = ((uint32_t)ci_req->hw_buf & 0xfffff000) + 0x3000; - item->page4 = ((uint32_t)ci_req->hw_buf & 0xfffff000) + 0x4000; + item->page0 = (unsigned long)ci_req->hw_buf; + item->page1 = ((unsigned long)ci_req->hw_buf & 0xfffff000) + 0x1000; + item->page2 = ((unsigned long)ci_req->hw_buf & 0xfffff000) + 0x2000; + item->page3 = ((unsigned long)ci_req->hw_buf & 0xfffff000) + 0x3000; + item->page4 = ((unsigned long)ci_req->hw_buf & 0xfffff000) + 0x4000;
- head->next = (unsigned) item; + head->next = (unsigned long)item; head->info = 0;
/* @@ -422,7 +422,7 @@ static void ci_ep_submit_next_request(struct ci_ep *ci_ep) * can use the other to transmit the extra zero-length packet. */ struct ept_queue_item *other_item = ci_get_qtd(num, 0); - item->next = (unsigned)other_item; + item->next = (unsigned long)other_item; item = other_item; item->info = INFO_ACTIVE; } @@ -772,7 +772,7 @@ static int ci_pullup(struct usb_gadget *gadget, int is_on) writel(USBCMD_ITC(MICRO_8FRAME) | USBCMD_RST, &udc->usbcmd); udelay(200);
- writel((unsigned)controller.epts, &udc->epinitaddr); + writel((unsigned long)controller.epts, &udc->epinitaddr);
/* select DEVICE mode */ writel(USBMODE_DEVICE, &udc->usbmode);

Change addresses to unsigned long to be compatible with 64-bit builds.
Signed-off-by: Rob Herring robh@kernel.org Cc: Heiko Schocher hs@denx.de --- drivers/i2c/mv_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/mv_i2c.c b/drivers/i2c/mv_i2c.c index e65cce0..fc02e65 100644 --- a/drivers/i2c/mv_i2c.c +++ b/drivers/i2c/mv_i2c.c @@ -73,7 +73,7 @@ static void i2c_board_init(struct mv_i2c *base) }
#ifdef CONFIG_I2C_MULTI_BUS -static u32 i2c_regs[CONFIG_MV_I2C_NUM] = CONFIG_MV_I2C_REG; +static unsigned long i2c_regs[CONFIG_MV_I2C_NUM] = CONFIG_MV_I2C_REG; static unsigned int bus_initialized[CONFIG_MV_I2C_NUM]; static unsigned int current_bus;

Hello Rob,
Am 17.03.2015 21:46, schrieb Rob Herring:
Change addresses to unsigned long to be compatible with 64-bit builds.
Signed-off-by: Rob Herring robh@kernel.org Cc: Heiko Schocher hs@denx.de
drivers/i2c/mv_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Thanks!
applied to u-boot-i2c.git
bye, Heiko

Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Marek Vasut marex@denx.de --- drivers/usb/host/ehci-hcd.c | 82 ++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 41 deletions(-)
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index f1fb190..86f1646 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -45,7 +45,7 @@ static struct ehci_ctrl ehcic[CONFIG_USB_MAX_CONTROLLER_COUNT];
#define ALIGN_END_ADDR(type, ptr, size) \ - ((uint32_t)(ptr) + roundup((size) * sizeof(type), USB_DMA_MINALIGN)) + ((unsigned long)(ptr) + roundup((size) * sizeof(type), USB_DMA_MINALIGN))
static struct descriptor { struct usb_hub_descriptor hub; @@ -223,7 +223,7 @@ static int ehci_shutdown(struct ehci_ctrl *ctrl) static int ehci_td_buffer(struct qTD *td, void *buf, size_t sz) { uint32_t delta, next; - uint32_t addr = (uint32_t)buf; + uint32_t addr = (unsigned long)buf; int idx;
if (addr != ALIGN(addr, ARCH_DMA_MINALIGN)) @@ -245,7 +245,7 @@ static int ehci_td_buffer(struct qTD *td, void *buf, size_t sz) }
if (idx == QT_BUFFER_CNT) { - printf("out of buffer pointers (%u bytes left)\n", sz); + printf("out of buffer pointers (%zu bytes left)\n", sz); return -1; }
@@ -354,7 +354,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, * qTD transfer size will be one page shorter, and the first qTD * data buffer of each transfer will be page-unaligned. */ - if ((uint32_t)buffer & (PKT_ALIGN - 1)) + if ((unsigned long)buffer & (PKT_ALIGN - 1)) xfr_sz--; /* Convert the qTD transfer size to bytes. */ xfr_sz *= EHCI_PAGE_SIZE; @@ -394,7 +394,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, * qh_overlay.qt_next ...... 13-10 H * - qh_overlay.qt_altnext */ - qh->qh_link = cpu_to_hc32((uint32_t)&ctrl->qh_list | QH_LINK_TYPE_QH); + qh->qh_link = cpu_to_hc32((unsigned long)&ctrl->qh_list | QH_LINK_TYPE_QH); c = (dev->speed != USB_SPEED_HIGH) && !usb_pipeendpoint(pipe); maxpacket = usb_maxpacket(dev, pipe); endpt = QH_ENDPT1_RL(8) | QH_ENDPT1_C(c) | @@ -434,7 +434,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, goto fail; } /* Update previous qTD! */ - *tdp = cpu_to_hc32((uint32_t)&qtd[qtd_counter]); + *tdp = cpu_to_hc32((unsigned long)&qtd[qtd_counter]); tdp = &qtd[qtd_counter++].qt_next; toggle = 1; } @@ -454,7 +454,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, * portion of the first page before the buffer start * offset within that page is unusable. */ - xfr_bytes -= (uint32_t)buf_ptr & (EHCI_PAGE_SIZE - 1); + xfr_bytes -= (unsigned long)buf_ptr & (EHCI_PAGE_SIZE - 1); /* * In order to keep each packet within a qTD transfer, * align the qTD transfer size to PKT_ALIGN. @@ -493,7 +493,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, goto fail; } /* Update previous qTD! */ - *tdp = cpu_to_hc32((uint32_t)&qtd[qtd_counter]); + *tdp = cpu_to_hc32((unsigned long)&qtd[qtd_counter]); tdp = &qtd[qtd_counter++].qt_next; /* * Data toggle has to be adjusted since the qTD transfer @@ -524,21 +524,21 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, QT_TOKEN_STATUS(QT_TOKEN_STATUS_ACTIVE); qtd[qtd_counter].qt_token = cpu_to_hc32(token); /* Update previous qTD! */ - *tdp = cpu_to_hc32((uint32_t)&qtd[qtd_counter]); + *tdp = cpu_to_hc32((unsigned long)&qtd[qtd_counter]); tdp = &qtd[qtd_counter++].qt_next; }
- ctrl->qh_list.qh_link = cpu_to_hc32((uint32_t)qh | QH_LINK_TYPE_QH); + ctrl->qh_list.qh_link = cpu_to_hc32((unsigned long)qh | QH_LINK_TYPE_QH);
/* Flush dcache */ - flush_dcache_range((uint32_t)&ctrl->qh_list, + flush_dcache_range((unsigned long)&ctrl->qh_list, ALIGN_END_ADDR(struct QH, &ctrl->qh_list, 1)); - flush_dcache_range((uint32_t)qh, ALIGN_END_ADDR(struct QH, qh, 1)); - flush_dcache_range((uint32_t)qtd, + flush_dcache_range((unsigned long)qh, ALIGN_END_ADDR(struct QH, qh, 1)); + flush_dcache_range((unsigned long)qtd, ALIGN_END_ADDR(struct qTD, qtd, qtd_count));
/* Set async. queue head pointer. */ - ehci_writel(&ctrl->hcor->or_asynclistaddr, (uint32_t)&ctrl->qh_list); + ehci_writel(&ctrl->hcor->or_asynclistaddr, (unsigned long)&ctrl->qh_list);
usbsts = ehci_readl(&ctrl->hcor->or_usbsts); ehci_writel(&ctrl->hcor->or_usbsts, (usbsts & 0x3f)); @@ -561,11 +561,11 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, timeout = USB_TIMEOUT_MS(pipe); do { /* Invalidate dcache */ - invalidate_dcache_range((uint32_t)&ctrl->qh_list, + invalidate_dcache_range((unsigned long)&ctrl->qh_list, ALIGN_END_ADDR(struct QH, &ctrl->qh_list, 1)); - invalidate_dcache_range((uint32_t)qh, + invalidate_dcache_range((unsigned long)qh, ALIGN_END_ADDR(struct QH, qh, 1)); - invalidate_dcache_range((uint32_t)qtd, + invalidate_dcache_range((unsigned long)qtd, ALIGN_END_ADDR(struct qTD, qtd, qtd_count));
token = hc32_to_cpu(vtd->qt_token); @@ -583,8 +583,8 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer, * dangerous operation, it's responsibility of the calling * code to make sure enough space is reserved. */ - invalidate_dcache_range((uint32_t)buffer, - ALIGN((uint32_t)buffer + length, ARCH_DMA_MINALIGN)); + invalidate_dcache_range((unsigned long)buffer, + ALIGN((unsigned long)buffer + length, ARCH_DMA_MINALIGN));
/* Check that the TD processing happened */ if (QT_TOKEN_GET_STATUS(token) & QT_TOKEN_STATUS_ACTIVE) @@ -968,7 +968,7 @@ int usb_lowlevel_init(int index, enum usb_init_type init, void **controller)
/* Set head of reclaim list */ memset(qh_list, 0, sizeof(*qh_list)); - qh_list->qh_link = cpu_to_hc32((uint32_t)qh_list | QH_LINK_TYPE_QH); + qh_list->qh_link = cpu_to_hc32((unsigned long)qh_list | QH_LINK_TYPE_QH); qh_list->qh_endpt1 = cpu_to_hc32(QH_ENDPT1_H(1) | QH_ENDPT1_EPS(USB_SPEED_HIGH)); qh_list->qh_overlay.qt_next = cpu_to_hc32(QT_NEXT_TERMINATE); @@ -976,11 +976,11 @@ int usb_lowlevel_init(int index, enum usb_init_type init, void **controller) qh_list->qh_overlay.qt_token = cpu_to_hc32(QT_TOKEN_STATUS(QT_TOKEN_STATUS_HALTED));
- flush_dcache_range((uint32_t)qh_list, + flush_dcache_range((unsigned long)qh_list, ALIGN_END_ADDR(struct QH, qh_list, 1));
/* Set async. queue head pointer. */ - ehci_writel(&ehcic[index].hcor->or_asynclistaddr, (uint32_t)qh_list); + ehci_writel(&ehcic[index].hcor->or_asynclistaddr, (unsigned long)qh_list);
/* * Set up periodic list @@ -993,7 +993,7 @@ int usb_lowlevel_init(int index, enum usb_init_type init, void **controller) periodic->qh_overlay.qt_next = cpu_to_hc32(QT_NEXT_TERMINATE); periodic->qh_overlay.qt_altnext = cpu_to_hc32(QT_NEXT_TERMINATE);
- flush_dcache_range((uint32_t)periodic, + flush_dcache_range((unsigned long)periodic, ALIGN_END_ADDR(struct QH, periodic, 1));
/* @@ -1011,17 +1011,17 @@ int usb_lowlevel_init(int index, enum usb_init_type init, void **controller) if (!ehcic[index].periodic_list) return -ENOMEM; for (i = 0; i < 1024; i++) { - ehcic[index].periodic_list[i] = cpu_to_hc32((uint32_t)periodic + ehcic[index].periodic_list[i] = cpu_to_hc32((unsigned long)periodic | QH_LINK_TYPE_QH); }
- flush_dcache_range((uint32_t)ehcic[index].periodic_list, + flush_dcache_range((unsigned long)ehcic[index].periodic_list, ALIGN_END_ADDR(uint32_t, ehcic[index].periodic_list, 1024));
/* Set periodic list base address */ ehci_writel(&ehcic[index].hcor->or_periodiclistbase, - (uint32_t)ehcic[index].periodic_list); + (unsigned long)ehcic[index].periodic_list);
reg = ehci_readl(&ehcic[index].hccr->cr_hcsparams); descriptor.hub.bNbrPorts = HCS_N_PORTS(reg); @@ -1103,7 +1103,7 @@ struct int_queue { struct qTD *tds; };
-#define NEXT_QH(qh) (struct QH *)(hc32_to_cpu((qh)->qh_link) & ~0x1f) +#define NEXT_QH(qh) (struct QH *)((unsigned long)hc32_to_cpu((qh)->qh_link) & ~0x1f)
static int enable_periodic(struct ehci_ctrl *ctrl) @@ -1214,11 +1214,11 @@ create_int_queue(struct usb_device *dev, unsigned long pipe, int queuesize, struct qTD *td = result->tds + i; void **buf = &qh->buffer;
- qh->qh_link = cpu_to_hc32((uint32_t)(qh+1) | QH_LINK_TYPE_QH); + qh->qh_link = cpu_to_hc32((unsigned long)(qh+1) | QH_LINK_TYPE_QH); if (i == queuesize - 1) qh->qh_link = cpu_to_hc32(QH_LINK_TERMINATE);
- qh->qh_overlay.qt_next = cpu_to_hc32((uint32_t)td); + qh->qh_overlay.qt_next = cpu_to_hc32((unsigned long)td); qh->qh_overlay.qt_altnext = cpu_to_hc32(QT_NEXT_TERMINATE); qh->qh_endpt1 = cpu_to_hc32((0 << 28) | /* No NAK reload (ehci 4.9) */ @@ -1244,7 +1244,7 @@ create_int_queue(struct usb_device *dev, unsigned long pipe, int queuesize, ((usb_pipein(pipe) ? 1 : 0) << 8) | /* IN/OUT token */ 0x80); /* active */ td->qt_buffer[0] = - cpu_to_hc32((uint32_t)buffer + i * elementsize); + cpu_to_hc32((unsigned long)buffer + i * elementsize); td->qt_buffer[1] = cpu_to_hc32((td->qt_buffer[0] + 0x1000) & ~0xfff); td->qt_buffer[2] = @@ -1257,13 +1257,13 @@ create_int_queue(struct usb_device *dev, unsigned long pipe, int queuesize, *buf = buffer + i * elementsize; }
- flush_dcache_range((uint32_t)buffer, + flush_dcache_range((unsigned long)buffer, ALIGN_END_ADDR(char, buffer, queuesize * elementsize)); - flush_dcache_range((uint32_t)result->first, + flush_dcache_range((unsigned long)result->first, ALIGN_END_ADDR(struct QH, result->first, queuesize)); - flush_dcache_range((uint32_t)result->tds, + flush_dcache_range((unsigned long)result->tds, ALIGN_END_ADDR(struct qTD, result->tds, queuesize));
@@ -1277,11 +1277,11 @@ create_int_queue(struct usb_device *dev, unsigned long pipe, int queuesize, /* hook up to periodic list */ struct QH *list = &ctrl->periodic_queue; result->last->qh_link = list->qh_link; - list->qh_link = cpu_to_hc32((uint32_t)result->first | QH_LINK_TYPE_QH); + list->qh_link = cpu_to_hc32((unsigned long)result->first | QH_LINK_TYPE_QH);
- flush_dcache_range((uint32_t)result->last, + flush_dcache_range((unsigned long)result->last, ALIGN_END_ADDR(struct QH, result->last, 1)); - flush_dcache_range((uint32_t)list, + flush_dcache_range((unsigned long)list, ALIGN_END_ADDR(struct QH, list, 1));
if (enable_periodic(ctrl) < 0) { @@ -1316,7 +1316,7 @@ void *poll_int_queue(struct usb_device *dev, struct int_queue *queue) } /* still active */ cur_td = &queue->tds[queue->current - queue->first]; - invalidate_dcache_range((uint32_t)cur_td, + invalidate_dcache_range((unsigned long)cur_td, ALIGN_END_ADDR(struct qTD, cur_td, 1)); if (QT_TOKEN_GET_STATUS(hc32_to_cpu(cur_td->qt_token)) & QT_TOKEN_STATUS_ACTIVE) { @@ -1329,7 +1329,7 @@ void *poll_int_queue(struct usb_device *dev, struct int_queue *queue) else queue->current = NULL;
- invalidate_dcache_range((uint32_t)cur->buffer, + invalidate_dcache_range((unsigned long)cur->buffer, ALIGN_END_ADDR(char, cur->buffer, queue->elementsize));
@@ -1359,7 +1359,7 @@ destroy_int_queue(struct usb_device *dev, struct int_queue *queue) if (NEXT_QH(cur) == queue->first) { debug("found candidate. removing from chain\n"); cur->qh_link = queue->last->qh_link; - flush_dcache_range((uint32_t)cur, + flush_dcache_range((unsigned long)cur, ALIGN_END_ADDR(struct QH, cur, 1)); result = 0; break; @@ -1411,8 +1411,8 @@ submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer, }
if (backbuffer != buffer) { - debug("got wrong buffer back (%x instead of %x)\n", - (uint32_t)backbuffer, (uint32_t)buffer); + debug("got wrong buffer back (%p instead of %p)\n", + backbuffer, buffer); return -EINVAL; }

On Tuesday, March 17, 2015 at 09:46:37 PM, Rob Herring wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Marek Vasut marex@denx.de
drivers/usb/host/ehci-hcd.c | 82 ++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 41 deletions(-)
Hi,
I will handle those patches in a couple of days. I got similar fix from Thierry today in a patchset, this is the subject: [PATCH 11/13] usb: ehci-hcd: Build warning fixes for 64-bit
I would obviously like to pick Rob's one, since it came first, but I will need to check if they're really the same. Moreover, shall I pick this for the current release or is it OK to apply for the next one ?
Thanks !
Best regards, Marek Vasut

On Fri, Mar 20, 2015 at 8:19 AM, Marek Vasut marex@denx.de wrote:
On Tuesday, March 17, 2015 at 09:46:37 PM, Rob Herring wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Marek Vasut marex@denx.de
drivers/usb/host/ehci-hcd.c | 82 ++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 41 deletions(-)
Hi,
I will handle those patches in a couple of days. I got similar fix from Thierry today in a patchset, this is the subject: [PATCH 11/13] usb: ehci-hcd: Build warning fixes for 64-bit
I would obviously like to pick Rob's one, since it came first, but I will need to check if they're really the same. Moreover, shall I pick this for the current release or is it OK to apply for the next one ?
For me, after the release is fine. Thierry may feel otherwise.
Rob

On Tuesday, March 24, 2015 at 12:36:55 AM, Rob Herring wrote:
On Fri, Mar 20, 2015 at 8:19 AM, Marek Vasut marex@denx.de wrote:
On Tuesday, March 17, 2015 at 09:46:37 PM, Rob Herring wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Marek Vasut marex@denx.de
drivers/usb/host/ehci-hcd.c | 82
++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 41 deletions(-)
Hi,
I will handle those patches in a couple of days. I got similar fix from Thierry today in a patchset, this is the subject: [PATCH 11/13] usb: ehci-hcd: Build warning fixes for 64-bit
I would obviously like to pick Rob's one, since it came first, but I will need to check if they're really the same. Moreover, shall I pick this for the current release or is it OK to apply for the next one ?
For me, after the release is fine. Thierry may feel otherwise.
I'm fine either way, so Thierry, what is your feeling please ?
Best regards, Marek Vasut

On Tue, Mar 24, 2015 at 04:42:04PM +0100, Marek Vasut wrote:
On Tuesday, March 24, 2015 at 12:36:55 AM, Rob Herring wrote:
On Fri, Mar 20, 2015 at 8:19 AM, Marek Vasut marex@denx.de wrote:
On Tuesday, March 17, 2015 at 09:46:37 PM, Rob Herring wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Marek Vasut marex@denx.de
drivers/usb/host/ehci-hcd.c | 82
++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 41 deletions(-)
Hi,
I will handle those patches in a couple of days. I got similar fix from Thierry today in a patchset, this is the subject: [PATCH 11/13] usb: ehci-hcd: Build warning fixes for 64-bit
I would obviously like to pick Rob's one, since it came first, but I will need to check if they're really the same. Moreover, shall I pick this for the current release or is it OK to apply for the next one ?
For me, after the release is fine. Thierry may feel otherwise.
I'm fine either way, so Thierry, what is your feeling please ?
This is preliminary work for board support that's not going to make it in time for the release, so there's no hurry.
Thierry

On Wednesday, March 25, 2015 at 01:29:02 PM, Thierry Reding wrote:
On Tue, Mar 24, 2015 at 04:42:04PM +0100, Marek Vasut wrote:
On Tuesday, March 24, 2015 at 12:36:55 AM, Rob Herring wrote:
On Fri, Mar 20, 2015 at 8:19 AM, Marek Vasut marex@denx.de wrote:
On Tuesday, March 17, 2015 at 09:46:37 PM, Rob Herring wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Marek Vasut marex@denx.de
drivers/usb/host/ehci-hcd.c | 82
++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 41 deletions(-)
Hi,
I will handle those patches in a couple of days. I got similar fix from Thierry today in a patchset, this is the subject: [PATCH 11/13] usb: ehci-hcd: Build warning fixes for 64-bit
I would obviously like to pick Rob's one, since it came first, but I will need to check if they're really the same. Moreover, shall I pick this for the current release or is it OK to apply for the next one ?
For me, after the release is fine. Thierry may feel otherwise.
I'm fine either way, so Thierry, what is your feeling please ?
This is preliminary work for board support that's not going to make it in time for the release, so there's no hurry.
I picked the stuff from Rob into -next, so this will appear in the next version of U-Boot. Please let me know if I did the wrong call here, and possible even send me a patch which fixes the deficiencies.
Thanks again!
Best regards, Marek Vasut

On Tuesday, March 17, 2015 at 09:46:37 PM, Rob Herring wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Marek Vasut marex@denx.de
Applied, thanks!
Best regards, Marek Vasut

Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Pantelis Antoniou panto@antoniou-consulting.com --- drivers/mmc/sdhci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index 82d7984..2d92204 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -194,13 +194,13 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
#ifdef CONFIG_MMC_SDMA if (data->flags == MMC_DATA_READ) - start_addr = (unsigned int)data->dest; + start_addr = (unsigned long)data->dest; else - start_addr = (unsigned int)data->src; + start_addr = (unsigned long)data->src; if ((host->quirks & SDHCI_QUIRK_32BIT_DMA_ADDR) && (start_addr & 0x7) != 0x0) { is_aligned = 0; - start_addr = (unsigned int)aligned_buffer; + start_addr = (unsigned long)aligned_buffer; if (data->flags != MMC_DATA_READ) memcpy(aligned_buffer, data->src, trans_bytes); }

Hi Rob,
On Mar 17, 2015, at 22:46 , Rob Herring robh@kernel.org wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Pantelis Antoniou panto@antoniou-consulting.com
drivers/mmc/sdhci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index 82d7984..2d92204 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -194,13 +194,13 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
#ifdef CONFIG_MMC_SDMA if (data->flags == MMC_DATA_READ)
start_addr = (unsigned int)data->dest;
elsestart_addr = (unsigned long)data->dest;
start_addr = (unsigned int)data->src;
if ((host->quirks & SDHCI_QUIRK_32BIT_DMA_ADDR) && (start_addr & 0x7) != 0x0) { is_aligned = 0;start_addr = (unsigned long)data->src;
start_addr = (unsigned int)aligned_buffer;
}start_addr = (unsigned long)aligned_buffer; if (data->flags != MMC_DATA_READ) memcpy(aligned_buffer, data->src, trans_bytes);
-- 2.1.0
Thanks, applied.
— Pantelis

Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Pantelis Antoniou panto@antoniou-consulting.com --- drivers/mmc/mv_sdhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/mv_sdhci.c b/drivers/mmc/mv_sdhci.c index 63e1f90..75fa014 100644 --- a/drivers/mmc/mv_sdhci.c +++ b/drivers/mmc/mv_sdhci.c @@ -12,7 +12,7 @@ static struct sdhci_ops mv_ops; static inline void mv_sdhci_writeb(struct sdhci_host *host, u8 val, int reg) { struct mmc *mmc = host->mmc; - u32 ata = (u32)host->ioaddr + SD_CE_ATA_2; + u32 ata = (unsigned long)host->ioaddr + SD_CE_ATA_2;
if (!IS_SD(mmc) && reg == SDHCI_HOST_CONTROL) { if (mmc->bus_width == 8) @@ -30,7 +30,7 @@ static inline void mv_sdhci_writeb(struct sdhci_host *host, u8 val, int reg) #endif /* CONFIG_MMC_SDHCI_IO_ACCESSORS */
static char *MVSDH_NAME = "mv_sdh"; -int mv_sdh_init(u32 regbase, u32 max_clk, u32 min_clk, u32 quirks) +int mv_sdh_init(unsigned long regbase, u32 max_clk, u32 min_clk, u32 quirks) { struct sdhci_host *host = NULL; host = (struct sdhci_host *)malloc(sizeof(struct sdhci_host));

Hi Rob,
On Mar 17, 2015, at 22:46 , Rob Herring robh@kernel.org wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: Pantelis Antoniou panto@antoniou-consulting.com
drivers/mmc/mv_sdhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/mv_sdhci.c b/drivers/mmc/mv_sdhci.c index 63e1f90..75fa014 100644 --- a/drivers/mmc/mv_sdhci.c +++ b/drivers/mmc/mv_sdhci.c @@ -12,7 +12,7 @@ static struct sdhci_ops mv_ops; static inline void mv_sdhci_writeb(struct sdhci_host *host, u8 val, int reg) { struct mmc *mmc = host->mmc;
- u32 ata = (u32)host->ioaddr + SD_CE_ATA_2;
u32 ata = (unsigned long)host->ioaddr + SD_CE_ATA_2;
if (!IS_SD(mmc) && reg == SDHCI_HOST_CONTROL) { if (mmc->bus_width == 8)
@@ -30,7 +30,7 @@ static inline void mv_sdhci_writeb(struct sdhci_host *host, u8 val, int reg) #endif /* CONFIG_MMC_SDHCI_IO_ACCESSORS */
static char *MVSDH_NAME = "mv_sdh"; -int mv_sdh_init(u32 regbase, u32 max_clk, u32 min_clk, u32 quirks) +int mv_sdh_init(unsigned long regbase, u32 max_clk, u32 min_clk, u32 quirks) { struct sdhci_host *host = NULL; host = (struct sdhci_host *)malloc(sizeof(struct sdhci_host)); -- 2.1.0
Thanks, applied.
— Pantelis

Hi Rob,
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: "Łukasz Majewski" l.majewski@samsung.com Cc: Marek Vasut marex@denx.de
drivers/usb/gadget/ci_udc.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c index b0ef35e..a231abf 100644 --- a/drivers/usb/gadget/ci_udc.c +++ b/drivers/usb/gadget/ci_udc.c @@ -160,8 +160,8 @@ static struct ept_queue_item *ci_get_qtd(int ep_num, int dir_in) static void ci_flush_qh(int ep_num) { struct ept_queue_head *head = ci_get_qh(ep_num, 0);
- const uint32_t start = (uint32_t)head;
- const uint32_t end = start + 2 * sizeof(*head);
const unsigned long start = (unsigned long)head;
const unsigned long end = start + 2 * sizeof(*head);
flush_dcache_range(start, end);
} @@ -175,8 +175,8 @@ static void ci_flush_qh(int ep_num) static void ci_invalidate_qh(int ep_num) { struct ept_queue_head *head = ci_get_qh(ep_num, 0);
- uint32_t start = (uint32_t)head;
- uint32_t end = start + 2 * sizeof(*head);
unsigned long start = (unsigned long)head;
unsigned long end = start + 2 * sizeof(*head);
invalidate_dcache_range(start, end);
} @@ -190,8 +190,8 @@ static void ci_invalidate_qh(int ep_num) static void ci_flush_qtd(int ep_num) { struct ept_queue_item *item = ci_get_qtd(ep_num, 0);
- const uint32_t start = (uint32_t)item;
- const uint32_t end = start + 2 * ILIST_ENT_SZ;
const unsigned long start = (unsigned long)item;
const unsigned long end = start + 2 * ILIST_ENT_SZ;
flush_dcache_range(start, end);
} @@ -205,8 +205,8 @@ static void ci_flush_qtd(int ep_num) static void ci_invalidate_qtd(int ep_num) { struct ept_queue_item *item = ci_get_qtd(ep_num, 0);
- const uint32_t start = (uint32_t)item;
- const uint32_t end = start + 2 * ILIST_ENT_SZ;
const unsigned long start = (unsigned long)item;
const unsigned long end = start + 2 * ILIST_ENT_SZ;
invalidate_dcache_range(start, end);
} @@ -308,8 +308,8 @@ static int ci_ep_disable(struct usb_ep *ep) static int ci_bounce(struct ci_req *ci_req, int in) { struct usb_request *req = &ci_req->req;
- uint32_t addr = (uint32_t)req->buf;
- uint32_t hwaddr;
unsigned long addr = (unsigned long)req->buf;
unsigned long hwaddr; uint32_t aligned_used_len;
/* Input buffer address is not aligned. */
@@ -343,7 +343,7 @@ align: memcpy(ci_req->hw_buf, req->buf, req->length);
flush:
- hwaddr = (uint32_t)ci_req->hw_buf;
- hwaddr = (unsigned long)ci_req->hw_buf; aligned_used_len = roundup(req->length, ARCH_DMA_MINALIGN); flush_dcache_range(hwaddr, hwaddr + aligned_used_len);
@@ -353,8 +353,8 @@ flush: static void ci_debounce(struct ci_req *ci_req, int in) { struct usb_request *req = &ci_req->req;
- uint32_t addr = (uint32_t)req->buf;
- uint32_t hwaddr = (uint32_t)ci_req->hw_buf;
unsigned long addr = (unsigned long)req->buf;
unsigned long hwaddr = (unsigned long)ci_req->hw_buf; uint32_t aligned_used_len;
if (in)
@@ -388,13 +388,13 @@ static void ci_ep_submit_next_request(struct ci_ep *ci_ep) len = ci_req->req.length;
item->info = INFO_BYTES(len) | INFO_ACTIVE;
- item->page0 = (uint32_t)ci_req->hw_buf;
- item->page1 = ((uint32_t)ci_req->hw_buf & 0xfffff000) +
0x1000;
- item->page2 = ((uint32_t)ci_req->hw_buf & 0xfffff000) +
0x2000;
- item->page3 = ((uint32_t)ci_req->hw_buf & 0xfffff000) +
0x3000;
- item->page4 = ((uint32_t)ci_req->hw_buf & 0xfffff000) +
0x4000;
- item->page0 = (unsigned long)ci_req->hw_buf;
- item->page1 = ((unsigned long)ci_req->hw_buf & 0xfffff000) +
0x1000;
- item->page2 = ((unsigned long)ci_req->hw_buf & 0xfffff000) +
0x2000;
- item->page3 = ((unsigned long)ci_req->hw_buf & 0xfffff000) +
0x3000;
- item->page4 = ((unsigned long)ci_req->hw_buf & 0xfffff000) +
0x4000;
- head->next = (unsigned) item;
head->next = (unsigned long)item; head->info = 0;
/*
@@ -422,7 +422,7 @@ static void ci_ep_submit_next_request(struct ci_ep *ci_ep) * can use the other to transmit the extra zero-length packet. */ struct ept_queue_item *other_item = ci_get_qtd(num, 0);
item->next = (unsigned)other_item;
item = other_item; item->info = INFO_ACTIVE; }item->next = (unsigned long)other_item;
@@ -772,7 +772,7 @@ static int ci_pullup(struct usb_gadget *gadget, int is_on) writel(USBCMD_ITC(MICRO_8FRAME) | USBCMD_RST, &udc->usbcmd); udelay(200);
writel((unsigned)controller.epts, &udc->epinitaddr);
writel((unsigned long)controller.epts,
&udc->epinitaddr); /* select DEVICE mode */ writel(USBMODE_DEVICE, &udc->usbmode);
Reviewed-by: Lukasz Majewski l.majewski@samsung.com

On Tuesday, March 17, 2015 at 09:46:35 PM, Rob Herring wrote:
Change addresses to unsigned long to be compatible with 64-bit builds. Regardless of fixing warnings, the device is still only 32-bit capable.
Signed-off-by: Rob Herring robh@kernel.org Cc: "Łukasz Majewski" l.majewski@samsung.com Cc: Marek Vasut marex@denx.de
Applied, thanks!
Best regards, Marek Vasut
participants (6)
-
Heiko Schocher
-
Lukasz Majewski
-
Marek Vasut
-
Pantelis Antoniou
-
Rob Herring
-
Thierry Reding