mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

The ioread/iowrite functions on sh only do memory mapped I/O like the generic verion, and never map onto non-MMIO inb/outb variants, so they just add complexity. In particular, the use of asm-generic/iomap.h ties the declaration to the x86 implementation. Remove the custom versions and use the architecture-independent fallback code instead. Some of the calling conventions on sh are different here, so fix that by adding 'volatile' keywords where required by the generic implementation and change the cpg clock driver to no longer depend on the interesting choice of return types for ioread8/ioread16/ioread32. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
25 lines
537 B
C
25 lines
537 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* arch/sh/kernel/ioport.c
|
|
*
|
|
* Copyright (C) 2000 Niibe Yutaka
|
|
* Copyright (C) 2005 - 2007 Paul Mundt
|
|
*/
|
|
#include <linux/module.h>
|
|
#include <linux/io.h>
|
|
#include <asm/io_trapped.h>
|
|
|
|
unsigned long sh_io_port_base __read_mostly = -1;
|
|
EXPORT_SYMBOL(sh_io_port_base);
|
|
|
|
void __iomem *ioport_map(unsigned long port, unsigned int nr)
|
|
{
|
|
void __iomem *ret;
|
|
|
|
ret = __ioport_map_trapped(port, nr);
|
|
if (ret)
|
|
return ret;
|
|
|
|
return (void __iomem *)(port + sh_io_port_base);
|
|
}
|
|
EXPORT_SYMBOL(ioport_map);
|