2.6.35-stable review patch.  If anyone has any objections, please let us know.

------------------

From: Thomas Renninger <[email protected]>

commit 751ae808f6b29803228609f51aa1ae057f5c576e upstream.

Event id 0x4 defines the hotkey event.
No need (or even wrong) to query HPWMI_HOTKEY_QUERY if event id is != 0x4.

Reorder the eventcode conditionals and use switch case instead of if/else.
Use an enum for the event ids cases.

Signed-off-by: Thomas Renninger <[email protected]>
Signed-off-by: Matthew Garrett <[email protected]>
CC: [email protected]
CC: [email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/platform/x86/hp-wmi.c |   51 ++++++++++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 19 deletions(-)

--- a/drivers/platform/x86/hp-wmi.c
+++ b/drivers/platform/x86/hp-wmi.c
@@ -58,6 +58,12 @@ enum hp_wmi_radio {
        HPWMI_WWAN = 2,
 };
 
+enum hp_wmi_event_ids {
+       HPWMI_DOCK_EVENT = 1,
+       HPWMI_BEZEL_BUTTON = 4,
+       HPWMI_WIRELESS = 5,
+};
+
 static int __devinit hp_wmi_bios_setup(struct platform_device *device);
 static int __exit hp_wmi_bios_remove(struct platform_device *device);
 static int hp_wmi_resume_handler(struct device *device);
@@ -338,7 +344,7 @@ static void hp_wmi_notify(u32 value, voi
        struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
        static struct key_entry *key;
        union acpi_object *obj;
-       int eventcode;
+       int eventcode, key_code;
        acpi_status status;
 
        status = wmi_get_event_data(value, &response);
@@ -357,28 +363,32 @@ static void hp_wmi_notify(u32 value, voi
 
        eventcode = *((u8 *) obj->buffer.pointer);
        kfree(obj);
-       if (eventcode == 0x4)
-               eventcode = hp_wmi_perform_query(HPWMI_HOTKEY_QUERY, 0,
-                                               0);
-       key = hp_wmi_get_entry_by_scancode(eventcode);
-       if (key) {
-               switch (key->type) {
-               case KE_KEY:
-                       input_report_key(hp_wmi_input_dev,
-                                        key->keycode, 1);
-                       input_sync(hp_wmi_input_dev);
-                       input_report_key(hp_wmi_input_dev,
-                                        key->keycode, 0);
-                       input_sync(hp_wmi_input_dev);
-                       break;
-               }
-       } else if (eventcode == 0x1) {
+       switch (eventcode) {
+       case HPWMI_DOCK_EVENT:
                input_report_switch(hp_wmi_input_dev, SW_DOCK,
                                    hp_wmi_dock_state());
                input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE,
                                    hp_wmi_tablet_state());
                input_sync(hp_wmi_input_dev);
-       } else if (eventcode == 0x5) {
+               break;
+       case HPWMI_BEZEL_BUTTON:
+               key_code = hp_wmi_perform_query(HPWMI_HOTKEY_QUERY, 0,
+                                                0);
+               key = hp_wmi_get_entry_by_scancode(key_code);
+               if (key) {
+                       switch (key->type) {
+                       case KE_KEY:
+                               input_report_key(hp_wmi_input_dev,
+                                                key->keycode, 1);
+                               input_sync(hp_wmi_input_dev);
+                               input_report_key(hp_wmi_input_dev,
+                                                key->keycode, 0);
+                               input_sync(hp_wmi_input_dev);
+                               break;
+                       }
+               }
+               break;
+       case HPWMI_WIRELESS:
                if (wifi_rfkill)
                        rfkill_set_states(wifi_rfkill,
                                          hp_wmi_get_sw_state(HPWMI_WIFI),
@@ -391,9 +401,12 @@ static void hp_wmi_notify(u32 value, voi
                        rfkill_set_states(wwan_rfkill,
                                          hp_wmi_get_sw_state(HPWMI_WWAN),
                                          hp_wmi_get_hw_state(HPWMI_WWAN));
-       } else
+               break;
+       default:
                printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n",
                        eventcode);
+               break;
+       }
 }
 
 static int __init hp_wmi_input_setup(void)


--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" 
in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to