Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp5644401img; Wed, 27 Mar 2019 12:19:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqxd9oe0padVmR5dK4QwshtUe2o+7NaFcLtftJ8SZESFr63CfDmn4DCl0b58Fr+D6QZ535Ds X-Received: by 2002:a63:945:: with SMTP id 66mr3118433pgj.128.1553714370861; Wed, 27 Mar 2019 12:19:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553714370; cv=none; d=google.com; s=arc-20160816; b=OeY5GDd5mf/gQURrypwaUQLuiDipE+D6bUE4ZT/ot+uSkzdDpvdW/R1hnN8s6r2Cmg r4eTsPjJvf0H2RlRfWRl4BYIf17YwA16Pyqkzeoln8p9maVVaULQDV7LaIdF8jwU7ZRA L4R1PBnmkNpcqe6DMeJnVDYwE+R/jY0hBez9IT8i5Ni3txa3J4/DKnmkjI+fMmJ1kmJt +Op0ZhDuY1mqxKdHky2JV6ScOgDIZ4E7iOmTzZ03dazBb4Vw+n8BIkIn7GjyieLk7R9V XjsgtMD03Y22Yph3gJAhH5EzOBs1GzHjsjrJY1+bEPZnoiiPcEHSYFABHrvkjAA2XPS+ Wz5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WY0+eC4sUWLf+HKc3xjd7g/HMBcBODq/T+gIlA1C8TI=; b=rvOYMnlm8wmnATAZQzdb6tXdGnKxzmdeJa3+tQUU4zesQs12SXOSgHU91drhBKOgj0 5f9s/ki662dVb8HfZaQEwFhCUWQA/QavJDsSiLYQRr6hDIG5QNJ5LLT9ccPWtDVb/tud AOkEleOSpaTLVrRFxN5juHpOtrp4DgicqBNNygPN2UIXVNe4XMofdg6urdH9z0pgOszI qtqt6negz0y9fL3rptlEzxbLOI0GBfwq64mej0GYBQIp/aW8pqNXJYMpQtw8ar2qTZHf ARcpnKPDrncvop4yKkpgIde3W2hXk4a+2VFmuiJCACW+bwik4jDU1TO65Pk7w5EJ6Gsg IDWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=C0wkCLzu; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id cu15si9711919plb.83.2019.03.27.12.19.15; Wed, 27 Mar 2019 12:19:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=C0wkCLzu; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388409AbfC0SIt (ORCPT + 99 others); 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