diff mbox

[U-Boot] mtd: denali: fix warning when compiled for 64bit system

Message ID 1456747049-384-1-git-send-email-yamada.masahiro@socionext.com
State Accepted
Commit 73b5b27b7a8a01cf0527ecba5419ef5a44caf27d
Delegated to: Masahiro Yamada
Headers show

Commit Message

Masahiro Yamada Feb. 29, 2016, 11:57 a.m. UTC
The 64-bit compiler (ex. aarch64) emits "warning: cast from pointer
to integer of different size".

Make it work with 64bit DMA address while I am here.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 drivers/mtd/nand/denali.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Tom Rini March 1, 2016, 1:59 a.m. UTC | #1
On Mon, Feb 29, 2016 at 08:57:29PM +0900, Masahiro Yamada wrote:

> The 64-bit compiler (ex. aarch64) emits "warning: cast from pointer
> to integer of different size".
> 
> Make it work with 64bit DMA address while I am here.
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Reviewed-by: Tom Rini <trini@konsulko.com>
Masahiro Yamada March 23, 2016, 4:48 p.m. UTC | #2
2016-02-29 20:57 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
> The 64-bit compiler (ex. aarch64) emits "warning: cast from pointer
> to integer of different size".
>
> Make it work with 64bit DMA address while I am here.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Applied to u-boot-uniphier/master.
diff mbox

Patch

diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
index b94fb29..53e6956 100644
--- a/drivers/mtd/nand/denali.c
+++ b/drivers/mtd/nand/denali.c
@@ -747,7 +747,7 @@  static void denali_setup_dma(struct denali_nand_info *denali, int op)
 {
 	uint32_t mode;
 	const int page_count = 1;
-	uint32_t addr = (uint32_t)denali->buf.dma_buf;
+	uint64_t addr = (unsigned long)denali->buf.dma_buf;
 
 	flush_dcache_range(addr, addr + sizeof(denali->buf.dma_buf));
 
@@ -765,7 +765,7 @@  static void denali_setup_dma(struct denali_nand_info *denali, int op)
 	index_addr(denali, mode, addr);
 
 	/* 3. set memory high address bits 64:32 */
-	index_addr(denali, mode, 0);
+	index_addr(denali, mode, addr >> 32);
 #else
 	mode = MODE_10 | BANK(denali->flash_bank);
 
@@ -775,7 +775,7 @@  static void denali_setup_dma(struct denali_nand_info *denali, int op)
 	index_addr(denali, mode | denali->page, 0x2000 | op | page_count);
 
 	/* 2. set memory high address bits 23:8 */
-	index_addr(denali, mode | ((addr >> 16) << 8), 0x2200);
+	index_addr(denali, mode | (((addr >> 16) & 0xffff) << 8), 0x2200);
 
 	/* 3. set memory low address bits 23:8 */
 	index_addr(denali, mode | ((addr & 0xffff) << 8), 0x2300);