summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJ. Neuschäfer <[email protected]>2025-02-18 14:39:45 +0100
committerTom Rini <[email protected]>2025-02-28 08:37:55 -0600
commitc634436038072270811008b2b698ddaec8be6967 (patch)
treed5cd996be05c11ac02ad4064c4afc0117f3b99b4 /drivers
parent1ca97ee9039293858988dc38ea3a8ff995b4950e (diff)
serial: ns16550: Fix pointer type mismatch
serial_out_dynamic() takes a u8* addr and uses it for 8-bit or 32-bit accesses, depending on the value of plat->reg_width. This results in a pointer type mismatch that the compiler may even turn into an error: drivers/serial/ns16550.c: In function ‘serial_out_dynamic’: drivers/serial/ns16550.c:115:42: error: passing argument 1 of ‘out_be32’ from incompatible pointer type [-Wincompatible-pointer-types] 115 | out_be32(addr, value); | ^~~~ | | | u8 * {aka unsigned char *} This error was observed on PowerPC. Signed-off-by: J. Neuschäfer <[email protected]>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/serial/ns16550.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 0e267d097c5..7e460f6d2c7 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -112,9 +112,9 @@ static void serial_out_dynamic(struct ns16550_plat *plat, u8 *addr,
} else if (plat->reg_width == 4) {
if (plat->flags & NS16550_FLAG_ENDIAN) {
if (plat->flags & NS16550_FLAG_BE)
- out_be32(addr, value);
+ out_be32((u32 *)addr, value);
else
- out_le32(addr, value);
+ out_le32((u32 *)addr, value);
} else {
writel(value, addr);
}
@@ -132,9 +132,9 @@ static int serial_in_dynamic(struct ns16550_plat *plat, u8 *addr)
} else if (plat->reg_width == 4) {
if (plat->flags & NS16550_FLAG_ENDIAN) {
if (plat->flags & NS16550_FLAG_BE)
- return in_be32(addr);
+ return in_be32((u32 *)addr);
else
- return in_le32(addr);
+ return in_le32((u32 *)addr);
} else {
return readl(addr);
}