lkml.org 
[lkml]   [2020]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 04/11] extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
    Date
    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
    \
     
     \ /
      Last update: 2020-08-12 18:30    [W:3.279 / U:0.312 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site