All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Cc: Tony Lindgren <tony@atomide.com>,
	linux-fbdev@vger.kernel.org,
	Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	linux-mtd@lists.infradead.org,
	Igor Grinberg <grinberg@compulab.co.il>,
	linux-input@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: OMAP1: ams-delta: correct init data section assignments
Date: Sat, 11 Feb 2012 10:24:24 +0000	[thread overview]
Message-ID: <20120211102424.GC13587@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1580046.EEGIFOPvyy@vclass>

On Fri, Feb 10, 2012 at 05:31:31PM +0100, Janusz Krzysztofik wrote:
> On Thursday 09 of February 2012 14:48:53 Russell King - ARM Linux wrote:
> > > -static struct map_desc ams_delta_io_desc[] __initdata = {
> > > +static struct map_desc ams_delta_io_desc[] __initconst = {
> > 
> > You're not making this comst so don't change it to __initconst.
> 
> OK, however, I think there must be a bug in gcc, otherwise it should probably 
> never accept such wrong constructs, while sometimes it does (not only mine, 
> see [1]).

No - because you don't understand what's going on with these tags.
The __initconst and other tags are just tell the compiler to place
stuff into a named section.  The name is interpreted by GCC as a mere
string which it passes through to the ELF file.

So, gcc has no idea that a section named '.init.rodata' could be placed
in read-only memory, and therefore has no idea that it should also be
marked 'const'.

Therefore, gcc has no way to verify that 'const' and '__initconst' are
always paired.

> > > -static struct omap_lcd_config ams_delta_lcd_config = {
> > > +static struct omap_lcd_config ams_delta_lcd_config __initconst = {
> > 
> > This change probably adds a bug.  Are you sure this will never be used
> > outside init context?
> 
> I may be wrong, but before I've changed this, and now once again, I've verified 
> that a copy of this data is made inside __init omap_init_fb() by means of a 
> structure assignment operation.

Ok, in that case add a 'const' to it.

> > > -static struct omap_usb_config ams_delta_usb_config __initdata = {
> > > +static struct omap_usb_config ams_delta_usb_config __initdata_or_module
> > > = {
> > Even if you don't have modules enabled, have you checked whether the
> > driver can be bound and unbound via
> > /sys/bus/platform/driver/<name>/{bind,unbind} ?
> 
> No, I didn't even think of it, I am afraid.
> 
> > I suspect this is a bug.
> 
> Indeed, that data is not copied on init, only pointed to, moreover, the 
> ohci-omap driver provides bind/unbind opearations.
> 
> BTW, what are those bind/unbind operations intended for in case of a
> driver dedicated to a non-hotplugable SoC hardware exclusively?

If the driver can be built as a module, they allow exercising the
probe/remove paths for drivers which have been built-in.  Moreover,
it allows you to disable a device driver if desired.

For example, I have two platforms which are essentially the same, except
one has a daughterboard attached (which isn't hotpluggable).  The support
for the daughterboard, although it is a platform driver, can't be
modularised at the moment because quite a bit of other stuff needs it
and it contains IRQ chip code.

One has far less idle wakeups than the other.  Using unbind, I can
effectively detach this board by unbinding its platform device, which
results the entire sub-tree of its on-board devices being unregistered
and released in one big go, all the way down to things like USB devices
on the USB host.  I can then rebind it and bring all that hardware back.

That allows me to evaluate whether there's any impact from those drivers.

However, this bind/unbind is not the only issue here: how do you know
whether the driver takes a copy of the platform data, or merely stores a
pointer to it - and may access your platform data at runtime.

Unless you check, and recheck it regularly (it can change) then placing
this stuff into sections which will be discarded is asking for bugs.

> > > -static struct platform_device *ams_delta_devices[] __initdata = {
> > > +static struct platform_device *ams_delta_devices[] __initconst = {
> > 
> > Missing const.  If you can't const it, don't put it in __initconst.
> 
> I gave up trying to use both const and __initconst together after my gcc-4.2.4 
> (and not only mine, see [1], [2]) refused to accept such constructs a few 
> times. Now I see that this false reporting may probably happen in presence of other 
> incorrect uses of __initconst without const or __initdata with const.

I doubt that the compiler was refusing to accept them.  What you were
probably getting were warnings about where these were used not accepting
a const pointer.

If that's the case, more analysis needs to be done to find out whether
those uses can be converted to accept a const pointer before defining
the data with const and optionally __initconst.

WARNING: multiple messages have this Message-ID (diff)
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: OMAP1: ams-delta: correct init data section assignments
Date: Sat, 11 Feb 2012 10:24:24 +0000	[thread overview]
Message-ID: <20120211102424.GC13587@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1580046.EEGIFOPvyy@vclass>

On Fri, Feb 10, 2012 at 05:31:31PM +0100, Janusz Krzysztofik wrote:
> On Thursday 09 of February 2012 14:48:53 Russell King - ARM Linux wrote:
> > > -static struct map_desc ams_delta_io_desc[] __initdata = {
> > > +static struct map_desc ams_delta_io_desc[] __initconst = {
> > 
> > You're not making this comst so don't change it to __initconst.
> 
> OK, however, I think there must be a bug in gcc, otherwise it should probably 
> never accept such wrong constructs, while sometimes it does (not only mine, 
> see [1]).

No - because you don't understand what's going on with these tags.
The __initconst and other tags are just tell the compiler to place
stuff into a named section.  The name is interpreted by GCC as a mere
string which it passes through to the ELF file.

So, gcc has no idea that a section named '.init.rodata' could be placed
in read-only memory, and therefore has no idea that it should also be
marked 'const'.

Therefore, gcc has no way to verify that 'const' and '__initconst' are
always paired.

> > > -static struct omap_lcd_config ams_delta_lcd_config = {
> > > +static struct omap_lcd_config ams_delta_lcd_config __initconst = {
> > 
> > This change probably adds a bug.  Are you sure this will never be used
> > outside init context?
> 
> I may be wrong, but before I've changed this, and now once again, I've verified 
> that a copy of this data is made inside __init omap_init_fb() by means of a 
> structure assignment operation.

Ok, in that case add a 'const' to it.

> > > -static struct omap_usb_config ams_delta_usb_config __initdata = {
> > > +static struct omap_usb_config ams_delta_usb_config __initdata_or_module
> > > = {
> > Even if you don't have modules enabled, have you checked whether the
> > driver can be bound and unbound via
> > /sys/bus/platform/driver/<name>/{bind,unbind} ?
> 
> No, I didn't even think of it, I am afraid.
> 
> > I suspect this is a bug.
> 
> Indeed, that data is not copied on init, only pointed to, moreover, the 
> ohci-omap driver provides bind/unbind opearations.
> 
> BTW, what are those bind/unbind operations intended for in case of a
> driver dedicated to a non-hotplugable SoC hardware exclusively?

If the driver can be built as a module, they allow exercising the
probe/remove paths for drivers which have been built-in.  Moreover,
it allows you to disable a device driver if desired.

For example, I have two platforms which are essentially the same, except
one has a daughterboard attached (which isn't hotpluggable).  The support
for the daughterboard, although it is a platform driver, can't be
modularised at the moment because quite a bit of other stuff needs it
and it contains IRQ chip code.

One has far less idle wakeups than the other.  Using unbind, I can
effectively detach this board by unbinding its platform device, which
results the entire sub-tree of its on-board devices being unregistered
and released in one big go, all the way down to things like USB devices
on the USB host.  I can then rebind it and bring all that hardware back.

That allows me to evaluate whether there's any impact from those drivers.

However, this bind/unbind is not the only issue here: how do you know
whether the driver takes a copy of the platform data, or merely stores a
pointer to it - and may access your platform data at runtime.

Unless you check, and recheck it regularly (it can change) then placing
this stuff into sections which will be discarded is asking for bugs.

> > > -static struct platform_device *ams_delta_devices[] __initdata = {
> > > +static struct platform_device *ams_delta_devices[] __initconst = {
> > 
> > Missing const.  If you can't const it, don't put it in __initconst.
> 
> I gave up trying to use both const and __initconst together after my gcc-4.2.4 
> (and not only mine, see [1], [2]) refused to accept such constructs a few 
> times. Now I see that this false reporting may probably happen in presence of other 
> incorrect uses of __initconst without const or __initdata with const.

I doubt that the compiler was refusing to accept them.  What you were
probably getting were warnings about where these were used not accepting
a const pointer.

If that's the case, more analysis needs to be done to find out whether
those uses can be converted to accept a const pointer before defining
the data with const and optionally __initconst.

WARNING: multiple messages have this Message-ID (diff)
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Cc: linux-fbdev@vger.kernel.org, Tony Lindgren <tony@atomide.com>,
	Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	linux-mtd@lists.infradead.org,
	Igor Grinberg <grinberg@compulab.co.il>,
	linux-input@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: OMAP1: ams-delta: correct init data section assignments
Date: Sat, 11 Feb 2012 10:24:24 +0000	[thread overview]
Message-ID: <20120211102424.GC13587@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1580046.EEGIFOPvyy@vclass>

On Fri, Feb 10, 2012 at 05:31:31PM +0100, Janusz Krzysztofik wrote:
> On Thursday 09 of February 2012 14:48:53 Russell King - ARM Linux wrote:
> > > -static struct map_desc ams_delta_io_desc[] __initdata = {
> > > +static struct map_desc ams_delta_io_desc[] __initconst = {
> > 
> > You're not making this comst so don't change it to __initconst.
> 
> OK, however, I think there must be a bug in gcc, otherwise it should probably 
> never accept such wrong constructs, while sometimes it does (not only mine, 
> see [1]).

No - because you don't understand what's going on with these tags.
The __initconst and other tags are just tell the compiler to place
stuff into a named section.  The name is interpreted by GCC as a mere
string which it passes through to the ELF file.

So, gcc has no idea that a section named '.init.rodata' could be placed
in read-only memory, and therefore has no idea that it should also be
marked 'const'.

Therefore, gcc has no way to verify that 'const' and '__initconst' are
always paired.

> > > -static struct omap_lcd_config ams_delta_lcd_config = {
> > > +static struct omap_lcd_config ams_delta_lcd_config __initconst = {
> > 
> > This change probably adds a bug.  Are you sure this will never be used
> > outside init context?
> 
> I may be wrong, but before I've changed this, and now once again, I've verified 
> that a copy of this data is made inside __init omap_init_fb() by means of a 
> structure assignment operation.

Ok, in that case add a 'const' to it.

> > > -static struct omap_usb_config ams_delta_usb_config __initdata = {
> > > +static struct omap_usb_config ams_delta_usb_config __initdata_or_module
> > > = {
> > Even if you don't have modules enabled, have you checked whether the
> > driver can be bound and unbound via
> > /sys/bus/platform/driver/<name>/{bind,unbind} ?
> 
> No, I didn't even think of it, I am afraid.
> 
> > I suspect this is a bug.
> 
> Indeed, that data is not copied on init, only pointed to, moreover, the 
> ohci-omap driver provides bind/unbind opearations.
> 
> BTW, what are those bind/unbind operations intended for in case of a
> driver dedicated to a non-hotplugable SoC hardware exclusively?

If the driver can be built as a module, they allow exercising the
probe/remove paths for drivers which have been built-in.  Moreover,
it allows you to disable a device driver if desired.

For example, I have two platforms which are essentially the same, except
one has a daughterboard attached (which isn't hotpluggable).  The support
for the daughterboard, although it is a platform driver, can't be
modularised at the moment because quite a bit of other stuff needs it
and it contains IRQ chip code.

One has far less idle wakeups than the other.  Using unbind, I can
effectively detach this board by unbinding its platform device, which
results the entire sub-tree of its on-board devices being unregistered
and released in one big go, all the way down to things like USB devices
on the USB host.  I can then rebind it and bring all that hardware back.

That allows me to evaluate whether there's any impact from those drivers.

However, this bind/unbind is not the only issue here: how do you know
whether the driver takes a copy of the platform data, or merely stores a
pointer to it - and may access your platform data at runtime.

Unless you check, and recheck it regularly (it can change) then placing
this stuff into sections which will be discarded is asking for bugs.

> > > -static struct platform_device *ams_delta_devices[] __initdata = {
> > > +static struct platform_device *ams_delta_devices[] __initconst = {
> > 
> > Missing const.  If you can't const it, don't put it in __initconst.
> 
> I gave up trying to use both const and __initconst together after my gcc-4.2.4 
> (and not only mine, see [1], [2]) refused to accept such constructs a few 
> times. Now I see that this false reporting may probably happen in presence of other 
> incorrect uses of __initconst without const or __initdata with const.

I doubt that the compiler was refusing to accept them.  What you were
probably getting were warnings about where these were used not accepting
a const pointer.

If that's the case, more analysis needs to be done to find out whether
those uses can be converted to accept a const pointer before defining
the data with const and optionally __initconst.

WARNING: multiple messages have this Message-ID (diff)
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: OMAP1: ams-delta: correct init data section assignments
Date: Sat, 11 Feb 2012 10:24:24 +0000	[thread overview]
Message-ID: <20120211102424.GC13587@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1580046.EEGIFOPvyy@vclass>

On Fri, Feb 10, 2012 at 05:31:31PM +0100, Janusz Krzysztofik wrote:
> On Thursday 09 of February 2012 14:48:53 Russell King - ARM Linux wrote:
> > > -static struct map_desc ams_delta_io_desc[] __initdata = {
> > > +static struct map_desc ams_delta_io_desc[] __initconst = {
> > 
> > You're not making this comst so don't change it to __initconst.
> 
> OK, however, I think there must be a bug in gcc, otherwise it should probably 
> never accept such wrong constructs, while sometimes it does (not only mine, 
> see [1]).

No - because you don't understand what's going on with these tags.
The __initconst and other tags are just tell the compiler to place
stuff into a named section.  The name is interpreted by GCC as a mere
string which it passes through to the ELF file.

So, gcc has no idea that a section named '.init.rodata' could be placed
in read-only memory, and therefore has no idea that it should also be
marked 'const'.

Therefore, gcc has no way to verify that 'const' and '__initconst' are
always paired.

> > > -static struct omap_lcd_config ams_delta_lcd_config = {
> > > +static struct omap_lcd_config ams_delta_lcd_config __initconst = {
> > 
> > This change probably adds a bug.  Are you sure this will never be used
> > outside init context?
> 
> I may be wrong, but before I've changed this, and now once again, I've verified 
> that a copy of this data is made inside __init omap_init_fb() by means of a 
> structure assignment operation.

Ok, in that case add a 'const' to it.

> > > -static struct omap_usb_config ams_delta_usb_config __initdata = {
> > > +static struct omap_usb_config ams_delta_usb_config __initdata_or_module
> > > = {
> > Even if you don't have modules enabled, have you checked whether the
> > driver can be bound and unbound via
> > /sys/bus/platform/driver/<name>/{bind,unbind} ?
> 
> No, I didn't even think of it, I am afraid.
> 
> > I suspect this is a bug.
> 
> Indeed, that data is not copied on init, only pointed to, moreover, the 
> ohci-omap driver provides bind/unbind opearations.
> 
> BTW, what are those bind/unbind operations intended for in case of a
> driver dedicated to a non-hotplugable SoC hardware exclusively?

If the driver can be built as a module, they allow exercising the
probe/remove paths for drivers which have been built-in.  Moreover,
it allows you to disable a device driver if desired.

For example, I have two platforms which are essentially the same, except
one has a daughterboard attached (which isn't hotpluggable).  The support
for the daughterboard, although it is a platform driver, can't be
modularised at the moment because quite a bit of other stuff needs it
and it contains IRQ chip code.

One has far less idle wakeups than the other.  Using unbind, I can
effectively detach this board by unbinding its platform device, which
results the entire sub-tree of its on-board devices being unregistered
and released in one big go, all the way down to things like USB devices
on the USB host.  I can then rebind it and bring all that hardware back.

That allows me to evaluate whether there's any impact from those drivers.

However, this bind/unbind is not the only issue here: how do you know
whether the driver takes a copy of the platform data, or merely stores a
pointer to it - and may access your platform data at runtime.

Unless you check, and recheck it regularly (it can change) then placing
this stuff into sections which will be discarded is asking for bugs.

> > > -static struct platform_device *ams_delta_devices[] __initdata = {
> > > +static struct platform_device *ams_delta_devices[] __initconst = {
> > 
> > Missing const.  If you can't const it, don't put it in __initconst.
> 
> I gave up trying to use both const and __initconst together after my gcc-4.2.4 
> (and not only mine, see [1], [2]) refused to accept such constructs a few 
> times. Now I see that this false reporting may probably happen in presence of other 
> incorrect uses of __initconst without const or __initdata with const.

I doubt that the compiler was refusing to accept them.  What you were
probably getting were warnings about where these were used not accepting
a const pointer.

If that's the case, more analysis needs to be done to find out whether
those uses can be converted to accept a const pointer before defining
the data with const and optionally __initconst.

  parent reply	other threads:[~2012-02-11 10:25 UTC|newest]

Thread overview: 158+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-04 18:54 OMAP34xx Russell King - ARM Linux
2012-02-04 19:01 ` OMAP34xx Tony Lindgren
2012-02-04 19:23   ` OMAP34xx Olof Johansson
2012-02-04 20:34   ` OMAP34xx Russell King - ARM Linux
2012-02-04 20:53     ` OMAP34xx Russell King - ARM Linux
2012-02-04 23:09       ` OMAP34xx Tony Lindgren
2012-02-04 21:09     ` OMAP34xx Grazvydas Ignotas
2012-02-05  1:33       ` OMAP34xx Tony Lindgren
2012-02-04 23:05     ` OMAP34xx Tony Lindgren
2012-02-05  0:09       ` OMAP34xx Russell King - ARM Linux
2012-02-05  0:53         ` OMAP34xx Tony Lindgren
2012-02-04 23:14     ` OMAP34xx Russell King - ARM Linux
2012-02-05  1:25     ` OMAP34xx Tony Lindgren
2012-02-05 11:39       ` [PATCH] arm: omap3: cm-t35: fix section mismatch warning Igor Grinberg
2012-02-05 11:39         ` Igor Grinberg
2012-02-08  5:35         ` Tony Lindgren
2012-02-08  5:35           ` Tony Lindgren
2012-02-08 10:16           ` [PATCH] ARM: OMAP: update omap1 and omap2plus defconfigs Igor Grinberg
2012-02-08 10:16             ` Igor Grinberg
2012-02-08 10:19             ` Russell King - ARM Linux
2012-02-08 10:19               ` Russell King - ARM Linux
2012-02-08 11:09               ` Igor Grinberg
2012-02-08 11:09                 ` Igor Grinberg
2012-02-08 19:51               ` Tony Lindgren
2012-02-08 19:51                 ` Tony Lindgren
2012-02-08 15:37             ` Janusz Krzysztofik
2012-02-08 15:37               ` Janusz Krzysztofik
2012-02-09 11:18             ` [PATCH] ARM: OMAP1: ams-delta: clean up init data section assignments Janusz Krzysztofik
2012-02-09 11:18               ` Janusz Krzysztofik
2012-02-09 11:18               ` Janusz Krzysztofik
2012-02-09 11:18               ` Janusz Krzysztofik
2012-02-09 14:48               ` Russell King - ARM Linux
2012-02-09 14:48                 ` Russell King - ARM Linux
2012-02-09 14:48                 ` Russell King - ARM Linux
2012-02-09 14:48                 ` Russell King - ARM Linux
2012-02-10 16:31                 ` [PATCH] ARM: OMAP1: ams-delta: correct " Janusz Krzysztofik
2012-02-10 16:31                   ` Janusz Krzysztofik
2012-02-10 16:31                   ` Janusz Krzysztofik
2012-02-10 16:31                   ` Janusz Krzysztofik
2012-02-10 16:48                   ` [PATCH v2] ARM: OMAP1: ams-delta: clean up " Janusz Krzysztofik
2012-02-10 16:48                     ` Janusz Krzysztofik
2012-02-10 16:48                     ` Janusz Krzysztofik
2012-02-10 16:48                     ` Janusz Krzysztofik
2012-02-11 10:24                   ` Russell King - ARM Linux [this message]
2012-02-11 10:24                     ` [PATCH] ARM: OMAP1: ams-delta: correct " Russell King - ARM Linux
2012-02-11 10:24                     ` Russell King - ARM Linux
2012-02-11 10:24                     ` Russell King - ARM Linux
2012-02-05 12:59       ` OMAP34xx Russell King - ARM Linux
2012-02-05 17:29         ` OMAP34xx Tony Lindgren
2012-02-05 17:58           ` OMAP34xx Russell King - ARM Linux
2012-02-05 18:29             ` OMAP34xx Tony Lindgren
2012-02-07 22:36               ` OMAP34xx Kevin Hilman
2012-02-07 22:49                 ` OMAP34xx Víctor M. Jáquez L.
     [not found]                   ` <8762fijifc.fsf@ti.com>
2012-02-08  9:45                     ` OMAP34xx Russell King - ARM Linux
2012-02-08 19:55                       ` OMAP34xx Tony Lindgren
2012-02-08 23:10                         ` OMAP34xx Russell King - ARM Linux
2012-02-08 23:27                           ` OMAP34xx Tony Lindgren
2012-02-10 11:03                       ` OMAP34xx Russell King - ARM Linux
2012-02-08  0:53                 ` OMAP34xx Kevin Hilman
2012-02-08 10:46                   ` OMAP34xx Grazvydas Ignotas
2012-02-08 17:01                     ` OMAP34xx Kevin Hilman
2012-02-08 17:06                       ` OMAP34xx Greg KH
2012-02-08 17:23                         ` OMAP34xx Grazvydas Ignotas
2012-02-08 19:53                           ` OMAP34xx Greg KH
2012-02-08 23:03                             ` OMAP34xx Kevin Hilman
2012-02-08 23:15                               ` OMAP34xx Greg KH
2012-02-09  0:14                                 ` OMAP34xx Paul Walmsley
2012-02-09  0:47                                   ` OMAP34xx Greg KH
2012-02-09  1:39                                     ` OMAP34xx Kevin Hilman
2012-02-09 18:49                                       ` OMAP34xx Greg KH
2012-02-09  1:43                                     ` OMAP34xx Austin, Brian
2012-02-09  7:25                                     ` OMAP34xx Jarkko Nikula
2012-02-09 13:37                                       ` OMAP34xx Mark Brown
2012-02-09 18:36                                         ` OMAP34xx Tony Lindgren
2012-02-09 19:26                                           ` OMAP34xx Tony Lindgren
2012-02-09 20:44                                             ` OMAP34xx Paul Walmsley
2012-02-10  1:22                                               ` OMAP34xx Paul Walmsley
2012-02-09 19:34                                           ` OMAP34xx Rex Feany
2012-02-09 23:13                                             ` OMAP34xx Kevin Hilman
2012-02-10  1:41                                               ` OMAP34xx Rex Feany
2012-02-10  2:19                                               ` OMAP34xx Paul Walmsley
2012-02-10  7:10                                                 ` OMAP34xx Hiremath, Vaibhav
2012-02-10 14:19                                                   ` OMAP34xx Paul Walmsley
2012-02-10 16:03                                                     ` OMAP34xx Hiremath, Vaibhav
2012-02-10 14:37                                                   ` OMAP34xx Matt Porter
2012-02-10 18:31                                                 ` OMAP34xx Matt Porter
2012-02-10 23:39                                                   ` OMAP34xx Paul Walmsley
2012-02-10 18:58                                                 ` OMAP34xx Tony Lindgren
2012-02-13 16:36                                                   ` OMAP34xx Rex Feany
2012-02-14  8:48                                             ` OMAP34xx Felipe Balbi
2012-02-14 14:59                                               ` OMAP34xx Alan Stern
2012-02-10 11:53                                           ` OMAP34xx Grazvydas Ignotas
2012-02-10 20:06                                             ` OMAP34xx Russell King - ARM Linux
2012-02-15 21:57                                           ` OMAP34xx Luciano Coelho
2012-02-15 23:54                                             ` OMAP34xx Kevin Hilman
2012-02-16  0:13                                               ` OMAP34xx Kevin Hilman
2012-02-16  0:25                                                 ` OMAP34xx NeilBrown
2012-02-16  1:28                                                   ` OMAP34xx Kevin Hilman
2012-02-16  7:56                                                     ` OMAP34xx Luciano Coelho
2012-02-16  7:52                                                 ` OMAP34xx Luciano Coelho
2012-02-15 15:41                                     ` OMAP34xx Felipe Contreras
2012-02-08 23:34                             ` OMAP34xx Russell King - ARM Linux
2012-02-06 18:13           ` OMAP34xx Tony Lindgren
2012-02-07 10:10             ` OMAP34xx Russell King - ARM Linux
2012-02-08  5:32               ` OMAP34xx Tony Lindgren
2012-02-13 21:17                 ` OMAP34xx Tony Lindgren
2012-02-14  0:12                   ` OMAP34xx Tony Lindgren
2012-02-06 23:19           ` OMAP34xx Cousson, Benoit
2012-02-06 23:48             ` OMAP34xx Tony Lindgren
2012-02-07  0:24             ` OMAP34xx Russell King - ARM Linux
2012-02-07  0:54               ` OMAP34xx Cousson, Benoit
2012-02-07  8:41                 ` OMAP34xx Russell King - ARM Linux
2012-02-08 18:39                   ` OMAP34xx Cousson, Benoit
2012-02-07  4:35               ` OMAP34xx Grant Likely
2012-02-07  5:26                 ` OMAP34xx Cousson, Benoit
2012-02-07  8:46                   ` OMAP34xx Russell King - ARM Linux
2012-02-07 17:28             ` OMAP34xx Mark Brown
2012-02-08  4:54               ` OMAP34xx Tony Lindgren
2012-02-08 16:16               ` OMAP34xx Cousson, Benoit
2012-02-05  1:55     ` OMAP34xx Tony Lindgren
2012-02-05 11:10       ` OMAP34xx Russell King - ARM Linux
2012-02-05 16:57         ` OMAP34xx Tony Lindgren
2012-02-05 12:56     ` OMAP34xx Russell King - ARM Linux
2012-02-05 14:38       ` OMAP34xx Russell King - ARM Linux
2012-02-05 17:40         ` OMAP34xx Tony Lindgren
2012-02-05 18:05           ` OMAP34xx Russell King - ARM Linux
2012-02-05 18:49             ` OMAP34xx Tony Lindgren
2012-02-05 20:04               ` OMAP34xx Russell King - ARM Linux
2012-02-09  6:52         ` OMAP34xx Archit Taneja
2012-02-09 22:34           ` OMAP34xx Russell King - ARM Linux
2012-02-10  6:26             ` OMAP34xx Archit Taneja
2012-04-05  8:24               ` OMAP34xx Russell King - ARM Linux
2012-04-05  8:34                 ` OMAP34xx Archit Taneja
2012-04-05  8:49                   ` OMAP34xx Russell King - ARM Linux
2012-04-05  9:10                     ` OMAP34xx Archit Taneja
2012-02-05 17:25     ` OMAP34xx Russell King - ARM Linux
2012-02-05 17:47       ` OMAP34xx Tony Lindgren
2012-02-05 18:08         ` OMAP34xx Russell King - ARM Linux
2012-02-05 18:33           ` OMAP34xx Tony Lindgren
2012-02-05 18:41             ` OMAP34xx Russell King - ARM Linux
2012-02-05 18:59               ` OMAP34xx Tony Lindgren
2012-02-05 20:11                 ` OMAP34xx Russell King - ARM Linux
2012-02-05 20:51                   ` OMAP34xx Tony Lindgren
2012-02-06 10:37                     ` OMAP34xx Ohad Ben-Cohen
2012-02-06  9:05         ` OMAP34xx Tero Kristo
2012-02-07 22:09     ` OMAP34xx Kevin Hilman
2012-02-08  5:47       ` OMAP34xx Tony Lindgren
2012-02-12 10:41 ` OMAP34xx Russell King - ARM Linux
2012-02-12 19:12   ` OMAP34xx Paul Walmsley
2012-02-12 19:12     ` OMAP34xx Paul Walmsley
2012-02-13  5:35     ` OMAP34xx Shubhrajyoti
2012-02-13  5:35       ` OMAP34xx Shubhrajyoti
2012-02-15 15:52       ` OMAP34xx Paul Walmsley
2012-02-15 15:52         ` OMAP34xx Paul Walmsley
2012-02-15 11:27   ` OMAP34xx Russell King - ARM Linux
2012-02-16  1:34     ` OMAP34xx Kevin Hilman
2012-02-12 11:44 ` OMAP34xx Russell King - ARM Linux
2012-02-13 17:59   ` OMAP34xx 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=20120211102424.GC13587@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=Artem.Bityutskiy@linux.intel.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=grinberg@compulab.co.il \
    --cc=jkrzyszt@tis.icnet.pl \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=tomi.valkeinen@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.