diff options
author | Arnd Bergmann <arnd@arndb.de> | 2024-10-28 21:05:41 +0000 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2024-10-28 21:44:29 +0000 |
commit | a8cb1e92d29096b1fe58ef6fdcee699196eac1bd (patch) | |
tree | 70751aa2793b529ebee2a84480d7534579ce20d8 /arch/hexagon/lib | |
parent | 6e3f5e626cb9a046133eef9fbaa82ac67cfa9ff2 (diff) |
hexagon: simplify asm/io.h for !HAS_IOPORT
Hexagon fails to build after the final patch that makes CONFIG_HAS_IOPORT
optional:
In file included from arch/hexagon/include/asm/io.h:328:
include/asm-generic/io.h:854:18: error: static declaration of 'ioread8' follows non-static declaration
854 | static inline u8 ioread8(const volatile void __iomem *addr)
| ^
include/asm-generic/io.h:853:17: note: expanded from macro 'ioread8'
853 | #define ioread8 ioread8
| ^
include/asm-generic/iomap.h:29:21: note: previous declaration is here
29 | extern unsigned int ioread8(const void __iomem *);
| ^
As it turns out, most of its asm/io.h and lib/io.c files is redundant now,
and just removing all that makes it build again.
As with the other architectures, defining the __raw_readl()/__raw_writel()
type functions instead of the non-__raw ones is better here for consistency.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/hexagon/lib')
-rw-r--r-- | arch/hexagon/lib/Makefile | 2 | ||||
-rw-r--r-- | arch/hexagon/lib/io.c | 82 |
2 files changed, 1 insertions, 83 deletions
diff --git a/arch/hexagon/lib/Makefile b/arch/hexagon/lib/Makefile index a64641e89d5f..107894c0910e 100644 --- a/arch/hexagon/lib/Makefile +++ b/arch/hexagon/lib/Makefile @@ -2,5 +2,5 @@ # # Makefile for hexagon-specific library files. # -obj-y = checksum.o io.o memcpy.o memset.o memcpy_likely_aligned.o \ +obj-y = checksum.o memcpy.o memset.o memcpy_likely_aligned.o \ divsi3.o modsi3.o udivsi3.o umodsi3.o diff --git a/arch/hexagon/lib/io.c b/arch/hexagon/lib/io.c deleted file mode 100644 index 55f75392857b..000000000000 --- a/arch/hexagon/lib/io.c +++ /dev/null @@ -1,82 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * I/O access functions for Hexagon - * - * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. - */ - -#include <asm/io.h> - -/* These are all FIFO routines! */ - -/* - * __raw_readsw - read words a short at a time - * @addr: source address - * @data: data address - * @len: number of shorts to read - */ -void __raw_readsw(const void __iomem *addr, void *data, int len) -{ - const volatile short int *src = (short int *) addr; - short int *dst = (short int *) data; - - if ((u32)data & 0x1) - panic("unaligned pointer to readsw"); - - while (len-- > 0) - *dst++ = *src; - -} -EXPORT_SYMBOL(__raw_readsw); - -/* - * __raw_writesw - read words a short at a time - * @addr: source address - * @data: data address - * @len: number of shorts to read - */ -void __raw_writesw(void __iomem *addr, const void *data, int len) -{ - const short int *src = (short int *)data; - volatile short int *dst = (short int *)addr; - - if ((u32)data & 0x1) - panic("unaligned pointer to writesw"); - - while (len-- > 0) - *dst = *src++; - - -} -EXPORT_SYMBOL(__raw_writesw); - -/* Pretty sure len is pre-adjusted for the length of the access already */ -void __raw_readsl(const void __iomem *addr, void *data, int len) -{ - const volatile long *src = (long *) addr; - long *dst = (long *) data; - - if ((u32)data & 0x3) - panic("unaligned pointer to readsl"); - - while (len-- > 0) - *dst++ = *src; - - -} -EXPORT_SYMBOL(__raw_readsl); - -void __raw_writesl(void __iomem *addr, const void *data, int len) -{ - const long *src = (long *)data; - volatile long *dst = (long *)addr; - - if ((u32)data & 0x3) - panic("unaligned pointer to writesl"); - - while (len-- > 0) - *dst = *src++; - - -} -EXPORT_SYMBOL(__raw_writesl); |