diff mbox series

[v1] Bluetooth: btintel: Send new command for PPAG

Message ID 20230810105502.27012-1-lokendra.singh@intel.com (mailing list archive)
State Superseded
Headers show
Series [v1] Bluetooth: btintel: Send new command for PPAG | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
tedd_an/CheckPatch fail ERROR: space required before the open parenthesis '(' #125: FILE: drivers/bluetooth/btintel.c:2449: + if((ppag.mode & 0x01) != BIT(0) && (ppag.mode & 0x02) != BIT(1)) { total: 1 errors, 0 warnings, 56 lines checked NOTE: For some of the reported defects, checkpatch may be able to mechanically convert to the typical style using --fix or --fix-inplace. /github/workspace/src/src/13349282.patch has style problems, please review. NOTE: Ignored message types: UNKNOWN_COMMIT_ID NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.
tedd_an/GitLint success Gitlint PASS
tedd_an/SubjectPrefix success Gitlint PASS
tedd_an/BuildKernel fail BuildKernel: FAIL: drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’: drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known 2404 | struct hci_ppag_enable_cmd ppag_cmd; | ^~~~~~~~ drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable] make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1 make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2 make[2]: *** [scripts/Makefile.build:477: drivers] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2 make: *** [Makefile:234: __sub-make] Error 2
tedd_an/CheckAllWarning fail CheckAllWarning: FAIL: drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’: drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known 2404 | struct hci_ppag_enable_cmd ppag_cmd; | ^~~~~~~~ drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable] make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1 make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2 make[2]: *** [scripts/Makefile.build:477: drivers] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2 make: *** [Makefile:234: __sub-make] Error 2
tedd_an/CheckSparse fail CheckSparse: FAIL: net/bluetooth/af_bluetooth.c:223:25: warning: context imbalance in 'bt_accept_enqueue' - different lock contexts for basic block drivers/bluetooth/hci_ag6xx.c:257:24: warning: restricted __le32 degrades to integer drivers/bluetooth/hci_mrvl.c:170:23: warning: restricted __le16 degrades to integer drivers/bluetooth/hci_mrvl.c:203:23: warning: restricted __le16 degrades to integer net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h): ./include/net/bluetooth/hci.h:2658:47: warning: array of flexible structures ./include/net/bluetooth/hci.h:2744:43: warning: array of flexible structures drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’: drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known 2404 | struct hci_ppag_enable_cmd ppag_cmd; | ^~~~~~~~ drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable] make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1 make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2 make[2]: *** [scripts/Makefile.build:477: drivers] Error 2 make[2]: *** Waiting for unfinished jobs.... net/bluetooth/hci_codec.c: note: in included file: ./include/net/bluetooth/hci_core.h:150:35: warning: array of flexible structures net/bluetooth/sco.c: note: in included file: ./include/net/bluetooth/hci_core.h:150:35: warning: array of flexible structures make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2 make: *** [Makefile:234: __sub-make] Error 2
tedd_an/CheckSmatch fail CheckSparse: FAIL: net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h): ./include/net/bluetooth/hci.h:2658:47: warning: array of flexible structures ./include/net/bluetooth/hci.h:2744:43: warning: array of flexible structures drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’: drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known 2404 | struct hci_ppag_enable_cmd ppag_cmd; | ^~~~~~~~ drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable] make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1 make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2 make[2]: *** [scripts/Makefile.build:477: drivers] Error 2 make[2]: *** Waiting for unfinished jobs.... net/bluetooth/hci_codec.c: note: in included file: ./include/net/bluetooth/hci_core.h:150:35: warning: array of flexible structures net/bluetooth/sco.c: note: in included file: ./include/net/bluetooth/hci_core.h:150:35: warning: array of flexible structures make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2 make: *** [Makefile:234: __sub-make] Error 2
tedd_an/BuildKernel32 fail BuildKernel32: FAIL: drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’: drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known 2404 | struct hci_ppag_enable_cmd ppag_cmd; | ^~~~~~~~ drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable] make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1 make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2 make[2]: *** [scripts/Makefile.build:477: drivers] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2 make: *** [Makefile:234: __sub-make] Error 2
tedd_an/TestRunnerSetup success TestRunnerSetup PASS
tedd_an/TestRunner_l2cap-tester success TestRunner PASS
tedd_an/TestRunner_iso-tester success TestRunner PASS
tedd_an/TestRunner_bnep-tester success TestRunner PASS
tedd_an/TestRunner_mgmt-tester success TestRunner PASS
tedd_an/TestRunner_rfcomm-tester success TestRunner PASS
tedd_an/TestRunner_sco-tester success TestRunner PASS
tedd_an/TestRunner_ioctl-tester success TestRunner PASS
tedd_an/TestRunner_mesh-tester success TestRunner PASS
tedd_an/TestRunner_smp-tester success TestRunner PASS
tedd_an/TestRunner_userchan-tester success TestRunner PASS
tedd_an/IncrementalBuild fail [v1] Bluetooth: btintel: Send new command for PPAG drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’: drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known 2404 | struct hci_ppag_enable_cmd ppag_cmd; | ^~~~~~~~ drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable] make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1 make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2 make[2]: *** [scripts/Makefile.build:477: drivers] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2 make: *** [Makefile:234: __sub-make] Error 2

