All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: MyungJoo Ham <myungjoo.ham@samsung.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Vijai Kumar K <vijaikumar.kanagarajan@gmail.com>,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Cc: stable@vger.kernel.org
Subject: [PATCH 04/11] extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
Date: Wed, 12 Aug 2020 18:29:51 +0200	[thread overview]
Message-ID: <20200812162958.6180-4-krzk@kernel.org> (raw)
In-Reply-To: <20200812162958.6180-1-krzk@kernel.org>

The driver uses atomic version of gpiod_set_value() without any real
reason.  It is called in a workqueue under mutex so it could sleep
there.  Changing it to "can_sleep" flavor allows to use the driver with
all GPIO chips.

Fixes: 4ed754de2d66 ("extcon: Add support for ptn5150 extcon driver")
Cc: <stable@vger.kernel.org>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
 drivers/extcon/extcon-ptn5150.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/extcon/extcon-ptn5150.c b/drivers/extcon/extcon-ptn5150.c
index d1c997599390..5f5252752644 100644
--- a/drivers/extcon/extcon-ptn5150.c
+++ b/drivers/extcon/extcon-ptn5150.c
@@ -127,7 +127,7 @@ static void ptn5150_irq_work(struct work_struct *work)
 			case PTN5150_DFP_ATTACHED:
 				extcon_set_state_sync(info->edev,
 						EXTCON_USB_HOST, false);
-				gpiod_set_value(info->vbus_gpiod, 0);
+				gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 				extcon_set_state_sync(info->edev, EXTCON_USB,
 						true);
 				break;
@@ -138,9 +138,9 @@ static void ptn5150_irq_work(struct work_struct *work)
 					PTN5150_REG_CC_VBUS_DETECTION_MASK) >>
 					PTN5150_REG_CC_VBUS_DETECTION_SHIFT);
 				if (vbus)
-					gpiod_set_value(info->vbus_gpiod, 0);
+					gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 				else
-					gpiod_set_value(info->vbus_gpiod, 1);
+					gpiod_set_value_cansleep(info->vbus_gpiod, 1);
 
 				extcon_set_state_sync(info->edev,
 						EXTCON_USB_HOST, true);
@@ -156,7 +156,7 @@ static void ptn5150_irq_work(struct work_struct *work)
 					EXTCON_USB_HOST, false);
 			extcon_set_state_sync(info->edev,
 					EXTCON_USB, false);
-			gpiod_set_value(info->vbus_gpiod, 0);
+			gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 		}
 	}
 
-- 
2.17.1


  parent reply	other threads:[~2020-08-12 16:30 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-12 16:29 [PATCH 01/11] dt-bindings: extcon: ptn5150: Convert binding to DT schema Krzysztof Kozlowski
2020-08-12 16:29 ` [PATCH 02/11] dt-bindings: extcon: ptn5150: Use generic "interrupts" property Krzysztof Kozlowski
2020-08-12 16:29 ` [PATCH 03/11] dt-bindings: extcon: ptn5150: Make 'vbus-gpios' optional Krzysztof Kozlowski
2020-08-12 16:29 ` Krzysztof Kozlowski [this message]
2020-08-12 16:29 ` [PATCH 05/11] extcon: ptn5150: Use generic "interrupts" property Krzysztof Kozlowski
2020-08-12 16:29 ` [PATCH 06/11] extcon: ptn5150: Simplify getting vbus-gpios with flags Krzysztof Kozlowski
2020-08-12 16:29 ` [PATCH 07/11] extcon: ptn5150: Lower the noisiness of probe Krzysztof Kozlowski
2020-08-12 16:29 ` [PATCH 08/11] extcon: ptn5150: Check current USB mode when probing Krzysztof Kozlowski
2020-08-13  6:03   ` Krzysztof Kozlowski
2020-08-12 16:29 ` [PATCH 09/11] extcon: ptn5150: Make 'vbus-gpios' optional Krzysztof Kozlowski
2020-08-12 16:29 ` [PATCH 10/11] extcon: ptn5150: Reduce the amount of logs on deferred probe Krzysztof Kozlowski
2020-08-12 16:29 ` [PATCH 11/11] MAINTAINERS: Add entry for NXP PTN5150A CC driver Krzysztof Kozlowski
2020-08-12 16:50 ` [PATCH 12/13] extcon: ptn5150: Convert to module_i2c_driver Krzysztof Kozlowski
2020-08-12 16:50   ` [PATCH 13/13] extcon: ptn5150: Convert to .probe_new Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200812162958.6180-4-krzk@kernel.org \
    --to=krzk@kernel.org \
    --cc=cw00.choi@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=myungjoo.ham@samsung.com \
    --cc=robh+dt@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=vijaikumar.kanagarajan@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.