staging/emxx_udc: fix 64-bit warnings
authorArnd Bergmann <arnd@arndb.de>
Wed, 18 Nov 2015 21:02:39 +0000 (22:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Dec 2015 02:32:52 +0000 (18:32 -0800)
ARCH_SHMOBILE is coming to arm64, which creates new warnings in allmodconfig:

drivers/staging/emxx_udc/emxx_udc.c: In function '_nbu2ss_out_dma':
drivers/staging/emxx_udc/emxx_udc.c:843:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  _nbu2ss_writel(&preg->EP_DCR[num].EP_TADR, (u32)pBuffer);

This is clearly a mistake from confusing a dma_addr_t with a pointer,
so the fix is to use the correct types in two places.

The third warning of this kind is a check for an unaligned pointer,
which should be done by casting the pointer to uintptr_t, not int.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/emxx_udc/emxx_udc.c

index 4e6c16af40fc5f8fa2065dacb946ad2a78adf0e9..c168845cbb91e0a40c1f86f10b7e53e3c37fdc4d 100644 (file)
@@ -823,7 +823,7 @@ static int _nbu2ss_out_dma(
        u32             length
 )
 {
-       u8              *pBuffer;
+       dma_addr_t      pBuffer;
        u32             mpkt;
        u32             lmpkt;
        u32             dmacnt;
@@ -836,7 +836,7 @@ static int _nbu2ss_out_dma(
                return 1;               /* DMA is forwarded */
 
        req->dma_flag = TRUE;
-       pBuffer = (u8 *)req->req.dma;
+       pBuffer = req->req.dma;
        pBuffer += req->req.actual;
 
        /* DMA Address */
@@ -1034,7 +1034,7 @@ static int _nbu2ss_in_dma(
        u32             length
 )
 {
-       u8              *pBuffer;
+       dma_addr_t      pBuffer;
        u32             mpkt;           /* MaxPacketSize */
        u32             lmpkt;          /* Last Packet Data Size */
        u32             dmacnt;         /* IN Data Size */
@@ -1080,7 +1080,7 @@ static int _nbu2ss_in_dma(
        _nbu2ss_writel(&preg->EP_DCR[num].EP_DCR2, data);
 
        /* Address setting */
-       pBuffer = (u8 *)req->req.dma;
+       pBuffer = req->req.dma;
        pBuffer += req->req.actual;
        _nbu2ss_writel(&preg->EP_DCR[num].EP_TADR, (u32)pBuffer);
 
@@ -2728,7 +2728,7 @@ static int nbu2ss_ep_queue(
        spin_lock_irqsave(&udc->lock, flags);
 
 #ifdef USE_DMA
-       if ((u32)req->req.buf & 0x3)
+       if ((uintptr_t)req->req.buf & 0x3)
                req->unaligned = TRUE;
        else
                req->unaligned = FALSE;