Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

anyone have a ThinkPad T400/T500 with cellular modem?



Hi,

I'd be curious what a kernel with the attached patch makes visible
upon hitting Fn-F6. It ought to toggle the cellular modem aka
wireless WAN on/off, fun question is what device will pop up.
I've only got the 'option', not the actual electronics; if you don't
have the card nothing happens, so the trouble you get when you have
one ought to be limited. :)

regards,
        spz
-- 
spz%serpens.de@localhost (S.P.Zeidler)
Index: sys/dev/acpi/thinkpad_acpi.c
===================================================================
RCS file: /cvsroot/src/sys/dev/acpi/thinkpad_acpi.c,v
retrieving revision 1.21
diff -u -u -r1.21 thinkpad_acpi.c
--- sys/dev/acpi/thinkpad_acpi.c        29 Nov 2009 21:32:50 -0000      1.21
+++ sys/dev/acpi/thinkpad_acpi.c        6 Jan 2010 16:03:11 -0000
@@ -83,7 +83,7 @@
 #define        THINKPAD_NOTIFY_BatteryInfo     0x003
 #define        THINKPAD_NOTIFY_SleepButton     0x004
 #define        THINKPAD_NOTIFY_WirelessSwitch  0x005
-#define        THINKPAD_NOTIFY_FnF6            0x006
+#define        THINKPAD_NOTIFY_wWANSwitch      0x006
 #define        THINKPAD_NOTIFY_DisplayCycle    0x007
 #define        THINKPAD_NOTIFY_PointerSwitch   0x008
 #define        THINKPAD_NOTIFY_EjectButton     0x009
@@ -120,6 +120,7 @@
 static void    thinkpad_fan_refresh(struct sysmon_envsys *, envsys_data_t *);
 
 static void    thinkpad_wireless_toggle(thinkpad_softc_t *);
+static void    thinkpad_wwan_toggle(thinkpad_softc_t *);
 
 static bool    thinkpad_resume(device_t PMF_FN_PROTO);
 static void    thinkpad_brightness_up(device_t);
@@ -324,6 +325,9 @@
                case THINKPAD_NOTIFY_WirelessSwitch:
                        thinkpad_wireless_toggle(sc);
                        break;
+               case THINKPAD_NOTIFY_wWANSwitch:
+                       thinkpad_wwan_toggle(sc);
+                       break;
                case THINKPAD_NOTIFY_SleepButton:
                        if (sc->sc_smpsw_valid == false)
                                break;
@@ -381,7 +385,6 @@
                            PSWITCH_EVENT_PRESSED);
                        break;
                case THINKPAD_NOTIFY_FnF1:
-               case THINKPAD_NOTIFY_FnF6:
                case THINKPAD_NOTIFY_PointerSwitch:
                case THINKPAD_NOTIFY_FnF10:
                case THINKPAD_NOTIFY_FnF11:
@@ -558,6 +561,13 @@
        (void)AcpiEvaluateObject(sc->sc_node->ad_handle, "BTGL", NULL, NULL);
 }
 
+static void
+thinkpad_wwan_toggle(thinkpad_softc_t *sc)
+{
+       /* Ignore return value, as the hardware may not support wireless WAN */
+       (void)AcpiEvaluateObject(sc->sc_node->ad_handle, "WTGL", NULL, NULL);
+}
+
 static uint8_t
 thinkpad_brightness_read(thinkpad_softc_t *sc)
 {


Home | Main Index | Thread Index | Old Index