Changeset 37130


Ignore:
Timestamp:
2013-07-02T12:45:31+02:00 (5 years ago)
Author:
luka
Message:

gpio-button-hotplug: add support for EV_SW

Signed-off-by: Luka Perkov <luka@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c

    r37090 r37130  
    5050struct bh_event { 
    5151        const char              *name; 
     52        unsigned int            type; 
    5253        char                    *action; 
    5354        unsigned long           seen; 
     
    9293        BH_MAP(KEY_RESTART,     "reset"), 
    9394        BH_MAP(KEY_RFKILL,      "rfkill"), 
    94 #ifdef KEY_WPS_BUTTON 
    9595        BH_MAP(KEY_WPS_BUTTON,  "wps"), 
    96 #endif /* KEY_WPS_BUTTON */ 
    9796}; 
    9897 
     
    141140                return ret; 
    142141 
    143         ret = bh_event_add_var(event, 0, "SUBSYSTEM=%s", "button"); 
     142        char *s; 
     143        switch (event->type) { 
     144                case EV_KEY: 
     145                        s = "button"; 
     146                        break; 
     147                case EV_SW: 
     148                        s = "switch"; 
     149                        break; 
     150                default: 
     151                        s = "button"; 
     152                        break; 
     153        } 
     154 
     155        ret = bh_event_add_var(event, 0, "SUBSYSTEM=%s", s); 
    144156        if (ret) 
    145157                return ret; 
     
    191203} 
    192204 
    193 static int button_hotplug_create_event(const char *name, unsigned long seen, 
    194                 int pressed) 
     205static int button_hotplug_create_event(const char *name, unsigned int type, 
     206                unsigned long seen, int pressed) 
    195207{ 
    196208        struct bh_event *event; 
     
    204216 
    205217        event->name = name; 
     218        event->type = type; 
    206219        event->seen = seen; 
    207220        event->action = pressed ? "pressed" : "released"; 
     
    226239        return -1; 
    227240} 
     241 
    228242static void button_hotplug_event(struct gpio_keys_button_data *data, 
    229243                           unsigned int type, unsigned int code, int value) 
     
    235249        BH_DBG("event type=%u, code=%u, value=%d\n", type, code, value); 
    236250 
    237         if (type != EV_KEY) 
     251        if ((type != EV_KEY) && (type != EV_SW)) 
    238252                return; 
    239253 
     
    242256                return; 
    243257 
    244         button_hotplug_create_event(button_map[btn].name, 
     258        button_hotplug_create_event(button_map[btn].name, type, 
    245259                        (seen - priv->seen) / HZ, value); 
    246260        priv->seen = seen; 
Note: See TracChangeset for help on using the changeset viewer.