Commit Message

Lokendra Singh Aug. 10, 2023, 10:55 a.m. UTC
From: Seema Sreemantha <seema.sreemantha@intel.com>

Added support for the new command opcode FE0B
(HCI Intel PPAG Enable).

btmon log:
< HCI Command: Intel PPAG Enable (0x3f|0x020b) plen 4
        Enable: 0x00000002
> HCI Event: Command Complete (0x0e) plen 4
      Intel PPAG Enable (0x3f|0x020b) ncmd 1
        Status: Success (0x00)

Signed-off-by: Seema Sreemantha <seema.sreemantha@intel.com>
Signed-off-by: Lokendra Singh <lokendra.singh@intel.com>
---
 drivers/bluetooth/btintel.c | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

Comments

bluez.test.bot@gmail.com Aug. 10, 2023, 11:38 a.m. UTC | #1
This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=774917

---Test result---

Test Summary:
CheckPatch                    FAIL      1.10 seconds
GitLint                       PASS      0.34 seconds
SubjectPrefix                 PASS      0.11 seconds
BuildKernel                   FAIL      35.53 seconds
CheckAllWarning               FAIL      39.21 seconds
CheckSparse                   FAIL      43.58 seconds
CheckSmatch                   FAIL      117.69 seconds
BuildKernel32                 FAIL      34.73 seconds
TestRunnerSetup               PASS      576.98 seconds
TestRunner_l2cap-tester       PASS      28.56 seconds
TestRunner_iso-tester         PASS      58.12 seconds
TestRunner_bnep-tester        PASS      12.75 seconds
TestRunner_mgmt-tester        PASS      239.73 seconds
TestRunner_rfcomm-tester      PASS      19.22 seconds
TestRunner_sco-tester         PASS      22.24 seconds
TestRunner_ioctl-tester       PASS      21.11 seconds
TestRunner_mesh-tester        PASS      16.45 seconds
TestRunner_smp-tester         PASS      17.02 seconds
TestRunner_userchan-tester    PASS      13.75 seconds
IncrementalBuild              FAIL      32.60 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[v1] Bluetooth: btintel: Send new command for PPAG
ERROR: space required before the open parenthesis '('
#125: FILE: drivers/bluetooth/btintel.c:2449:
+	if((ppag.mode & 0x01) != BIT(0) && (ppag.mode & 0x02) != BIT(1)) {

total: 1 errors, 0 warnings, 56 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13349282.patch has style problems, please review.

NOTE: Ignored message types: UNKNOWN_COMMIT_ID

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.


##############################
Test: BuildKernel - FAIL
Desc: Build Kernel for Bluetooth
Output:

drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’:
drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known
 2404 |  struct hci_ppag_enable_cmd ppag_cmd;
      |                             ^~~~~~~~
drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable]
make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1
make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:477: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
##############################
Test: CheckAllWarning - FAIL
Desc: Run linux kernel with all warning enabled
Output:

drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’:
drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known
 2404 |  struct hci_ppag_enable_cmd ppag_cmd;
      |                             ^~~~~~~~
drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable]
make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1
make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:477: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
##############################
Test: CheckSparse - FAIL
Desc: Run sparse tool with linux kernel
Output:

net/bluetooth/af_bluetooth.c:223:25: warning: context imbalance in 'bt_accept_enqueue' - different lock contexts for basic block
drivers/bluetooth/hci_ag6xx.c:257:24: warning: restricted __le32 degrades to integer
drivers/bluetooth/hci_mrvl.c:170:23: warning: restricted __le16 degrades to integer
drivers/bluetooth/hci_mrvl.c:203:23: warning: restricted __le16 degrades to integer
net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h):
./include/net/bluetooth/hci.h:2658:47: warning: array of flexible structures
./include/net/bluetooth/hci.h:2744:43: warning: array of flexible structures
drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’:
drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known
 2404 |  struct hci_ppag_enable_cmd ppag_cmd;
      |                             ^~~~~~~~
drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable]
make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1
make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:477: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
net/bluetooth/hci_codec.c: note: in included file:
./include/net/bluetooth/hci_core.h:150:35: warning: array of flexible structures
net/bluetooth/sco.c: note: in included file:
./include/net/bluetooth/hci_core.h:150:35: warning: array of flexible structures
make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
##############################
Test: CheckSmatch - FAIL
Desc: Run smatch tool with source
Output:

net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h):
./include/net/bluetooth/hci.h:2658:47: warning: array of flexible structures
./include/net/bluetooth/hci.h:2744:43: warning: array of flexible structures
drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’:
drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known
 2404 |  struct hci_ppag_enable_cmd ppag_cmd;
      |                             ^~~~~~~~
drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable]
make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1
make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:477: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
net/bluetooth/hci_codec.c: note: in included file:
./include/net/bluetooth/hci_core.h:150:35: warning: array of flexible structures
net/bluetooth/sco.c: note: in included file:
./include/net/bluetooth/hci_core.h:150:35: warning: array of flexible structures
make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
##############################
Test: BuildKernel32 - FAIL
Desc: Build 32bit Kernel for Bluetooth
Output:

drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’:
drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known
 2404 |  struct hci_ppag_enable_cmd ppag_cmd;
      |                             ^~~~~~~~
drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable]
make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1
make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:477: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
##############################
Test: IncrementalBuild - FAIL
Desc: Incremental build with the patches in the series
Output:
[v1] Bluetooth: btintel: Send new command for PPAG

drivers/bluetooth/btintel.c: In function ‘btintel_set_ppag’:
drivers/bluetooth/btintel.c:2404:29: error: storage size of ‘ppag_cmd’ isn’t known
 2404 |  struct hci_ppag_enable_cmd ppag_cmd;
      |                             ^~~~~~~~
drivers/bluetooth/btintel.c:2404:29: warning: unused variable ‘ppag_cmd’ [-Wunused-variable]
make[4]: *** [scripts/Makefile.build:243: drivers/bluetooth/btintel.o] Error 1
make[3]: *** [scripts/Makefile.build:477: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:477: drivers] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:2020: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2


---
Regards,
Linux Bluetooth
kernel test robot Aug. 10, 2023, 3:08 p.m. UTC | #2
Hi Lokendra,

kernel test robot noticed the following build warnings:

[auto build test WARNING on bluetooth-next/master]
[also build test WARNING on bluetooth/master linus/master v6.5-rc5 next-20230809]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Lokendra-Singh/Bluetooth-btintel-Send-new-command-for-PPAG/20230810-185334
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master
patch link:    https://lore.kernel.org/r/20230810105502.27012-1-lokendra.singh%40intel.com
patch subject: [PATCH v1] Bluetooth: btintel: Send new command for PPAG
config: x86_64-randconfig-x011-20230810 (https://download.01.org/0day-ci/archive/20230810/202308102242.EKYkZi8t-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230810/202308102242.EKYkZi8t-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308102242.EKYkZi8t-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/bluetooth/btintel.c: In function 'btintel_set_ppag':
   drivers/bluetooth/btintel.c:2404:36: error: storage size of 'ppag_cmd' isn't known
    2404 |         struct hci_ppag_enable_cmd ppag_cmd;
         |                                    ^~~~~~~~
>> drivers/bluetooth/btintel.c:2404:36: warning: unused variable 'ppag_cmd' [-Wunused-variable]


vim +/ppag_cmd +2404 drivers/bluetooth/btintel.c

  2399	
  2400	static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver)
  2401	{
  2402		struct btintel_ppag ppag;
  2403		struct sk_buff *skb;
> 2404		struct hci_ppag_enable_cmd ppag_cmd;
  2405		acpi_handle handle;
  2406	
  2407		/* PPAG is not supported if CRF is HrP2, Jfp2, JfP1 */
  2408		switch (ver->cnvr_top & 0xFFF) {
  2409		case 0x504:     /* Hrp2 */
  2410		case 0x202:     /* Jfp2 */
  2411		case 0x201:     /* Jfp1 */
  2412			bt_dev_warn(hdev, "PPAG not supported for Intel CNVr (0x%3x)",
  2413				    ver->cnvr_top & 0xFFF);
  2414			return;
  2415		}
  2416	
  2417		handle = ACPI_HANDLE(GET_HCIDEV_DEV(hdev));
  2418		if (!handle) {
  2419			bt_dev_info(hdev, "No support for BT device in ACPI firmware");
  2420			return;
  2421		}
  2422	
  2423		memset(&ppag, 0, sizeof(ppag));
  2424	
  2425		ppag.hdev = hdev;
  2426		ppag.status = AE_NOT_FOUND;
  2427		acpi_walk_namespace(ACPI_TYPE_PACKAGE, handle, 1, NULL,
  2428				    btintel_ppag_callback, &ppag, NULL);
  2429	
  2430		if (ACPI_FAILURE(ppag.status)) {
  2431			if (ppag.status == AE_NOT_FOUND) {
  2432				bt_dev_dbg(hdev, "PPAG-BT: ACPI entry not found");
  2433				return;
  2434			}
  2435			return;
  2436		}
  2437	
  2438		if (ppag.domain != 0x12) {
  2439			bt_dev_warn(hdev, "PPAG-BT: Bluetooth domain is disabled in ACPI firmware");
  2440			return;
  2441		}
  2442	
  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_warn(hdev, "PPAG-BT: EU, China mode are disabled in CB/BIOS");
  2451			return;
  2452		}
  2453	
  2454		/* HCI_Intel_PpagEnable_CMD - opcode: 0xFE0B
  2455		 * ppag_enable_flags - ppag mode
  2456		 */
  2457		ppag_cmd.ppag_enable_flags = ppag.mode;
  2458	
  2459		skb = __hci_cmd_sync(hdev, 0xfe0b, sizeof(ppag_cmd), &ppag_cmd, HCI_CMD_TIMEOUT);
  2460		if (IS_ERR(skb)) {
  2461			bt_dev_warn(hdev, "Failed to send PPAG Enable (%ld)", PTR_ERR(skb));
  2462			return;
  2463		}
  2464		bt_dev_info(hdev, "PPAG-BT: Enabled (Mode %d)", ppag.mode);
  2465		kfree_skb(skb);
  2466	}
  2467
