"leds: Add openfirmware platform device support" breaks sparc
Grant Likely
grant.likely at secretlab.ca
Tue Apr 28 13:59:39 EST 2009
On Mon, Apr 27, 2009 at 4:20 PM, Andrew Morton
<akpm at linux-foundation.org> wrote:
> On Tue, 03 Mar 2009 16:37:13 -0800 (PST)
> David Miller <davem at davemloft.net> wrote:
>
>> From: Sean MacLennan <smaclennan at pikatech.com>
>> Date: Tue, 3 Mar 2009 19:29:32 -0500
>>
>> > It has been..... uhhhh carry the two... longer than I want to admit
>> > since I worked on a sparc. Would GPIO based LEDS make sense on a sparc
>> > platform? Is sparc used much in the embedded world?
>> >
>> > If yes, the of_register_platform_driver is just a nice wrapper. It
>> > would be trivial to either change it to work on sparc, or add the
>> > wrapper to the sparc includes.
>>
>> We generally create the platform devices by hand for LED
>> devices on sparc64.
>>
>> I'd CONFIG_POWERPC depend this thing for now.
>
> Nobody has done this, so current mainline's sparc64 allmodconfig remains
> busted.
>
>
> This?
>
> --- a/drivers/leds/Kconfig~a
> +++ a/drivers/leds/Kconfig
> @@ -139,6 +139,7 @@ config LEDS_GPIO_PLATFORM
> config LEDS_GPIO_OF
> bool "OpenFirmware platform device bindings for GPIO LEDs"
> depends on LEDS_GPIO && OF_DEVICE
> + depends on POWERPC
> default y
> help
> Let the leds-gpio driver drive LEDs which have been defined as
PowerPC actually uses CONFIG_PPC, so this doesn't work. However, this
might be better: I've compile tested it on powerpc, but I don't have
microblaze or sparc xcompilers right now. Also, probably word-wrapped
since I'm pasting it into my mailer, but I wanted to keep this within
the thread. I'll repost "for real" first thing tomorrow morning.
g.
commit 302d02a46c67938cf4ef310fec90734cb38acabe
Author: Grant Likely <grant.likely at secretlab.ca>
Date: Mon Apr 27 21:54:35 2009 -0600
of: make of_(un)register_platform_driver common code.
Some drivers using of_register_platform_driver() wrapper break on sparc
because the wrapper isn't in the header file. This patch moves it from
Microblaze and PowerPC implementations and makes it common code.
Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
diff --git a/arch/microblaze/include/asm/of_platform.h
b/arch/microblaze/include/asm/of_platform.h
index 187c0ee..3749127 100644
--- a/arch/microblaze/include/asm/of_platform.h
+++ b/arch/microblaze/include/asm/of_platform.h
@@ -36,16 +36,6 @@ static const struct of_device_id of_default_bus_ids[] = {
{},
};
-/* Platform drivers register/unregister */
-static inline int of_register_platform_driver(struct of_platform_driver *drv)
-{
- return of_register_driver(drv, &of_platform_bus_type);
-}
-static inline void of_unregister_platform_driver(struct
of_platform_driver *drv)
-{
- of_unregister_driver(drv);
-}
-
/* Platform devices and busses creation */
extern struct of_device *of_platform_device_create(struct device_node *np,
const char *bus_id,
diff --git a/arch/powerpc/include/asm/of_platform.h
b/arch/powerpc/include/asm/of_platform.h
index 53b4650..d4aaa34 100644
--- a/arch/powerpc/include/asm/of_platform.h
+++ b/arch/powerpc/include/asm/of_platform.h
@@ -11,16 +11,6 @@
*
*/
-/* Platform drivers register/unregister */
-static inline int of_register_platform_driver(struct of_platform_driver *drv)
-{
- return of_register_driver(drv, &of_platform_bus_type);
-}
-static inline void of_unregister_platform_driver(struct
of_platform_driver *drv)
-{
- of_unregister_driver(drv);
-}
-
/* Platform devices and busses creation */
extern struct of_device *of_platform_device_create(struct device_node *np,
const char *bus_id,
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h
index 3d327b6..9084066 100644
--- a/include/linux/of_platform.h
+++ b/include/linux/of_platform.h
@@ -51,6 +51,16 @@ extern int of_register_driver(struct of_platform_driver *drv,
struct bus_type *bus);
extern void of_unregister_driver(struct of_platform_driver *drv);
+/* Platform drivers register/unregister */
+static inline int of_register_platform_driver(struct of_platform_driver *drv)
+{
+ return of_register_driver(drv, &of_platform_bus_type);
+}
+static inline void of_unregister_platform_driver(struct
of_platform_driver *drv)
+{
+ of_unregister_driver(drv);
+}
+
#include <asm/of_platform.h>
extern struct of_device *of_find_device_by_node(struct device_node *np);
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
More information about the Linuxppc-dev
mailing list