linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/8] asm-generic/io.h overhaul
@ 2014-08-13 10:28 Thierry Reding
  2014-08-13 10:28 ` [PATCH v4 1/8] ARC: Remove redundant PCI_IOBASE declaration Thierry Reding
                   ` (9 more replies)
  0 siblings, 10 replies; 22+ messages in thread
From: Thierry Reding @ 2014-08-13 10:28 UTC (permalink / raw)
  To: linux-arm-kernel

From: Thierry Reding <treding@nvidia.com>

Hi,

Here is the fourth version of a series that started out as an attempt to
provide string versions of the read*() and write*() accessors to more
architectures so that drivers can use them portably. The series has
since evolved into a more general cleanup of asm-generic/io.h and the
functions defined therein.

Patch 1 is trivial and removes a redundant redefinition of PCI_IOBASE
from the asm/io.h header on ARC. Patches 2 and 3 remove unnecessary
volatile keywoards from some functions, which is a prerequisite to clean
up some of the functions in subsequent patches.

The xlate_dev_{kmem,mem}_ptr() functions are used to map memory when the
/dev/mem device is accessed. Patches 4 and 5 use more consistent data
types for these functions, which will get a "standard" prototype in the
asm-generic/io.h header in a subsequent patch.

Patch 6 is the bulk of this series. It implements the string variants of
the read*() and write*() accessors and cleans up various other parts of
the asm-generic/io.h header file. Macros are converted to static inline
functions for better type checking. Overriding generic implementations
in architectures is handled more consistently.

Patches 7 and 8, finally, make use of the asm-generic/io.h header on the
32-bit and 64-bit ARM architectures.

This is compile- and runtime-tested on 32-bit and 64-bit ARM and compile
tested on IA64, Microblaze, s390, SPARC, x86 and Xtensa. For ARC,
Blackfin, Metag, OpenRISC, Score and Unicore32 which also use
asm-generic/io.h I couldn't find or build a cross-compiler that would
run on my system. But by code inspection they shouldn't break with this
patch.

To ensure bisectability I built multi_v7_defconfig on 32-bit ARM and the
defconfig for 64-bit ARM, IA64, Microblaze, s390, SPARC, x86 and Xtensa
after each commit and verified that the series does not introduce any
build errors or warnings.

Provided there are no objections to the patches there's still the matter
of how to merge them. Patch 6 depends on patches 1-5 to avoid warnings
and/or errors during the build. Patches 7 and 8 depend on patch 6. In my
opinion it doesn't make much sense to split them up, so I guess we'll
need a volunteer to take them all into one tree. Ideally that tree would
feed into linux-next so that we can get as much build and test-coverage
as possible during the 3.17 release cycle so that these patches can go
into 3.18.

Arnd, I'm opportunistically sending this To: you in the hopes that you
can take it into your asm-generic tree which seems like the best fit for
this.

Thierry

Thierry Reding (8):
  ARC: Remove redundant PCI_IOBASE declaration
  serial: sunzilog: Remove unnecessary volatile keyword
  sparc: Remove unnecessary volatile usage
  [IA64] Change xlate_dev_{kmem,mem}_ptr() prototypes
  /dev/mem: Use more consistent data types
  asm-generic/io.h: Implement generic {read,write}s*()
  ARM: Use include/asm-generic/io.h
  arm64: Use include/asm-generic/io.h

 arch/arc/include/asm/io.h       |   2 -
 arch/arm/include/asm/io.h       |  75 ++---
 arch/arm/include/asm/memory.h   |   2 +
 arch/arm64/Kconfig              |   1 -
 arch/arm64/include/asm/io.h     | 122 ++-----
 arch/arm64/include/asm/memory.h |   2 +
 arch/ia64/include/asm/uaccess.h |  16 +-
 arch/s390/include/asm/io.h      |   5 +-
 arch/s390/mm/maccess.c          |   4 +-
 arch/sparc/include/asm/io_32.h  |  18 +-
 arch/x86/include/asm/io.h       |   4 +-
 arch/x86/mm/ioremap.c           |   4 +-
 drivers/char/mem.c              |  13 +-
 drivers/tty/serial/sunzilog.h   |   8 +-
 include/asm-generic/io.h        | 683 ++++++++++++++++++++++++++++++++--------
 15 files changed, 647 insertions(+), 312 deletions(-)

-- 
2.0.4

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2014-09-30 10:51 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-13 10:28 [PATCH v4 0/8] asm-generic/io.h overhaul Thierry Reding
2014-08-13 10:28 ` [PATCH v4 1/8] ARC: Remove redundant PCI_IOBASE declaration Thierry Reding
2014-08-13 10:28 ` [PATCH v4 2/8] serial: sunzilog: Remove unnecessary volatile keyword Thierry Reding
2014-08-13 10:28 ` [PATCH v4 3/8] sparc: Remove unnecessary volatile usage Thierry Reding
2014-08-13 10:28 ` [PATCH v4 4/8] [IA64] Change xlate_dev_{kmem,mem}_ptr() prototypes Thierry Reding
2014-08-13 10:28 ` [PATCH v4 5/8] /dev/mem: Use more consistent data types Thierry Reding
2014-08-13 10:28 ` [PATCH v4 6/8] asm-generic/io.h: Implement generic {read,write}s*() Thierry Reding
2014-09-29  8:54   ` [PATCH v4 6/8] asm-generic/io.h: Implement generic {read, write}s*() Geert Uytterhoeven
2014-09-29  8:59     ` [PATCH v4 6/8] asm-generic/io.h: Implement generic {read,write}s*() Thierry Reding
2014-09-30 10:22       ` [PATCH v4 6/8] asm-generic/io.h: Implement generic {read, write}s*() Max Filippov
2014-09-30 10:26         ` Max Filippov
2014-09-30 10:39           ` Arnd Bergmann
2014-09-30 10:51             ` [PATCH v4 6/8] asm-generic/io.h: Implement generic {read,write}s*() Thierry Reding
2014-08-13 10:28 ` [PATCH v4 7/8] ARM: Use include/asm-generic/io.h Thierry Reding
2014-08-13 10:28 ` [PATCH v4 8/8] arm64: " Thierry Reding
2014-08-25 11:26 ` [PATCH v4 0/8] asm-generic/io.h overhaul Thierry Reding
2014-09-24  6:04   ` Thierry Reding
2014-09-25 14:56     ` Arnd Bergmann
2014-08-25 11:53 ` Richard Weinberger
2014-08-25 12:27   ` Thierry Reding
2014-08-25 12:52     ` Richard Weinberger
2014-08-25 13:37       ` Thierry Reding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).