From: Arnd Bergmann <arnd@arndb.de>
To: Dave Martin <dave.martin@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Nicolas Pitre <nicolas.pitre@linaro.org>,
Tony Lindgren <tony@atomide.com>,
Santosh Shilimkar <santosh.shilimkar@ti.com>,
linux-omap@vger.kernel.org, Jean Pihet <j-pihet@ti.com>
Subject: Re: [PATCH v2] ARM: Define wfi() macro for v6 processors
Date: Tue, 8 Feb 2011 16:42:52 +0100 [thread overview]
Message-ID: <201102081642.52774.arnd@arndb.de> (raw)
In-Reply-To: <AANLkTim6aBUJtkQHZBWfTWsjh2+ijFqOgf9cPGSrRtMD@mail.gmail.com>
On Tuesday 08 February 2011, Dave Martin wrote:
> Why not have macros for these cases? (Which kinda brings the
> discussion full-circle...)
>
> My immediate concern is that too often, the Thumb-2 case will be
> handled incorrectly or not at all ... and the kernel will silently
> build without flagging any error. Macros would allow the fragile
> definitions to go in one place.
A macro to handle the thumb2 case and weird toolchains sounds good,
but if we want to build code for multiple CPUs, we need multiple
macros, not one macro that works on a specific CPU.
We could put all those macros unconditionally into a arch
specific header, e.g.
arch/arm/include/asm/system-v7.h:
#define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
arch/arm/include/asm/system-v6k.h:
#define wfi() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c0, 4" \
: : "r" (0) : "memory")
And then have each C file using them be CPU specific and include
only one (you get an gcc warning if you try to include both).
This should work fine, but it's different again from how we handle
other things like spinlocks or cache management across multiple
CPUs.
Arnd
WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] ARM: Define wfi() macro for v6 processors
Date: Tue, 8 Feb 2011 16:42:52 +0100 [thread overview]
Message-ID: <201102081642.52774.arnd@arndb.de> (raw)
In-Reply-To: <AANLkTim6aBUJtkQHZBWfTWsjh2+ijFqOgf9cPGSrRtMD@mail.gmail.com>
On Tuesday 08 February 2011, Dave Martin wrote:
> Why not have macros for these cases? (Which kinda brings the
> discussion full-circle...)
>
> My immediate concern is that too often, the Thumb-2 case will be
> handled incorrectly or not at all ... and the kernel will silently
> build without flagging any error. Macros would allow the fragile
> definitions to go in one place.
A macro to handle the thumb2 case and weird toolchains sounds good,
but if we want to build code for multiple CPUs, we need multiple
macros, not one macro that works on a specific CPU.
We could put all those macros unconditionally into a arch
specific header, e.g.
arch/arm/include/asm/system-v7.h:
#define wfi() __asm__ __volatile__ ("wfi" : : : "memory")
arch/arm/include/asm/system-v6k.h:
#define wfi() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c0, 4" \
: : "r" (0) : "memory")
And then have each C file using them be CPU specific and include
only one (you get an gcc warning if you try to include both).
This should work fine, but it's different again from how we handle
other things like spinlocks or cache management across multiple
CPUs.
Arnd
next prev parent reply other threads:[~2011-02-08 15:42 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-08 11:01 [PATCH v2] ARM: Define wfi() macro for v6 processors Dave Martin
2011-02-08 11:01 ` Dave Martin
2011-02-08 11:08 ` Russell King - ARM Linux
2011-02-08 11:08 ` Russell King - ARM Linux
2011-02-08 11:16 ` Dave Martin
2011-02-08 11:16 ` Dave Martin
2011-02-08 12:11 ` Arnd Bergmann
2011-02-08 12:11 ` Arnd Bergmann
2011-02-08 12:13 ` Russell King - ARM Linux
2011-02-08 12:13 ` Russell King - ARM Linux
2011-02-08 12:53 ` Arnd Bergmann
2011-02-08 12:53 ` Arnd Bergmann
2011-02-08 14:45 ` Dave Martin
2011-02-08 14:45 ` Dave Martin
2011-02-08 14:54 ` Santosh Shilimkar
2011-02-08 14:54 ` Santosh Shilimkar
2011-02-08 15:09 ` Dave Martin
2011-02-08 15:09 ` Dave Martin
2011-02-08 15:17 ` Arnd Bergmann
2011-02-08 15:17 ` Arnd Bergmann
2011-02-08 16:32 ` Russell King - ARM Linux
2011-02-08 16:32 ` Russell King - ARM Linux
2011-02-08 16:58 ` Arnd Bergmann
2011-02-08 16:58 ` Arnd Bergmann
2011-02-08 17:15 ` Dave Martin
2011-02-08 17:15 ` Dave Martin
2011-02-08 15:15 ` Arnd Bergmann
2011-02-08 15:15 ` Arnd Bergmann
2011-02-08 15:30 ` Dave Martin
2011-02-08 15:30 ` Dave Martin
2011-02-08 15:42 ` Arnd Bergmann [this message]
2011-02-08 15:42 ` Arnd Bergmann
2011-02-08 16:21 ` Dave Martin
2011-02-08 16:21 ` Dave Martin
2011-02-09 10:07 ` Arnd Bergmann
2011-02-09 10:07 ` Arnd Bergmann
2011-02-08 16:25 ` Russell King - ARM Linux
2011-02-08 16:25 ` Russell King - ARM Linux
2011-02-08 16:31 ` Dave Martin
2011-02-08 16:31 ` Dave Martin
2011-02-08 16:47 ` Arnd Bergmann
2011-02-08 16:47 ` Arnd Bergmann
2011-02-08 16:55 ` Russell King - ARM Linux
2011-02-08 16:55 ` Russell King - ARM Linux
2011-02-08 17:00 ` Dave Martin
2011-02-08 17:00 ` Dave Martin
2011-02-08 16:20 ` Russell King - ARM Linux
2011-02-08 16:20 ` Russell King - ARM Linux
2011-02-08 16:28 ` Dave Martin
2011-02-08 16:28 ` Dave Martin
2011-02-08 12:22 ` Dave Martin
2011-02-08 12:22 ` Dave Martin
2011-02-08 12:31 ` Santosh Shilimkar
2011-02-08 12:31 ` Santosh Shilimkar
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=201102081642.52774.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=dave.martin@linaro.org \
--cc=j-pihet@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=nicolas.pitre@linaro.org \
--cc=santosh.shilimkar@ti.com \
--cc=tony@atomide.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.