Extcon: Notify changed state for only one cable to notifee
authorChanwoo Choi <cw00.choi@samsung.com>
Fri, 27 Apr 2012 06:17:28 +0000 (15:17 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Apr 2012 02:03:49 +0000 (22:03 -0400)
This patch inform the state of only one cable instead of previous data
including the state of 32 cables to notifee which use
extcon_register_interest()
function to monitor whether the specific cable is attachd or detached.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/extcon/extcon_class.c

index 53c64a9..4657ad3 100644 (file)
@@ -425,8 +425,15 @@ static int _call_per_cable(struct notifier_block *nb, unsigned long val,
 
        if ((val & (1 << obj->cable_index)) !=
            (edev->state & (1 << obj->cable_index))) {
+               bool cable_state = true;
+
                obj->previous_value = val;
-               return obj->user_nb->notifier_call(obj->user_nb, val, ptr);
+
+               if (val & (1 << obj->cable_index))
+                       cable_state = false;
+
+               return obj->user_nb->notifier_call(obj->user_nb,
+                               cable_state, ptr);
        }
 
        return NOTIFY_OK;