From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B92D3C43381 for ; Wed, 27 Mar 2019 19:17:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 889E2206C0 for ; Wed, 27 Mar 2019 19:17:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553714251; bh=Q8Fj1B3CREj/c7f+D+o8MDCiu4Jv9QPi9rDmsUwPAP4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=ctgQOkz1HcgT2JB58UxLTw/fnVuKmqRcQ45m032QyfoFWaBfs7gial/sFA5EuIfIK 8Rl5gMVoi1/GNpF/Hj1uErgQbT+xRAjE7Z32y2w2d7M9I2AGjJSu/lbP5D5Mvq+E8a EEdHZGhgluIKpS+UvKWVDA0ke1KDeFI8etztgM2Q= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388412AbfC0SIt (ORCPT ); Wed, 27 Mar 2019 14:08:49 -0400 Received: from mail.kernel.org ([198.145.29.99]:50466 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388373AbfC0SIi (ORCPT ); Wed, 27 Mar 2019 14:08:38 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id F231D217F9; Wed, 27 Mar 2019 18:08:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553710117; bh=Q8Fj1B3CREj/c7f+D+o8MDCiu4Jv9QPi9rDmsUwPAP4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C0wkCLzuGd/GDyr1YjHjA3OR3FPOC40i48INIEZ3gI1Vi1bcOlsm0i3Pb+J88g7Ow OuPrRPWuH+VezKStW5QpBvGF13Qqm6nFJz3PdKM5GJ4h1H6pZ+7eI4Ro/tUBJJ7DYN KlZWIl8vCbzChn+0GiPTvVrddQUpgldE9nHltsec= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Chen-Yu Tsai , Lee Jones , Sasha Levin , linux-pwm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org Subject: [PATCH AUTOSEL 5.0 204/262] backlight: pwm_bl: Use gpiod_get_value_cansleep() to get initial state Date: Wed, 27 Mar 2019 14:00:59 -0400 Message-Id: <20190327180158.10245-204-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190327180158.10245-1-sashal@kernel.org> References: <20190327180158.10245-1-sashal@kernel.org> MIME-Version: 1.0 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Chen-Yu Tsai [ Upstream commit cec2b18832e26bc866bef2be22eff4e25bbc4034 ] gpiod_get_value() gives out a warning if access to the underlying gpiochip requires sleeping, which is common for I2C based chips: WARNING: CPU: 0 PID: 77 at drivers/gpio/gpiolib.c:2500 gpiod_get_value+0xd0/0x100 Modules linked in: CPU: 0 PID: 77 Comm: kworker/0:2 Not tainted 4.14.0-rc3-00589-gf32897915d48-dirty #90 Hardware name: Allwinner sun4i/sun5i Families Workqueue: events deferred_probe_work_func [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x88/0x9c) [] (dump_stack) from [] (__warn+0xe8/0x100) [] (__warn) from [] (warn_slowpath_null+0x20/0x28) [] (warn_slowpath_null) from [] (gpiod_get_value+0xd0/0x100) [] (gpiod_get_value) from [] (pwm_backlight_probe+0x238/0x508) [] (pwm_backlight_probe) from [] (platform_drv_probe+0x50/0xac) [] (platform_drv_probe) from [] (driver_probe_device+0x238/0x2e8) [] (driver_probe_device) from [] (bus_for_each_drv+0x44/0x94) [] (bus_for_each_drv) from [] (__device_attach+0xb0/0x114) [] (__device_attach) from [] (bus_probe_device+0x84/0x8c) [] (bus_probe_device) from [] (deferred_probe_work_func+0x50/0x14c) [] (deferred_probe_work_func) from [] (process_one_work+0x1ec/0x414) [] (process_one_work) from [] (worker_thread+0x2b0/0x5a0) [] (worker_thread) from [] (kthread+0x14c/0x154) [] (kthread) from [] (ret_from_fork+0x14/0x24) This was missed in commit 0c9501f823a4 ("backlight: pwm_bl: Handle gpio that can sleep"). The code was then moved to a separate function in commit 7613c922315e ("backlight: pwm_bl: Move the checks for initial power state to a separate function"). The only usage of gpiod_get_value() is during the probe stage, which is safe to sleep in. Switch to gpiod_get_value_cansleep(). Fixes: 0c9501f823a4 ("backlight: pwm_bl: Handle gpio that can sleep") Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Acked-by: Daniel Thompson Signed-off-by: Lee Jones Signed-off-by: Sasha Levin --- drivers/video/backlight/pwm_bl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index feb90764a811..53b8ceea9bde 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -435,7 +435,7 @@ static int pwm_backlight_initial_power_state(const struct pwm_bl_data *pb) */ /* if the enable GPIO is disabled, do not enable the backlight */ - if (pb->enable_gpio && gpiod_get_value(pb->enable_gpio) == 0) + if (pb->enable_gpio && gpiod_get_value_cansleep(pb->enable_gpio) == 0) return FB_BLANK_POWERDOWN; /* The regulator is disabled, do not enable the backlight */ -- 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH AUTOSEL 5.0 204/262] backlight: pwm_bl: Use gpiod_get_value_cansleep() to get initial state Date: Wed, 27 Mar 2019 14:00:59 -0400 Message-ID: <20190327180158.10245-204-sashal@kernel.org> References: <20190327180158.10245-1-sashal@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190327180158.10245-1-sashal@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin , linux-pwm@vger.kernel.org, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Chen-Yu Tsai , Lee Jones List-Id: linux-pwm@vger.kernel.org RnJvbTogQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPgoKWyBVcHN0cmVhbSBjb21taXQgY2Vj MmIxODgzMmUyNmJjODY2YmVmMmJlMjJlZmY0ZTI1YmJjNDAzNCBdCgpncGlvZF9nZXRfdmFsdWUo KSBnaXZlcyBvdXQgYSB3YXJuaW5nIGlmIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBncGlvY2hp cApyZXF1aXJlcyBzbGVlcGluZywgd2hpY2ggaXMgY29tbW9uIGZvciBJMkMgYmFzZWQgY2hpcHM6 CgogICAgV0FSTklORzogQ1BVOiAwIFBJRDogNzcgYXQgZHJpdmVycy9ncGlvL2dwaW9saWIuYzoy NTAwIGdwaW9kX2dldF92YWx1ZSsweGQwLzB4MTAwCiAgICBNb2R1bGVzIGxpbmtlZCBpbjoKICAg IENQVTogMCBQSUQ6IDc3IENvbW06IGt3b3JrZXIvMDoyIE5vdCB0YWludGVkIDQuMTQuMC1yYzMt MDA1ODktZ2YzMjg5NzkxNWQ0OC1kaXJ0eSAjOTAKICAgIEhhcmR3YXJlIG5hbWU6IEFsbHdpbm5l ciBzdW40aS9zdW41aSBGYW1pbGllcwogICAgV29ya3F1ZXVlOiBldmVudHMgZGVmZXJyZWRfcHJv YmVfd29ya19mdW5jCiAgICBbPGMwMTBlYzUwPl0gKHVud2luZF9iYWNrdHJhY2UpIGZyb20gWzxj MDEwYjc4ND5dIChzaG93X3N0YWNrKzB4MTAvMHgxNCkKICAgIFs8YzAxMGI3ODQ+XSAoc2hvd19z dGFjaykgZnJvbSBbPGMwNzk3MjI0Pl0gKGR1bXBfc3RhY2srMHg4OC8weDljKQogICAgWzxjMDc5 NzIyND5dIChkdW1wX3N0YWNrKSBmcm9tIFs8YzAxMjViMDg+XSAoX193YXJuKzB4ZTgvMHgxMDAp CiAgICBbPGMwMTI1YjA4Pl0gKF9fd2FybikgZnJvbSBbPGMwMTI1YmQwPl0gKHdhcm5fc2xvd3Bh dGhfbnVsbCsweDIwLzB4MjgpCiAgICBbPGMwMTI1YmQwPl0gKHdhcm5fc2xvd3BhdGhfbnVsbCkg ZnJvbSBbPGMwMzcwNjljPl0gKGdwaW9kX2dldF92YWx1ZSsweGQwLzB4MTAwKQogICAgWzxjMDM3 MDY5Yz5dIChncGlvZF9nZXRfdmFsdWUpIGZyb20gWzxjMDM3NzhkMD5dIChwd21fYmFja2xpZ2h0 X3Byb2JlKzB4MjM4LzB4NTA4KQogICAgWzxjMDM3NzhkMD5dIChwd21fYmFja2xpZ2h0X3Byb2Jl KSBmcm9tIFs8YzA0MTFhMmM+XSAocGxhdGZvcm1fZHJ2X3Byb2JlKzB4NTAvMHhhYykKICAgIFs8 YzA0MTFhMmM+XSAocGxhdGZvcm1fZHJ2X3Byb2JlKSBmcm9tIFs8YzA0MTAyMjQ+XSAoZHJpdmVy X3Byb2JlX2RldmljZSsweDIzOC8weDJlOCkKICAgIFs8YzA0MTAyMjQ+XSAoZHJpdmVyX3Byb2Jl X2RldmljZSkgZnJvbSBbPGMwNDBlODIwPl0gKGJ1c19mb3JfZWFjaF9kcnYrMHg0NC8weDk0KQog ICAgWzxjMDQwZTgyMD5dIChidXNfZm9yX2VhY2hfZHJ2KSBmcm9tIFs8YzA0MGZmMGM+XSAoX19k ZXZpY2VfYXR0YWNoKzB4YjAvMHgxMTQpCiAgICBbPGMwNDBmZjBjPl0gKF9fZGV2aWNlX2F0dGFj aCkgZnJvbSBbPGMwNDBmNGY4Pl0gKGJ1c19wcm9iZV9kZXZpY2UrMHg4NC8weDhjKQogICAgWzxj MDQwZjRmOD5dIChidXNfcHJvYmVfZGV2aWNlKSBmcm9tIFs8YzA0MGY5NDQ+XSAoZGVmZXJyZWRf cHJvYmVfd29ya19mdW5jKzB4NTAvMHgxNGMpCiAgICBbPGMwNDBmOTQ0Pl0gKGRlZmVycmVkX3By b2JlX3dvcmtfZnVuYykgZnJvbSBbPGMwMTNiZTg0Pl0gKHByb2Nlc3Nfb25lX3dvcmsrMHgxZWMv MHg0MTQpCiAgICBbPGMwMTNiZTg0Pl0gKHByb2Nlc3Nfb25lX3dvcmspIGZyb20gWzxjMDEzY2U1 Yz5dICh3b3JrZXJfdGhyZWFkKzB4MmIwLzB4NWEwKQogICAgWzxjMDEzY2U1Yz5dICh3b3JrZXJf dGhyZWFkKSBmcm9tIFs8YzAxNDE5MDg+XSAoa3RocmVhZCsweDE0Yy8weDE1NCkKICAgIFs8YzAx NDE5MDg+XSAoa3RocmVhZCkgZnJvbSBbPGMwMTA3YWIwPl0gKHJldF9mcm9tX2ZvcmsrMHgxNC8w eDI0KQoKVGhpcyB3YXMgbWlzc2VkIGluIGNvbW1pdCAwYzk1MDFmODIzYTQgKCJiYWNrbGlnaHQ6 IHB3bV9ibDogSGFuZGxlIGdwaW8KdGhhdCBjYW4gc2xlZXAiKS4gVGhlIGNvZGUgd2FzIHRoZW4g bW92ZWQgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBpbgpjb21taXQgNzYxM2M5MjIzMTVlICgiYmFj a2xpZ2h0OiBwd21fYmw6IE1vdmUgdGhlIGNoZWNrcyBmb3IgaW5pdGlhbCBwb3dlcgpzdGF0ZSB0 byBhIHNlcGFyYXRlIGZ1bmN0aW9uIikuCgpUaGUgb25seSB1c2FnZSBvZiBncGlvZF9nZXRfdmFs dWUoKSBpcyBkdXJpbmcgdGhlIHByb2JlIHN0YWdlLCB3aGljaCBpcwpzYWZlIHRvIHNsZWVwIGlu LiBTd2l0Y2ggdG8gZ3Bpb2RfZ2V0X3ZhbHVlX2NhbnNsZWVwKCkuCgpGaXhlczogMGM5NTAxZjgy M2E0ICgiYmFja2xpZ2h0OiBwd21fYmw6IEhhbmRsZSBncGlvIHRoYXQgY2FuIHNsZWVwIikKU2ln bmVkLW9mZi1ieTogQ2hlbi1ZdSBUc2FpIDx3ZW5zQGNzaWUub3JnPgpBY2tlZC1ieTogTWF4aW1l IFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBib290bGluLmNvbT4KQWNrZWQtYnk6IERhbmllbCBUaG9t cHNvbiA8ZGFuaWVsLnRob21wc29uQGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IExlZSBKb25l cyA8bGVlLmpvbmVzQGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNo YWxAa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L3B3bV9ibC5jIGIvZHJpdmVycy92aWRlby9i YWNrbGlnaHQvcHdtX2JsLmMKaW5kZXggZmViOTA3NjRhODExLi41M2I4Y2VlYTliZGUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L3B3bV9ibC5jCisrKyBiL2RyaXZlcnMvdmlk ZW8vYmFja2xpZ2h0L3B3bV9ibC5jCkBAIC00MzUsNyArNDM1LDcgQEAgc3RhdGljIGludCBwd21f YmFja2xpZ2h0X2luaXRpYWxfcG93ZXJfc3RhdGUoY29uc3Qgc3RydWN0IHB3bV9ibF9kYXRhICpw YikKIAkgKi8KIAogCS8qIGlmIHRoZSBlbmFibGUgR1BJTyBpcyBkaXNhYmxlZCwgZG8gbm90IGVu YWJsZSB0aGUgYmFja2xpZ2h0ICovCi0JaWYgKHBiLT5lbmFibGVfZ3BpbyAmJiBncGlvZF9nZXRf dmFsdWUocGItPmVuYWJsZV9ncGlvKSA9PSAwKQorCWlmIChwYi0+ZW5hYmxlX2dwaW8gJiYgZ3Bp b2RfZ2V0X3ZhbHVlX2NhbnNsZWVwKHBiLT5lbmFibGVfZ3BpbykgPT0gMCkKIAkJcmV0dXJuIEZC X0JMQU5LX1BPV0VSRE9XTjsKIAogCS8qIFRoZSByZWd1bGF0b3IgaXMgZGlzYWJsZWQsIGRvIG5v dCBlbmFibGUgdGhlIGJhY2tsaWdodCAqLwotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Date: Wed, 27 Mar 2019 18:00:59 +0000 Subject: [PATCH AUTOSEL 5.0 204/262] backlight: pwm_bl: Use gpiod_get_value_cansleep() to get initial state Message-Id: <20190327180158.10245-204-sashal@kernel.org> List-Id: References: <20190327180158.10245-1-sashal@kernel.org> In-Reply-To: <20190327180158.10245-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin , linux-pwm@vger.kernel.org, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Chen-Yu Tsai , Lee Jones From: Chen-Yu Tsai [ Upstream commit cec2b18832e26bc866bef2be22eff4e25bbc4034 ] gpiod_get_value() gives out a warning if access to the underlying gpiochip requires sleeping, which is common for I2C based chips: WARNING: CPU: 0 PID: 77 at drivers/gpio/gpiolib.c:2500 gpiod_get_value+0xd0/0x100 Modules linked in: CPU: 0 PID: 77 Comm: kworker/0:2 Not tainted 4.14.0-rc3-00589-gf32897915d48-dirty #90 Hardware name: Allwinner sun4i/sun5i Families Workqueue: events deferred_probe_work_func [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x88/0x9c) [] (dump_stack) from [] (__warn+0xe8/0x100) [] (__warn) from [] (warn_slowpath_null+0x20/0x28) [] (warn_slowpath_null) from [] (gpiod_get_value+0xd0/0x100) [] (gpiod_get_value) from [] (pwm_backlight_probe+0x238/0x508) [] (pwm_backlight_probe) from [] (platform_drv_probe+0x50/0xac) [] (platform_drv_probe) from [] (driver_probe_device+0x238/0x2e8) [] (driver_probe_device) from [] (bus_for_each_drv+0x44/0x94) [] (bus_for_each_drv) from [] (__device_attach+0xb0/0x114) [] (__device_attach) from [] (bus_probe_device+0x84/0x8c) [] (bus_probe_device) from [] (deferred_probe_work_func+0x50/0x14c) [] (deferred_probe_work_func) from [] (process_one_work+0x1ec/0x414) [] (process_one_work) from [] (worker_thread+0x2b0/0x5a0) [] (worker_thread) from [] (kthread+0x14c/0x154) [] (kthread) from [] (ret_from_fork+0x14/0x24) This was missed in commit 0c9501f823a4 ("backlight: pwm_bl: Handle gpio that can sleep"). The code was then moved to a separate function in commit 7613c922315e ("backlight: pwm_bl: Move the checks for initial power state to a separate function"). The only usage of gpiod_get_value() is during the probe stage, which is safe to sleep in. Switch to gpiod_get_value_cansleep(). Fixes: 0c9501f823a4 ("backlight: pwm_bl: Handle gpio that can sleep") Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Acked-by: Daniel Thompson Signed-off-by: Lee Jones Signed-off-by: Sasha Levin --- drivers/video/backlight/pwm_bl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index feb90764a811..53b8ceea9bde 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -435,7 +435,7 @@ static int pwm_backlight_initial_power_state(const struct pwm_bl_data *pb) */ /* if the enable GPIO is disabled, do not enable the backlight */ - if (pb->enable_gpio && gpiod_get_value(pb->enable_gpio) = 0) + if (pb->enable_gpio && gpiod_get_value_cansleep(pb->enable_gpio) = 0) return FB_BLANK_POWERDOWN; /* The regulator is disabled, do not enable the backlight */ -- 2.19.1