extcon: Deduplicate code in extcon_set_state_sync()
authorAlexander Stein <alexander.stein@ew.tq-group.com>
Tue, 23 Nov 2021 14:53:01 +0000 (15:53 +0100)
committerChanwoo Choi <cw00.choi@samsung.com>
Fri, 24 Dec 2021 06:27:52 +0000 (15:27 +0900)
Finding the cable index and checking for changed status is also done
in extcon_set_state(). So calling extcon_set_state_sync() will do these
checks twice. Remove them and use these checks from extcon_set_state().

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/extcon/extcon.c

index e7a9561..a09e704 100644 (file)
@@ -576,19 +576,7 @@ EXPORT_SYMBOL_GPL(extcon_set_state);
  */
 int extcon_set_state_sync(struct extcon_dev *edev, unsigned int id, bool state)
 {
-       int ret, index;
-       unsigned long flags;
-
-       index = find_cable_index_by_id(edev, id);
-       if (index < 0)
-               return index;
-
-       /* Check whether the external connector's state is changed. */
-       spin_lock_irqsave(&edev->lock, flags);
-       ret = is_extcon_changed(edev, index, state);
-       spin_unlock_irqrestore(&edev->lock, flags);
-       if (!ret)
-               return 0;
+       int ret;
 
        ret = extcon_set_state(edev, id, state);
        if (ret < 0)