Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5c29d58f471099401513e2e567f6c28001bb0f13
Commit:     5c29d58f471099401513e2e567f6c28001bb0f13
Parent:     e295e8508c1dd56e06c73e78a2f67f2eb563e74f
Author:     Henrique de Moraes Holschuh <[EMAIL PROTECTED]>
AuthorDate: Wed Jul 18 23:45:38 2007 -0300
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Sat Jul 21 23:46:31 2007 -0400

    ACPI: thinkpad-acpi: export EV_SW SW_RADIO events
    
    The expected user case for the radio slider switch on a ThinkPad includes
    interfacing to applications, so that the user gets an offer to find and
    associate with a wireless network when the switch is changed from disabled
    to enabled (ThinkVantage suite).
    
    Export the information about the switch state, and switch change events as
    an EV_SW SW_RADIO event over the input layer.
    
    Signed-off-by: Henrique de Moraes Holschuh <[EMAIL PROTECTED]>
    Cc: Dmitry Torokhov <[EMAIL PROTECTED]>
    Cc: Ivo van Doorn <[EMAIL PROTECTED]>
    Cc: Richard Hughes <[EMAIL PROTECTED]>
    Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/misc/thinkpad_acpi.c |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index 78914bf..cfef218 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -1014,6 +1014,11 @@ static int __init hotkey_init(struct ibm_init_struct 
*iibm)
                        }
                }
 
+               if (tp_features.hotkey_wlsw) {
+                       set_bit(EV_SW, tpacpi_inputdev->evbit);
+                       set_bit(SW_RADIO, tpacpi_inputdev->swbit);
+               }
+
 #ifdef CONFIG_THINKPAD_ACPI_INPUT_ENABLED
                dbg_printk(TPACPI_DBG_INIT,
                                "enabling hot key handling\n");
@@ -1062,6 +1067,15 @@ static void tpacpi_input_send_key(unsigned int scancode,
        }
 }
 
+static void tpacpi_input_send_radiosw(void)
+{
+       int wlsw;
+
+       if (tp_features.hotkey_wlsw && !hotkey_get_wlsw(&wlsw))
+               input_report_switch(tpacpi_inputdev,
+                                   SW_RADIO, !!wlsw);
+}
+
 static void hotkey_notify(struct ibm_struct *ibm, u32 event)
 {
        u32 hkey;
@@ -1096,6 +1110,14 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 
event)
                                                hkey);
                                }
                                break;
+                       case 7:
+                               /* 0x7000-0x7FFF: misc */
+                               if (tp_features.hotkey_wlsw && hkey == 0x7000) {
+                                               tpacpi_input_send_radiosw();
+                                               sendacpi = 0;
+                                       break;
+                               }
+                               /* fallthrough to default */
                        default:
                                /* case 2: dock-related */
                                /*      0x2305 - T43 waking up due to bay lever 
eject while aslept */
@@ -1113,6 +1135,11 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 
event)
        }
 }
 
+static void hotkey_resume(void)
+{
+       tpacpi_input_send_radiosw();
+}
+
 /*
  * Call with hotkey_mutex held
  */
@@ -1240,6 +1267,7 @@ static struct ibm_struct hotkey_driver_data = {
        .read = hotkey_read,
        .write = hotkey_write,
        .exit = hotkey_exit,
+       .resume = hotkey_resume,
        .acpi = &ibm_hotkey_acpidriver,
 };
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to