@@ -423,45 +423,125 @@ static inline int dell_smi_error(int value)
423
423
}
424
424
}
425
425
426
- /* Derived from information in DellWirelessCtl.cpp:
427
- Class 17, select 11 is radio control. It returns an array of 32-bit values.
428
-
429
- Input byte 0 = 0: Wireless information
430
-
431
- result[0]: return code
432
- result[1]:
433
- Bit 0: Hardware switch supported
434
- Bit 1: Wifi locator supported
435
- Bit 2: Wifi is supported
436
- Bit 3: Bluetooth is supported
437
- Bit 4: WWAN is supported
438
- Bit 5: Wireless keyboard supported
439
- Bits 6-7: Reserved
440
- Bit 8: Wifi is installed
441
- Bit 9: Bluetooth is installed
442
- Bit 10: WWAN is installed
443
- Bits 11-15: Reserved
444
- Bit 16: Hardware switch is on
445
- Bit 17: Wifi is blocked
446
- Bit 18: Bluetooth is blocked
447
- Bit 19: WWAN is blocked
448
- Bits 20-31: Reserved
449
- result[2]: NVRAM size in bytes
450
- result[3]: NVRAM format version number
451
-
452
- Input byte 0 = 2: Wireless switch configuration
453
- result[0]: return code
454
- result[1]:
455
- Bit 0: Wifi controlled by switch
456
- Bit 1: Bluetooth controlled by switch
457
- Bit 2: WWAN controlled by switch
458
- Bits 3-6: Reserved
459
- Bit 7: Wireless switch config locked
460
- Bit 8: Wifi locator enabled
461
- Bits 9-14: Reserved
462
- Bit 15: Wifi locator setting locked
463
- Bits 16-31: Reserved
464
- */
426
+ /*
427
+ * Derived from information in smbios-wireless-ctl:
428
+ *
429
+ * cbSelect 17, Value 11
430
+ *
431
+ * Return Wireless Info
432
+ * cbArg1, byte0 = 0x00
433
+ *
434
+ * cbRes1 Standard return codes (0, -1, -2)
435
+ * cbRes2 Info bit flags:
436
+ *
437
+ * 0 Hardware switch supported (1)
438
+ * 1 WiFi locator supported (1)
439
+ * 2 WLAN supported (1)
440
+ * 3 Bluetooth (BT) supported (1)
441
+ * 4 WWAN supported (1)
442
+ * 5 Wireless KBD supported (1)
443
+ * 6 Uw b supported (1)
444
+ * 7 WiGig supported (1)
445
+ * 8 WLAN installed (1)
446
+ * 9 BT installed (1)
447
+ * 10 WWAN installed (1)
448
+ * 11 Uw b installed (1)
449
+ * 12 WiGig installed (1)
450
+ * 13-15 Reserved (0)
451
+ * 16 Hardware (HW) switch is On (1)
452
+ * 17 WLAN disabled (1)
453
+ * 18 BT disabled (1)
454
+ * 19 WWAN disabled (1)
455
+ * 20 Uw b disabled (1)
456
+ * 21 WiGig disabled (1)
457
+ * 20-31 Reserved (0)
458
+ *
459
+ * cbRes3 NVRAM size in bytes
460
+ * cbRes4, byte 0 NVRAM format version number
461
+ *
462
+ *
463
+ * Set QuickSet Radio Disable Flag
464
+ * cbArg1, byte0 = 0x01
465
+ * cbArg1, byte1
466
+ * Radio ID value:
467
+ * 0 Radio Status
468
+ * 1 WLAN ID
469
+ * 2 BT ID
470
+ * 3 WWAN ID
471
+ * 4 UWB ID
472
+ * 5 WIGIG ID
473
+ * cbArg1, byte2 Flag bits:
474
+ * 0 QuickSet disables radio (1)
475
+ * 1-7 Reserved (0)
476
+ *
477
+ * cbRes1 Standard return codes (0, -1, -2)
478
+ * cbRes2 QuickSet (QS) radio disable bit map:
479
+ * 0 QS disables WLAN
480
+ * 1 QS disables BT
481
+ * 2 QS disables WWAN
482
+ * 3 QS disables UWB
483
+ * 4 QS disables WIGIG
484
+ * 5-31 Reserved (0)
485
+ *
486
+ * Wireless Switch Configuration
487
+ * cbArg1, byte0 = 0x02
488
+ *
489
+ * cbArg1, byte1
490
+ * Subcommand:
491
+ * 0 Get config
492
+ * 1 Set config
493
+ * 2 Set WiFi locator enable/disable
494
+ * cbArg1,byte2
495
+ * Switch settings (if byte 1==1):
496
+ * 0 WLAN sw itch control (1)
497
+ * 1 BT sw itch control (1)
498
+ * 2 WWAN sw itch control (1)
499
+ * 3 UWB sw itch control (1)
500
+ * 4 WiGig sw itch control (1)
501
+ * 5-7 Reserved (0)
502
+ * cbArg1, byte2 Enable bits (if byte 1==2):
503
+ * 0 Enable WiFi locator (1)
504
+ *
505
+ * cbRes1 Standard return codes (0, -1, -2)
506
+ * cbRes2 QuickSet radio disable bit map:
507
+ * 0 WLAN controlled by sw itch (1)
508
+ * 1 BT controlled by sw itch (1)
509
+ * 2 WWAN controlled by sw itch (1)
510
+ * 3 UWB controlled by sw itch (1)
511
+ * 4 WiGig controlled by sw itch (1)
512
+ * 5-6 Reserved (0)
513
+ * 7 Wireless sw itch config locked (1)
514
+ * 8 WiFi locator enabled (1)
515
+ * 9-14 Reserved (0)
516
+ * 15 WiFi locator setting locked (1)
517
+ * 16-31 Reserved (0)
518
+ *
519
+ * Read Local Config Data (LCD)
520
+ * cbArg1, byte0 = 0x10
521
+ * cbArg1, byte1 NVRAM index low byte
522
+ * cbArg1, byte2 NVRAM index high byte
523
+ * cbRes1 Standard return codes (0, -1, -2)
524
+ * cbRes2 4 bytes read from LCD[index]
525
+ * cbRes3 4 bytes read from LCD[index+4]
526
+ * cbRes4 4 bytes read from LCD[index+8]
527
+ *
528
+ * Write Local Config Data (LCD)
529
+ * cbArg1, byte0 = 0x11
530
+ * cbArg1, byte1 NVRAM index low byte
531
+ * cbArg1, byte2 NVRAM index high byte
532
+ * cbArg2 4 bytes to w rite at LCD[index]
533
+ * cbArg3 4 bytes to w rite at LCD[index+4]
534
+ * cbArg4 4 bytes to w rite at LCD[index+8]
535
+ * cbRes1 Standard return codes (0, -1, -2)
536
+ *
537
+ * Populate Local Config Data from NVRAM
538
+ * cbArg1, byte0 = 0x12
539
+ * cbRes1 Standard return codes (0, -1, -2)
540
+ *
541
+ * Commit Local Config Data to NVRAM
542
+ * cbArg1, byte0 = 0x13
543
+ * cbRes1 Standard return codes (0, -1, -2)
544
+ */
465
545
466
546
static int dell_rfkill_set (void * data , bool blocked )
467
547
{
0 commit comments