@@ -2401,14 +2401,16 @@ static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver
2401
2401
{
2402
2402
struct btintel_ppag ppag ;
2403
2403
struct sk_buff * skb ;
2404
- struct btintel_loc_aware_reg ppag_cmd ;
2404
+ struct hci_ppag_enable_cmd ppag_cmd ;
2405
2405
acpi_handle handle ;
2406
2406
2407
2407
/* PPAG is not supported if CRF is HrP2, Jfp2, JfP1 */
2408
2408
switch (ver -> cnvr_top & 0xFFF ) {
2409
2409
case 0x504 : /* Hrp2 */
2410
2410
case 0x202 : /* Jfp2 */
2411
2411
case 0x201 : /* Jfp1 */
2412
+ bt_dev_dbg (hdev , "PPAG not supported for Intel CNVr (0x%3x)" ,
2413
+ ver -> cnvr_top & 0xFFF );
2412
2414
return ;
2413
2415
}
2414
2416
@@ -2434,24 +2436,29 @@ static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver
2434
2436
}
2435
2437
2436
2438
if (ppag .domain != 0x12 ) {
2437
- bt_dev_warn (hdev , "PPAG-BT: domain is not bluetooth " );
2439
+ bt_dev_dbg (hdev , "PPAG-BT: Bluetooth domain is disabled in ACPI firmware " );
2438
2440
return ;
2439
2441
}
2440
2442
2441
- /* PPAG mode, BIT0 = 0 Disabled, BIT0 = 1 Enabled */
2442
- if (!(ppag .mode & BIT (0 ))) {
2443
- bt_dev_dbg (hdev , "PPAG-BT: disabled" );
2443
+ /* PPAG mode
2444
+ * BIT 0 : 0 Disabled in EU
2445
+ * 1 Enabled in EU
2446
+ * BIT 1 : 0 Disabled in China
2447
+ * 1 Enabled in China
2448
+ */
2449
+ if ((ppag .mode & 0x01 ) != BIT (0 ) && (ppag .mode & 0x02 ) != BIT (1 )) {
2450
+ bt_dev_dbg (hdev , "PPAG-BT: EU, China mode are disabled in CB/BIOS" );
2444
2451
return ;
2445
2452
}
2446
2453
2447
- ppag_cmd .mcc = cpu_to_le32 (0 );
2448
- ppag_cmd .sel = cpu_to_le32 (0 ); /* 0 - Enable , 1 - Disable, 2 - Testing mode */
2449
- ppag_cmd .delta = cpu_to_le32 (0 );
2450
- skb = __hci_cmd_sync (hdev , 0xfe19 , sizeof (ppag_cmd ), & ppag_cmd , HCI_CMD_TIMEOUT );
2454
+ ppag_cmd .ppag_enable_flags = cpu_to_le32 (ppag .mode );
2455
+
2456
+ skb = __hci_cmd_sync (hdev , INTEL_OP_PPAG_CMD , sizeof (ppag_cmd ), & ppag_cmd , HCI_CMD_TIMEOUT );
2451
2457
if (IS_ERR (skb )) {
2452
2458
bt_dev_warn (hdev , "Failed to send PPAG Enable (%ld)" , PTR_ERR (skb ));
2453
2459
return ;
2454
2460
}
2461
+ bt_dev_info (hdev , "PPAG-BT: Enabled (Mode %d)" , ppag .mode );
2455
2462
kfree_skb (skb );
2456
2463
}
2457
2464
0 commit comments