mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
dell-laptop: Update information about wireless control
Make sure that all existing SMBIOS calls for wireless control are properly documented. This commit also add new documentation released by Dell. Signed-off-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
This commit is contained in:
parent
5ee7041e5b
commit
f992efbb03
1 changed files with 119 additions and 39 deletions
|
@ -423,45 +423,125 @@ static inline int dell_smi_error(int value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Derived from information in DellWirelessCtl.cpp:
|
/*
|
||||||
Class 17, select 11 is radio control. It returns an array of 32-bit values.
|
* Derived from information in smbios-wireless-ctl:
|
||||||
|
*
|
||||||
Input byte 0 = 0: Wireless information
|
* cbSelect 17, Value 11
|
||||||
|
*
|
||||||
result[0]: return code
|
* Return Wireless Info
|
||||||
result[1]:
|
* cbArg1, byte0 = 0x00
|
||||||
Bit 0: Hardware switch supported
|
*
|
||||||
Bit 1: Wifi locator supported
|
* cbRes1 Standard return codes (0, -1, -2)
|
||||||
Bit 2: Wifi is supported
|
* cbRes2 Info bit flags:
|
||||||
Bit 3: Bluetooth is supported
|
*
|
||||||
Bit 4: WWAN is supported
|
* 0 Hardware switch supported (1)
|
||||||
Bit 5: Wireless keyboard supported
|
* 1 WiFi locator supported (1)
|
||||||
Bits 6-7: Reserved
|
* 2 WLAN supported (1)
|
||||||
Bit 8: Wifi is installed
|
* 3 Bluetooth (BT) supported (1)
|
||||||
Bit 9: Bluetooth is installed
|
* 4 WWAN supported (1)
|
||||||
Bit 10: WWAN is installed
|
* 5 Wireless KBD supported (1)
|
||||||
Bits 11-15: Reserved
|
* 6 Uw b supported (1)
|
||||||
Bit 16: Hardware switch is on
|
* 7 WiGig supported (1)
|
||||||
Bit 17: Wifi is blocked
|
* 8 WLAN installed (1)
|
||||||
Bit 18: Bluetooth is blocked
|
* 9 BT installed (1)
|
||||||
Bit 19: WWAN is blocked
|
* 10 WWAN installed (1)
|
||||||
Bits 20-31: Reserved
|
* 11 Uw b installed (1)
|
||||||
result[2]: NVRAM size in bytes
|
* 12 WiGig installed (1)
|
||||||
result[3]: NVRAM format version number
|
* 13-15 Reserved (0)
|
||||||
|
* 16 Hardware (HW) switch is On (1)
|
||||||
Input byte 0 = 2: Wireless switch configuration
|
* 17 WLAN disabled (1)
|
||||||
result[0]: return code
|
* 18 BT disabled (1)
|
||||||
result[1]:
|
* 19 WWAN disabled (1)
|
||||||
Bit 0: Wifi controlled by switch
|
* 20 Uw b disabled (1)
|
||||||
Bit 1: Bluetooth controlled by switch
|
* 21 WiGig disabled (1)
|
||||||
Bit 2: WWAN controlled by switch
|
* 20-31 Reserved (0)
|
||||||
Bits 3-6: Reserved
|
*
|
||||||
Bit 7: Wireless switch config locked
|
* cbRes3 NVRAM size in bytes
|
||||||
Bit 8: Wifi locator enabled
|
* cbRes4, byte 0 NVRAM format version number
|
||||||
Bits 9-14: Reserved
|
*
|
||||||
Bit 15: Wifi locator setting locked
|
*
|
||||||
Bits 16-31: Reserved
|
* Set QuickSet Radio Disable Flag
|
||||||
*/
|
* cbArg1, byte0 = 0x01
|
||||||
|
* cbArg1, byte1
|
||||||
|
* Radio ID value:
|
||||||
|
* 0 Radio Status
|
||||||
|
* 1 WLAN ID
|
||||||
|
* 2 BT ID
|
||||||
|
* 3 WWAN ID
|
||||||
|
* 4 UWB ID
|
||||||
|
* 5 WIGIG ID
|
||||||
|
* cbArg1, byte2 Flag bits:
|
||||||
|
* 0 QuickSet disables radio (1)
|
||||||
|
* 1-7 Reserved (0)
|
||||||
|
*
|
||||||
|
* cbRes1 Standard return codes (0, -1, -2)
|
||||||
|
* cbRes2 QuickSet (QS) radio disable bit map:
|
||||||
|
* 0 QS disables WLAN
|
||||||
|
* 1 QS disables BT
|
||||||
|
* 2 QS disables WWAN
|
||||||
|
* 3 QS disables UWB
|
||||||
|
* 4 QS disables WIGIG
|
||||||
|
* 5-31 Reserved (0)
|
||||||
|
*
|
||||||
|
* Wireless Switch Configuration
|
||||||
|
* cbArg1, byte0 = 0x02
|
||||||
|
*
|
||||||
|
* cbArg1, byte1
|
||||||
|
* Subcommand:
|
||||||
|
* 0 Get config
|
||||||
|
* 1 Set config
|
||||||
|
* 2 Set WiFi locator enable/disable
|
||||||
|
* cbArg1,byte2
|
||||||
|
* Switch settings (if byte 1==1):
|
||||||
|
* 0 WLAN sw itch control (1)
|
||||||
|
* 1 BT sw itch control (1)
|
||||||
|
* 2 WWAN sw itch control (1)
|
||||||
|
* 3 UWB sw itch control (1)
|
||||||
|
* 4 WiGig sw itch control (1)
|
||||||
|
* 5-7 Reserved (0)
|
||||||
|
* cbArg1, byte2 Enable bits (if byte 1==2):
|
||||||
|
* 0 Enable WiFi locator (1)
|
||||||
|
*
|
||||||
|
* cbRes1 Standard return codes (0, -1, -2)
|
||||||
|
* cbRes2 QuickSet radio disable bit map:
|
||||||
|
* 0 WLAN controlled by sw itch (1)
|
||||||
|
* 1 BT controlled by sw itch (1)
|
||||||
|
* 2 WWAN controlled by sw itch (1)
|
||||||
|
* 3 UWB controlled by sw itch (1)
|
||||||
|
* 4 WiGig controlled by sw itch (1)
|
||||||
|
* 5-6 Reserved (0)
|
||||||
|
* 7 Wireless sw itch config locked (1)
|
||||||
|
* 8 WiFi locator enabled (1)
|
||||||
|
* 9-14 Reserved (0)
|
||||||
|
* 15 WiFi locator setting locked (1)
|
||||||
|
* 16-31 Reserved (0)
|
||||||
|
*
|
||||||
|
* Read Local Config Data (LCD)
|
||||||
|
* cbArg1, byte0 = 0x10
|
||||||
|
* cbArg1, byte1 NVRAM index low byte
|
||||||
|
* cbArg1, byte2 NVRAM index high byte
|
||||||
|
* cbRes1 Standard return codes (0, -1, -2)
|
||||||
|
* cbRes2 4 bytes read from LCD[index]
|
||||||
|
* cbRes3 4 bytes read from LCD[index+4]
|
||||||
|
* cbRes4 4 bytes read from LCD[index+8]
|
||||||
|
*
|
||||||
|
* Write Local Config Data (LCD)
|
||||||
|
* cbArg1, byte0 = 0x11
|
||||||
|
* cbArg1, byte1 NVRAM index low byte
|
||||||
|
* cbArg1, byte2 NVRAM index high byte
|
||||||
|
* cbArg2 4 bytes to w rite at LCD[index]
|
||||||
|
* cbArg3 4 bytes to w rite at LCD[index+4]
|
||||||
|
* cbArg4 4 bytes to w rite at LCD[index+8]
|
||||||
|
* cbRes1 Standard return codes (0, -1, -2)
|
||||||
|
*
|
||||||
|
* Populate Local Config Data from NVRAM
|
||||||
|
* cbArg1, byte0 = 0x12
|
||||||
|
* cbRes1 Standard return codes (0, -1, -2)
|
||||||
|
*
|
||||||
|
* Commit Local Config Data to NVRAM
|
||||||
|
* cbArg1, byte0 = 0x13
|
||||||
|
* cbRes1 Standard return codes (0, -1, -2)
|
||||||
|
*/
|
||||||
|
|
||||||
static int dell_rfkill_set(void *data, bool blocked)
|
static int dell_rfkill_set(void *data, bool blocked)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue