Skip to contentSkip to conversation

sparc64 io refactoring

PATCH In review Sam Ravnborg 2 participants 3 messages Jul 20, 2014 – Jul 22, 2014

lore
Share & tools
lore
#0 lore raw

cover sparc64 io refactoring

The following patchset refactor io_64.h. This was triggered by another patchset by Thierry Reding that updates the the generic io.h such that it may be used by sparc64 and thus make sparc and sparc64 more equal in this area.

Before attempting to introduce the generic version it was necessary to clean up the current state to avoid any mistakes. The updates from Thierry needs to go in before I will attempt introducing the generic io.h.

The sparcspkr used inb()/outb() primitives
for of_ioremap() memory. Update this driver to use sbus_ variants. This change was triggered by a number of new warnings that would otherwise have been seen when dropping the macro indirections.
Likewise PeeCeeI.c had some warnings that was fixed by
using another IO varaint - which simplified the code too.

The patchs has been generated with the --histogram option to make the patch that re-order functions in io_64.h more readable.
So to see the same patches locally you need this option too.

I have not yet any working sparc64 HW - so this is not tested. But I brought a SUN NetraX1 that I am working on gettting running. That may allow me to do some minimal tests in the future.

Sam

Sam Ravnborg (6):
sparcspkr: use sbus_*() primitives for IO
sparc64: update IO access functions in PeeCeeI
sparc64: remove macro indirection in io_64.h
sparc64: drop unused SLOW_DOWN_IO definitions
sparc64: reorder functions in io_64.h
sparc64: avoid code duplication in io_64.h

 arch/sparc/include/asm/io_64.h | 381 ++++++++++++++++-------------------------
 arch/sparc/lib/PeeCeeI.c       |  36 ++--
 drivers/input/misc/sparcspkr.c |  22 +--
 3 files changed, 174 insertions(+), 265 deletions(-)
#1 lore raw
Quoted 17 lines · Sam Ravnborg

The following patchset refactor io_64.h. This was triggered by another patchset by Thierry Reding that updates the the generic io.h such that it may be used by sparc64 and thus make sparc and sparc64 more equal in this area.

Before attempting to introduce the generic version it was necessary to clean up the current state to avoid any mistakes. The updates from Thierry needs to go in before I will attempt introducing the generic io.h.

The sparcspkr used inb()/outb() primitives
for of_ioremap() memory. Update this driver to use sbus_ variants. This change was triggered by a number of new warnings that would otherwise have been seen when dropping the macro indirections.
Likewise PeeCeeI.c had some warnings that was fixed by
using another IO varaint - which simplified the code too.

Quoted 8 lines

The patchs has been generated with the --histogram option to make the patch that re-order functions in io_64.h more readable.
So to see the same patches locally you need this option too.

I have not yet any working sparc64 HW - so this is not tested. But I brought a SUN NetraX1 that I am working on gettting running. That may allow me to do some minimal tests in the future.

I checked the size impact on these patches on a defconfig kernel:

Before:

$ size  vmlinux
   text    data     bss     dec     hex filename
5838466  478776 6876081 13193323         c9506b vmlinux

After:
$size vmlinux
text data bss dec hex filename
5837570 478776 6876081 13192427 c94ceb vmlinux

So in other words a reduction on 896 bytes in text. This it not much but my main concern was if the kernel grow bigger do to these changes - which was not the case.

I did not check but I assume the most of the reduction in size come from the changes in PeeCeeI.c.

Sam

#2 lore raw
In reply to Sam Ravnborg

From: Sam Ravnborg <[email protected]>
Date: Sun, 20 Jul 2014 13:43:13 +0200

Quoted 39 lines · Sam Ravnborg
Quoted 17 lines

The following patchset refactor io_64.h. This was triggered by another patchset by Thierry Reding that updates the the generic io.h such that it may be used by sparc64 and thus make sparc and sparc64 more equal in this area.

Before attempting to introduce the generic version it was necessary to clean up the current state to avoid any mistakes. The updates from Thierry needs to go in before I will attempt introducing the generic io.h.

The sparcspkr used inb()/outb() primitives
for of_ioremap() memory. Update this driver to use sbus_ variants. This change was triggered by a number of new warnings that would otherwise have been seen when dropping the macro indirections.
Likewise PeeCeeI.c had some warnings that was fixed by
using another IO varaint - which simplified the code too.

Quoted 8 lines

The patchs has been generated with the --histogram option to make the patch that re-order functions in io_64.h more readable.
So to see the same patches locally you need this option too.

I have not yet any working sparc64 HW - so this is not tested. But I brought a SUN NetraX1 that I am working on gettting running. That may allow me to do some minimal tests in the future.

I checked the size impact on these patches on a defconfig kernel:

Before:

$ size  vmlinux
   text    data     bss     dec     hex filename
5838466  478776 6876081 13193323         c9506b vmlinux

After:
$size vmlinux
text data bss dec hex filename
5837570 478776 6876081 13192427 c94ceb vmlinux

Quoted 6 lines

So in other words a reduction on 896 bytes in text. This it not much but my main concern was if the kernel grow bigger do to these changes - which was not the case.

I did not check but I assume the most of the reduction in size come from the changes in PeeCeeI.c.

Looks great, applied to sparc-next, thanks Sam!