Takashi Iwai 4056d3
From 3672fb65155530b5eea6225685c75329b6debec3 Mon Sep 17 00:00:00 2001
Takashi Iwai 4056d3
From: Lizhi Hou <lizhi.hou@xilinx.com>
Takashi Iwai 4056d3
Date: Mon, 29 Nov 2021 12:23:02 -0800
Takashi Iwai 4056d3
Subject: [PATCH] tty: serial: uartlite: allow 64 bit address
Takashi Iwai 4056d3
Git-commit: 3672fb65155530b5eea6225685c75329b6debec3
Takashi Iwai 4056d3
Patch-mainline: v5.17-rc1
Takashi Iwai 4056d3
References: git-fixes
Takashi Iwai 4056d3
Takashi Iwai 4056d3
The base address of uartlite registers could be 64 bit address which is from
Takashi Iwai 4056d3
device resource. When ulite_probe() calls ulite_assign(), this 64 bit
Takashi Iwai 4056d3
address is casted to 32-bit. The fix is to replace "u32" type with
Takashi Iwai 4056d3
"phys_addr_t" type for the base address in ulite_assign() argument list.
Takashi Iwai 4056d3
Takashi Iwai 4056d3
Fixes: 8fa7b6100693 ("[POWERPC] Uartlite: Separate the bus binding from the driver proper")
Takashi Iwai 4056d3
Signed-off-by: Lizhi Hou <lizhi.hou@xilinx.com>
Takashi Iwai 4056d3
Link: https://lore.kernel.org/r/20211129202302.1319033-1-lizhi.hou@xilinx.com
Takashi Iwai 4056d3
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Takashi Iwai 4056d3
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 4056d3
Takashi Iwai 4056d3
---
Takashi Iwai 4056d3
 drivers/tty/serial/uartlite.c | 2 +-
Takashi Iwai 4056d3
 1 file changed, 1 insertion(+), 1 deletion(-)
Takashi Iwai 4056d3
Takashi Iwai 4056d3
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
Takashi Iwai 4056d3
index d3d9566e5dbd..e1fa52d31474 100644
Takashi Iwai 4056d3
--- a/drivers/tty/serial/uartlite.c
Takashi Iwai 4056d3
+++ b/drivers/tty/serial/uartlite.c
Takashi Iwai 4056d3
@@ -626,7 +626,7 @@ static struct uart_driver ulite_uart_driver = {
Takashi Iwai 4056d3
  *
Takashi Iwai 4056d3
  * Returns: 0 on success, <0 otherwise
Takashi Iwai 4056d3
  */
Takashi Iwai 4056d3
-static int ulite_assign(struct device *dev, int id, u32 base, int irq,
Takashi Iwai 4056d3
+static int ulite_assign(struct device *dev, int id, phys_addr_t base, int irq,
Takashi Iwai 4056d3
 			struct uartlite_data *pdata)
Takashi Iwai 4056d3
 {
Takashi Iwai 4056d3
 	struct uart_port *port;
Takashi Iwai 4056d3
-- 
Takashi Iwai 4056d3
2.31.1
Takashi Iwai 4056d3