kernel_optimize_test/drivers/leds
David Daney dabc69c242 drivers/leds/leds-gpio.c: use gpio_get_value_cansleep() when initializing
I get the following warning:

------------[ cut here ]------------
WARNING: at drivers/gpio/gpiolib.c:1559 __gpio_get_value+0x90/0x98()
Modules linked in:
Call Trace:
[<ffffffff81440950>] dump_stack+0x8/0x34
[<ffffffff81141478>] warn_slowpath_common+0x78/0xa0
[<ffffffff812f0958>] __gpio_get_value+0x90/0x98
[<ffffffff81434f04>] create_gpio_led+0xdc/0x194
[<ffffffff8143524c>] gpio_led_probe+0x290/0x36c
[<ffffffff8130e8b0>] driver_probe_device+0x78/0x1b0
[<ffffffff8130eaa8>] __driver_attach+0xc0/0xc8
[<ffffffff8130d7ac>] bus_for_each_dev+0x64/0xb0
[<ffffffff8130e130>] bus_add_driver+0x1c8/0x2a8
[<ffffffff8130f100>] driver_register+0x90/0x180
[<ffffffff81100438>] do_one_initcall+0x38/0x160

---[ end trace ee38723fbefcd65c ]---

My GPIOs are on an I2C port expander, so we must use the *_cansleep()
variant of the GPIO functions.  This is was not being done in
create_gpio_led().

We can change gpio_get_value() to gpio_get_value_cansleep() because it is
only called from the platform_driver probe function, which is a context
where we can sleep.

Only tested on my gpio_cansleep() system, but it seems safe for all
systems.

Signed-off-by: David Daney <david.daney@cavium.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Acked-by: Trent Piepho <tpiepho@gmail.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-10-31 17:30:55 -07:00
..
dell-led.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
Kconfig leds: Renesas TPU LED driver 2011-10-31 17:30:54 -07:00
led-class.c leds: support automatic start of blinking with ledtrig-timer 2011-05-25 08:39:49 -07:00
led-core.c
led-triggers.c drivers/leds/led-triggers.c: fix memory leak 2011-10-31 17:30:55 -07:00
leds-88pm860x.c mfd: Use mfd cell platform_data for 88pm860x cells platform bits 2011-05-26 19:45:12 +02:00
leds-adp5520.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
leds-ams-delta.c leds: add missing include of linux/module.h 2011-08-25 16:25:34 -07:00
leds-asic3.c leds: Add ASIC3 LED support 2011-05-26 19:45:46 +02:00
leds-atmel-pwm.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
leds-bd2802.c drivers/leds/leds-bd2802.c: bd2802_unregister_led_classdev() should unregister all registered leds 2011-08-25 16:25:35 -07:00
leds-clevo-mail.c Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds 2009-09-26 10:50:47 -07:00
leds-cobalt-qube.c leds: use default-on trigger for Cobalt Qube 2009-12-17 11:38:31 +00:00
leds-cobalt-raq.c leds: leds-cobalt-raq.c - use resource_size() 2009-12-17 11:16:23 +00:00
leds-da903x.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
leds-dac124s085.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
leds-fsg.c IXP4xx: move FSG platform macros to the platform code. 2009-12-05 16:58:40 +01:00
leds-gpio-register.c leds: provide helper to register "leds-gpio" devices 2011-05-25 08:39:51 -07:00
leds-gpio.c drivers/leds/leds-gpio.c: use gpio_get_value_cansleep() when initializing 2011-10-31 17:30:55 -07:00
leds-hp6xx.c leds: add missing include of linux/module.h 2011-08-25 16:25:34 -07:00
leds-lm3530.c drivers/leds/leds-lm3530.c: add __devexit_p where needed 2011-10-31 17:30:55 -07:00
leds-locomo.c collie: locomo-led change default trigger 2009-11-27 21:07:19 +01:00
leds-lp3944.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
leds-lp5521.c drivers/leds/leds-lp5521.c: avoid writing uninitialized value to LP5521_REG_OP_MODE register 2011-10-31 17:30:55 -07:00
leds-lp5523.c drivers/leds/leds-lp5523.c: fix section mismatches 2011-06-27 18:00:13 -07:00
leds-lt3593.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
leds-mc13783.c mfd: Use mfd cell platform_data for mc13xxx cells platform bits 2011-05-26 19:45:07 +02:00
leds-net48xx.c
leds-net5501.c leds: make *struct gpio_led_platform_data.leds const 2011-03-22 17:43:59 -07:00
leds-netxbig.c leds: add LED driver for Big Network series LEDs 2010-10-07 14:02:12 -04:00
leds-ns2.c leds: leds-ns2: fix private driver data storage 2010-10-07 14:00:23 -04:00
leds-pca955x.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
leds-pca9532.c drivers/leds/leds-pca9532.c: change driver name to be unique 2011-07-08 21:14:44 -07:00
leds-pwm.c leds: leds-pwm: return proper error if pwm_request failed 2011-01-26 10:49:58 +10:00
leds-rb532.c
leds-regulator.c leds/leds-regulator.c: fix handling of already enabled regulators 2011-04-14 16:06:54 -07:00
leds-renesas-tpu.c drivers/leds/leds-renesas-tpu.c: move Renesas TPU LED driver platform data 2011-10-31 17:30:55 -07:00
leds-s3c24xx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
leds-ss4200.c leds: fix bug with reading NAS SS4200 dmi code 2010-11-25 06:50:33 +09:00
leds-sunfire.c drivers/leds/leds-sunfire.c: fix sunfire_led_generic_probe() error handling 2011-07-25 20:57:15 -07:00
leds-wm831x-status.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
leds-wm8350.c Fix common misspellings 2011-03-31 11:26:23 -03:00
leds-wrap.c
leds.h leds: support automatic start of blinking with ledtrig-timer 2011-05-25 08:39:49 -07:00
ledtrig-backlight.c leds: add output inversion option to backlight trigger 2011-01-13 08:03:06 -08:00
ledtrig-default-on.c
ledtrig-gpio.c drivers/leds/ledtrig-gpio.c: make output match input, tighten input checking 2011-01-20 17:02:06 -08:00
ledtrig-heartbeat.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ledtrig-ide-disk.c
ledtrig-timer.c drivers/leds/ledtrig-timer.c: fix broken sysfs delay handling 2011-09-14 18:09:38 -07:00
Makefile leds: Renesas TPU LED driver 2011-10-31 17:30:54 -07:00