From: Alexander Stein Date: Tue, 23 Nov 2021 14:53:01 +0000 (+0100) Subject: extcon: Deduplicate code in extcon_set_state_sync() X-Git-Tag: v5.17-rc1~82^2~38^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2da3db7f498d8b6137566b4869d289938b69de13;p=thirdparty%2Fkernel%2Flinux.git extcon: Deduplicate code in extcon_set_state_sync() 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 Signed-off-by: Chanwoo Choi --- diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c index e7a9561a826d3..a09e704fd0fa1 100644 --- a/drivers/extcon/extcon.c +++ b/drivers/extcon/extcon.c @@ -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)