From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jingoo Han Subject: Re: [PATCH] backlight: gpio-backlight: Fix warning when the GPIO is on a I2C chip Date: Tue, 13 May 2014 10:36:49 +0900 Message-ID: <000001cf6e4b$cf668a00$6e339e00$%han@samsung.com> References: <20140509012454.GL2198@atomide.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Return-path: In-reply-to: <20140509012454.GL2198@atomide.com> Content-language: ko Sender: linux-kernel-owner@vger.kernel.org To: 'Lee Jones' Cc: 'Tony Lindgren' , linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-omap@vger.kernel.org, 'Bryan Wu' , 'Jean-Christophe Plagniol-Villard' , 'Tomi Valkeinen' , 'Linus Walleij' , 'Alexandre Courbot' , 'Russell King' , 'Jingoo Han' List-Id: linux-omap@vger.kernel.org On Friday, May 09, 2014 10:25 AM, Tony Lindgren wrote: > > If the GPIO for the backlight is on an I2C chip, we currently > get nasty warnings like this during the boot: > > WARNING: CPU: 0 PID: 6 at drivers/gpio/gpiolib.c:2364 gpiod_set_raw_value+0x40/0x4c() > Modules linked in: > CPU: 0 PID: 6 Comm: kworker/u2:0 Not tainted 3.15.0-rc4-12393-gcde9f4e #400 > Workqueue: deferwq deferred_probe_work_func > [] (unwind_backtrace) from [] (show_stack+0x10/0x14) > [] (show_stack) from [] (dump_stack+0x80/0x9c) > [] (dump_stack) from [] (warn_slowpath_common+0x68/0x8c) > [] (warn_slowpath_common) from [] (warn_slowpath_null+0x1c/0x24) > [] (warn_slowpath_null) from [] (gpiod_set_raw_value+0x40/0x4c) > [] (gpiod_set_raw_value) from [] (gpio_backlight_update_status+0x4c/0x74) > [] (gpio_backlight_update_status) from [] (gpio_backlight_probe+0x168/0x254) > [] (gpio_backlight_probe) from [] (platform_drv_probe+0x18/0x48) > [] (platform_drv_probe) from [] (driver_probe_device+0x10c/0x238) > [] (driver_probe_device) from [] (bus_for_each_drv+0x44/0x8c) > [] (bus_for_each_drv) from [] (device_attach+0x74/0x8c) > [] (device_attach) from [] (bus_probe_device+0x88/0xb0) > [] (bus_probe_device) from [] (deferred_probe_work_func+0x64/0x94) > [] (deferred_probe_work_func) from [] (process_one_work+0x1b4/0x4bc) > [] (process_one_work) from [] (worker_thread+0x11c/0x398) > [] (worker_thread) from [] (kthread+0xc8/0xe4) > [] (kthread) from [] (ret_from_fork+0x14/0x2c) > > Fix this by using gpio_set_value_cansleep() as suggested in > drivers/gpio/gpiolib.c:2364. This is what the other backlight drivers > are also doing. > > Signed-off-by: Tony Lindgren (+cc Linus Walleij, Alexandre Courbot, Russell King) Hi Lee Jones, Would you apply this patch into backlight git tree? If you have other opinions, please let us know. :-) Thank you. Acked-by: Jingoo Han Best regards, Jingoo Han > > --- a/drivers/video/backlight/gpio_backlight.c > +++ b/drivers/video/backlight/gpio_backlight.c > @@ -38,7 +38,8 @@ static int gpio_backlight_update_status(struct backlight_device *bl) > bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK)) > brightness = 0; > > - gpio_set_value(gbl->gpio, brightness ? gbl->active : !gbl->active); > + gpio_set_value_cansleep(gbl->gpio, > + brightness ? gbl->active : !gbl->active); > > return 0; > }