From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [GIT PULL] omap changes for v2.6.39 merge window
Date: Sun, 3 Apr 2011 17:03:25 +0100 [thread overview]
Message-ID: <20110403160324.GA8050@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <201104031726.37420.arnd@arndb.de>
On Sun, Apr 03, 2011 at 05:26:37PM +0200, Arnd Bergmann wrote:
> There are a few other examples that were done in a similar way:
> * The drivers/ide code still serves a few hardware platforms that
> never had anyone write a new libata code. Libata itself has
> been in a good shape for a long time though.
And there are platforms where libata just doesn't work but the old
ide driver does. My firewall with a CF card in is completely unusable
with libata, but works fine with the old IDE driver.
That's partly caused by there being no support for the ISA IOCS16 signal
on that hardware, so the ISA bus needs specific handling depending on
the behaviour of the ISA device being addressed. Yes, crap hardware,
nothing new there.
> We generally try to do gradual cleanups to any kernel code that is
> worth keeping, because as you say the duplication itself causes a
> lot of friction. For particularly hard cases, doing a replacement
> implementation is an exceptional way out. What we need to find a
> consensus on is how bad the problem in arch/arm/mach-*/ is:
>
> 1. No fundamental problem, just needs some care to clean up (your
> position, I guess), so we do do what we always do and keep doing
> gradual improvements, including treewide API changes.
> 2. Bad enough that starting a new competing implementation is easier
> because it lets us try different things more easily and reduce
> the number of treewide changes to all existing platforms.
> (this is where I think we are) Like IDE and OSS, the old code
> can still get improved and bug fixed, but concentrating on new
> code gives us better freedom to make progress more quickly.
> 3. In need of a complete replacement, like arch/ppc and a lot of
> drivers/staging. I'm not arguing that it's that bad.
Having just looked at the clocksource stuff, there's 9 up-counting 32-bit
clocksources which are relatively easy to port to a single piece of code.
There's a number of down-counting clocksources using various methods to
convert to an up-counting value - sometimes -readl(), sometimes
cs->mask - readl() and sometimes ~readl().
Then there's those which are either 16-bit or 32-bit, and some of those
16-bit implementations must use readw() to avoid bus faults.
Combining all those together you end up with something pretty disgusting,
and an initialization function taking 7 arguments (iomem pointer, name,
rating, tick rate, size, up/down counter, clocksource flags).
Does it lead to more maintainable code? I'm not convinced - while it
certainly reduces the amount of code, but the reduced code is rather
more complex.
Would an alternative be to introduce separate mmio-32bit-up, mmio-32bit-down,
mmio-16bit-up and mmio-16bit-down clocksources? That also doesn't give
me a good feeling about the result.
Then there's those which change the cs->read function pointer at runtime,
and those which share that pointer with their sched_clock() implementation.
And those which need to do special things (like loop until read values are
stable) in their read functions which probably can't ever be supported by
common code.
next prev parent reply other threads:[~2011-04-03 16:03 UTC|newest]
Thread overview: 161+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-17 18:30 [GIT PULL] omap changes for v2.6.39 merge window Tony Lindgren
2011-03-18 2:50 ` Linus Torvalds
2011-03-18 7:06 ` Tony Lindgren
2011-03-18 10:15 ` Russell King - ARM Linux
2011-03-18 11:13 ` Uwe Kleine-König
2011-03-30 17:06 ` Arnd Bergmann
2011-03-30 19:21 ` Linus Torvalds
2011-03-30 20:41 ` Nicolas Pitre
2011-03-30 21:02 ` Linus Torvalds
2011-03-30 23:31 ` Nicolas Pitre
2011-03-30 23:59 ` Russell King - ARM Linux
2011-03-31 0:15 ` Tony Lindgren
2011-03-31 0:31 ` Bill Gatliff
2011-03-31 0:39 ` david at lang.hm
2011-03-31 3:17 ` Nicolas Pitre
2011-03-31 3:29 ` Dave Airlie
2011-03-31 4:38 ` Nicolas Pitre
2011-03-31 9:54 ` Alan Cox
2011-03-31 10:50 ` Russell King - ARM Linux
2011-03-31 12:23 ` Jean-Christophe PLAGNIOL-VILLARD
2011-03-31 12:38 ` Catalin Marinas
2011-03-31 13:01 ` Russell King - ARM Linux
2011-03-31 14:55 ` Bill Gatliff
2011-04-01 12:41 ` Arnd Bergmann
2011-03-31 18:12 ` Sam Ravnborg
2011-03-31 18:17 ` Russell King - ARM Linux
2011-03-31 18:34 ` Jesse Barnes
2011-03-31 13:54 ` Thomas Gleixner
2011-03-31 17:22 ` david at lang.hm
2011-03-31 18:08 ` Koen Kooi
2011-03-31 5:05 ` david at lang.hm
2011-03-31 7:15 ` Nicolas Pitre
2011-03-31 8:06 ` Ingo Molnar
2011-03-31 8:30 ` Russell King - ARM Linux
2011-03-31 10:41 ` Ingo Molnar
2011-03-31 13:25 ` Russell King - ARM Linux
2011-03-31 12:04 ` Thomas Gleixner
2011-03-31 14:43 ` Kevin Hilman
2011-03-31 15:01 ` Thomas Gleixner
2011-03-31 15:05 ` Russell King - ARM Linux
2011-03-31 15:45 ` david at lang.hm
2011-03-31 15:23 ` Arnd Bergmann
2011-03-31 16:58 ` Thomas Gleixner
2011-03-31 18:23 ` Nicolas Pitre
2011-03-31 18:55 ` Thomas Gleixner
2011-04-01 11:32 ` Arnd Bergmann
2011-03-31 20:35 ` Kevin Hilman
2011-04-01 11:29 ` Arnd Bergmann
2011-04-01 7:32 ` Tomi Valkeinen
2011-04-01 11:22 ` Arnd Bergmann
2011-04-01 11:55 ` Tomi Valkeinen
2011-04-01 12:07 ` Arnd Bergmann
2011-04-01 12:15 ` Tomi Valkeinen
2011-03-31 16:03 ` david at lang.hm
2011-03-31 16:45 ` Russell King - ARM Linux
2011-03-31 17:17 ` Linus Torvalds
2011-03-31 19:25 ` Nicolas Pitre
2011-03-31 20:05 ` Linus Torvalds
2011-03-31 20:28 ` Linus Torvalds
2011-03-31 22:49 ` Nicolas Pitre
2011-04-01 0:53 ` Mark Brown
2011-04-01 4:50 ` David Brown
2011-04-01 7:45 ` Ingo Molnar
2011-04-01 13:54 ` Arnd Bergmann
2011-04-01 14:28 ` Detlef Vollmann
2011-04-01 14:59 ` Arnd Bergmann
2011-04-01 15:30 ` Detlef Vollmann
2011-04-01 15:50 ` Arnd Bergmann
2011-04-01 17:44 ` Russell King - ARM Linux
2011-04-01 19:54 ` Nicolas Pitre
2011-04-01 21:00 ` Uwe Kleine-König
2011-04-01 22:08 ` Arnd Bergmann
2011-04-02 2:24 ` Nicolas Pitre
2011-04-03 15:26 ` Arnd Bergmann
2011-04-03 16:03 ` Russell King - ARM Linux [this message]
2011-04-04 0:59 ` Arnd Bergmann
2011-04-04 8:26 ` Marc Zyngier
2011-04-04 11:03 ` Catalin Marinas
2011-04-04 11:21 ` Russell King - ARM Linux
2011-04-04 13:24 ` Marc Zyngier
2011-04-04 13:31 ` Russell King - ARM Linux
2011-04-04 13:57 ` Marc Zyngier
2011-04-04 20:08 ` Linus Walleij
2011-04-05 6:40 ` Santosh Shilimkar
2011-04-05 7:45 ` Russell King - ARM Linux
2011-04-05 14:15 ` Catalin Marinas
2011-04-05 22:16 ` Linus Walleij
2011-04-06 6:43 ` Santosh Shilimkar
2011-04-05 22:22 ` Linus Walleij
2011-04-06 6:41 ` Santosh Shilimkar
2011-04-05 7:30 ` Marc Zyngier
2011-05-26 13:38 ` Pavel Machek
2011-04-02 2:59 ` Mark Brown
2011-04-04 5:16 ` Jean-Christophe PLAGNIOL-VILLARD
2011-04-04 9:27 ` Nicolas Ferre
2011-04-01 21:10 ` Kevin Hilman
2011-04-01 21:32 ` Arnd Bergmann
2011-04-01 21:51 ` Catalin Marinas
2011-04-03 22:18 ` Benjamin Herrenschmidt
2011-04-04 0:14 ` Arnd Bergmann
2011-04-04 2:49 ` Nicolas Pitre
2011-04-01 15:27 ` Will Deacon
2011-04-01 15:55 ` Arnd Bergmann
2011-04-01 16:39 ` Linus Torvalds
2011-04-03 22:26 ` Benjamin Herrenschmidt
2011-04-05 23:19 ` Linus Walleij
2011-04-06 8:41 ` Catalin Marinas
2011-04-07 1:44 ` Arnd Bergmann
2011-04-01 20:19 ` Nicolas Pitre
2011-04-02 4:38 ` Richard Cochran
2011-04-02 3:27 ` Mark Brown
2011-04-06 6:11 ` Barry Song
2011-04-06 7:31 ` Bryan Wu
2011-03-31 21:40 ` Thomas Gleixner
2011-03-31 17:56 ` Nicolas Pitre
2011-03-31 18:34 ` Thomas Gleixner
2011-03-31 19:02 ` Linus Torvalds
2011-03-31 8:09 ` Russell King - ARM Linux
2011-03-31 10:49 ` Felipe Balbi
2011-03-31 18:00 ` Alexander Holler
2011-03-31 5:45 ` Geert Uytterhoeven
2011-03-31 7:21 ` Nicolas Pitre
2011-03-30 22:08 ` Tony Lindgren
2011-03-30 21:10 ` Thomas Gleixner
2011-03-30 21:54 ` Tony Lindgren
2011-03-30 22:25 ` Thomas Gleixner
2011-03-30 22:45 ` Tony Lindgren
2011-03-30 22:56 ` Thomas Gleixner
2011-04-01 1:42 ` Mark Brown
2011-03-30 22:38 ` Paul E. McKenney
2011-03-30 22:47 ` Tony Lindgren
2011-03-30 23:13 ` Paul E. McKenney
2011-03-30 23:14 ` Thomas Gleixner
2011-03-30 23:28 ` Tony Lindgren
2011-03-31 11:00 ` Artem Bityutskiy
2011-03-31 13:54 ` Arnd Bergmann
2011-03-30 21:44 ` Tony Lindgren
2011-03-30 22:20 ` Linus Torvalds
2011-03-30 22:39 ` Tony Lindgren
2011-03-31 0:15 ` Russell King - ARM Linux
2011-03-31 0:55 ` Linus Torvalds
2011-03-31 1:15 ` Bill Gatliff
2011-03-31 1:37 ` Linus Torvalds
2011-03-31 1:44 ` Bill Gatliff
2011-03-31 1:56 ` Linus Torvalds
2011-03-31 2:20 ` Bill Gatliff
2011-03-31 3:24 ` Linus Torvalds
2011-03-31 6:42 ` Olof Johansson
2011-03-31 6:56 ` David Brown
2011-03-31 11:27 ` Felipe Balbi
2011-03-31 13:39 ` Thomas Gleixner
2011-03-31 4:09 ` Nicolas Pitre
2011-03-31 10:11 ` Thomas Gleixner
2011-03-30 21:07 ` Russell King - ARM Linux
2011-03-30 22:14 ` Tony Lindgren
2011-04-01 1:17 ` Mark Brown
2011-04-01 14:17 ` Arnd Bergmann
2011-03-18 3:02 ` Linus Torvalds
2011-03-18 7:09 ` Tony Lindgren
2011-03-18 8:06 ` Ohad Ben-Cohen
2011-03-18 23:43 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110403160324.GA8050@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).