OSDN Git Service

extcon: usb-gpio: Remove disable irq operation in system sleep
authorBruce Chen <bruce.chen@unisoc.com>
Thu, 3 Mar 2022 07:36:03 +0000 (15:36 +0800)
committerChanwoo Choi <cw00.choi@samsung.com>
Fri, 13 May 2022 08:03:40 +0000 (17:03 +0900)
If disable vbus/id irq, it will lead to wakeup system fail
in unisoc platform. In unisoc platform, Irq enable and irq
wakeup are the same interrupt line. So remove disable vbus/id
irq operation is a way to solve the issue.

Signed-off-by: Bruce Chen <bruce.chen@unisoc.com>
Acked-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/extcon/extcon-usb-gpio.c

index f2b65d9..40d967a 100644 (file)
@@ -226,16 +226,6 @@ static int usb_extcon_suspend(struct device *dev)
                }
        }
 
-       /*
-        * We don't want to process any IRQs after this point
-        * as GPIOs used behind I2C subsystem might not be
-        * accessible until resume completes. So disable IRQ.
-        */
-       if (info->id_gpiod)
-               disable_irq(info->id_irq);
-       if (info->vbus_gpiod)
-               disable_irq(info->vbus_irq);
-
        if (!device_may_wakeup(dev))
                pinctrl_pm_select_sleep_state(dev);
 
@@ -267,11 +257,6 @@ static int usb_extcon_resume(struct device *dev)
                }
        }
 
-       if (info->id_gpiod)
-               enable_irq(info->id_irq);
-       if (info->vbus_gpiod)
-               enable_irq(info->vbus_irq);
-
        queue_delayed_work(system_power_efficient_wq,
                           &info->wq_detcable, 0);