--- sys/dev/acpi_support/acpi_ibm.c.orig Wed Apr 18 11:51:32 2007 +++ sys/dev/acpi_support/acpi_ibm.c Wed Apr 18 13:24:40 2007 @@ -63,10 +63,11 @@ #define ACPI_IBM_METHOD_THINKLIGHT 7 #define ACPI_IBM_METHOD_BLUETOOTH 8 #define ACPI_IBM_METHOD_WLAN 9 -#define ACPI_IBM_METHOD_FANSPEED 10 -#define ACPI_IBM_METHOD_FANLEVEL 11 -#define ACPI_IBM_METHOD_FANSTATUS 12 -#define ACPI_IBM_METHOD_THERMAL 13 +#define ACPI_IBM_METHOD_RADIO_SWITCH 10 +#define ACPI_IBM_METHOD_FANSPEED 11 +#define ACPI_IBM_METHOD_FANLEVEL 12 +#define ACPI_IBM_METHOD_FANSTATUS 13 +#define ACPI_IBM_METHOD_THERMAL 14 /* Hotkeys/Buttons */ #define IBM_RTC_HOTKEY1 0x64 @@ -113,6 +114,7 @@ #define IBM_NAME_WLAN_BT_SET "SBDC" #define IBM_NAME_MASK_BT (1 << 1) #define IBM_NAME_MASK_WLAN (1 << 2) +#define IBM_NAME_RADIO_SWITCH_GET "WLSW" #define IBM_NAME_THERMAL_GET "TMP7" #define IBM_NAME_THERMAL_UPDT "UPDT" @@ -226,6 +228,12 @@ .access = CTLTYPE_INT | CTLFLAG_RD }, { + .name = "radio", + .method = ACPI_IBM_METHOD_RADIO_SWITCH, + .description = "Radio enable", + .access = CTLTYPE_INT | CTLFLAG_RD + }, + { .name = "fan_speed", .method = ACPI_IBM_METHOD_FANSPEED, .description = "Fan speed", @@ -587,6 +595,10 @@ val = ((val & IBM_NAME_MASK_WLAN) != 0); break; + case ACPI_IBM_METHOD_RADIO_SWITCH: + acpi_GetInteger(sc->handle, IBM_NAME_RADIO_SWITCH_GET, &val); + break; + case ACPI_IBM_METHOD_FANSPEED: if (sc->fan_handle) { if(ACPI_FAILURE(acpi_GetInteger(sc->fan_handle, NULL, &val))) @@ -841,6 +853,11 @@ case ACPI_IBM_METHOD_BLUETOOTH: case ACPI_IBM_METHOD_WLAN: if (ACPI_SUCCESS(acpi_GetInteger(sc->handle, IBM_NAME_WLAN_BT_GET, &dummy))) + return (TRUE); + return (FALSE); + + case ACPI_IBM_METHOD_RADIO_SWITCH: + if (ACPI_SUCCESS(acpi_GetInteger(sc->handle, IBM_NAME_RADIO_SWITCH_GET, &dummy))) return (TRUE); return (FALSE);