diff mbox series

Patch

diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index 633e8d9bf58f..71964c99f5f3 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -2401,7 +2401,7 @@  static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver
 {
 	struct btintel_ppag ppag;
 	struct sk_buff *skb;
-	struct btintel_loc_aware_reg ppag_cmd;
+	struct hci_ppag_enable_cmd ppag_cmd;
 	acpi_handle handle;
 
 	/* PPAG is not supported if CRF is HrP2, Jfp2, JfP1 */
@@ -2409,6 +2409,8 @@  static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver
 	case 0x504:     /* Hrp2 */
 	case 0x202:     /* Jfp2 */
 	case 0x201:     /* Jfp1 */
+		bt_dev_warn(hdev, "PPAG not supported for Intel CNVr (0x%3x)",
+			    ver->cnvr_top & 0xFFF);
 		return;
 	}
 
@@ -2434,24 +2436,32 @@  static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver
 	}
 
 	if (ppag.domain != 0x12) {
-		bt_dev_warn(hdev, "PPAG-BT: domain is not bluetooth");
+		bt_dev_warn(hdev, "PPAG-BT: Bluetooth domain is disabled in ACPI firmware");
 		return;
 	}
 
-	/* PPAG mode, BIT0 = 0 Disabled, BIT0 = 1 Enabled */
-	if (!(ppag.mode & BIT(0))) {
-		bt_dev_dbg(hdev, "PPAG-BT: disabled");
+	/* PPAG mode
+	 * BIT 0 : 0 Disabled in EU
+	 *         1 Enabled in EU
+	 * BIT 1 : 0 Disabled in China
+	 *         1 Enabled in China
+	 */
+	if((ppag.mode & 0x01) != BIT(0) && (ppag.mode & 0x02) != BIT(1)) {
+		bt_dev_warn(hdev, "PPAG-BT: EU, China mode are disabled in CB/BIOS");
 		return;
 	}
 
-	ppag_cmd.mcc = cpu_to_le32(0);
-	ppag_cmd.sel = cpu_to_le32(0); /* 0 - Enable , 1 - Disable, 2 - Testing mode */
-	ppag_cmd.delta = cpu_to_le32(0);
-	skb = __hci_cmd_sync(hdev, 0xfe19, sizeof(ppag_cmd), &ppag_cmd, HCI_CMD_TIMEOUT);
+	/* HCI_Intel_PpagEnable_CMD - opcode: 0xFE0B
+	 * ppag_enable_flags - ppag mode
+	 */
+	ppag_cmd.ppag_enable_flags = ppag.mode;
+
+	skb = __hci_cmd_sync(hdev, 0xfe0b, sizeof(ppag_cmd), &ppag_cmd, HCI_CMD_TIMEOUT);
 	if (IS_ERR(skb)) {
 		bt_dev_warn(hdev, "Failed to send PPAG Enable (%ld)", PTR_ERR(skb));
 		return;
 	}
+	bt_dev_info(hdev, "PPAG-BT: Enabled (Mode %d)", ppag.mode);
 	kfree_skb(skb);
 }