Browse Source

gpio-button-hotplug: add support for sliding switches

Signed-off-by: John Crispin <[email protected]>

SVN-Revision: 38725
John Crispin 12 years ago
parent
commit
40031fdf9b
1 changed files with 8 additions and 12 deletions
  1. 8 12
      package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c

+ 8 - 12
package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c

@@ -141,17 +141,7 @@ static int button_hotplug_fill_event(struct bh_event *event)
 	if (ret)
 		return ret;
 
-	switch (event->type) {
-		case EV_SW:
-			s = "switch";
-			break;
-		case EV_KEY:
-		default:
-			s = "button";
-			break;
-	}
-
-	ret = bh_event_add_var(event, 0, "SUBSYSTEM=%s", s);
+	ret = bh_event_add_var(event, 0, "SUBSYSTEM=%s", "button");
 	if (ret)
 		return ret;
 
@@ -163,6 +153,12 @@ static int button_hotplug_fill_event(struct bh_event *event)
 	if (ret)
 		return ret;
 
+	if (event->type == EV_SW) {
+		ret = bh_event_add_var(event, 0, "TYPE=%s", "switch");
+		if (ret)
+			return ret;
+	}
+
 	ret = bh_event_add_var(event, 0, "SEEN=%ld", event->seen);
 	if (ret)
 		return ret;
@@ -299,7 +295,7 @@ static void gpio_keys_polled_check_state(struct gpio_keys_button *button,
 			return;
 		}
 
-		if (bdata->last_state != -1)
+		if ((bdata->last_state != -1) || (type == EV_SW))
 			button_hotplug_event(bdata, type, button->code, state);
 
 		bdata->last_state = state;