Skip to contentSkip to conversation

mgmt: Set offload codec mgmt feature

PATCH Superseded Kiran K 3 participants 5 messages Aug 15, 2021 – Aug 17, 2021 Bluetooth drivers

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore

Kiran K

author
#0 lore raw

PATCH 1/1 mgmt: Set offload codec mgmt feature

---
 tools/btmgmt.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
tools/btmgmt.c +44 -0
index 7d908238156d..c5f55ae1290c 100644
@@ -2554,6 +2554,48 @@ static void cmd_privacy(int argc, char **argv)
 	}
 }
 
+static void exp_offload_rsp(uint8_t status, uint16_t len, const void *param,
+							void *user_data)
+{
+	if (status != 0)
+		error("Set offload codec feature failed with status 0x%02x (%s)",
+						status, mgmt_errstr(status));
+	else
+		print("Offload codec feature successfully set");
+
+	bt_shell_noninteractive_quit(EXIT_SUCCESS);
+}
+
+static void cmd_exp_offload_codecs(int argc, char **argv)
+{
+	/* a6695ace-ee7f-4fb9-881a-5fac66c629af */
+	static const uint8_t uuid[16] = {
+				0xaf, 0x29, 0xc6, 0x66, 0xac, 0x5f, 0x1a, 0x88,
+				0xb9, 0x4f, 0x7f, 0xee, 0xce, 0x5a, 0x69, 0xa6,
+	};
+
+	struct mgmt_cp_set_exp_feature cp;
+	uint8_t val;
+	uint16_t index;
+
+	if (parse_setting(argc, argv, &val) == false)
+		return bt_shell_noninteractive_quit(EXIT_FAILURE);
+
+	index = mgmt_index;
+	if (index == MGMT_INDEX_NONE)
+		index = 0;
+
+	memset(&cp, 0, sizeof(cp));
+	memcpy(cp.uuid, uuid, 16);
+	cp.action = val;
+
+	if (mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
+			sizeof(cp), &cp, exp_offload_rsp, NULL, NULL) == 0) {
+		error("Unable to send offload codecs feature cmd");
+		return bt_shell_noninteractive_quit(EXIT_FAILURE);
+	}
+}
+
 static void class_rsp(uint16_t op, uint16_t id, uint8_t status, uint16_t len,
 							const void *param)
 {
@@ -5595,6 +5637,8 @@ static const struct bt_shell_menu main_menu = {
 		cmd_exp_privacy,	"Set LL privacy feature"	},
 	{ "exp-quality",	"<on/off>", cmd_exp_quality,
 		"Set bluetooth quality report feature"			},
+	{ "exp-offload",		"<on/off>",
+		cmd_exp_offload_codecs,	"Toggle codec support support"	},
 	{ "read-sysconfig",	NULL,
 		cmd_read_sysconfig,	"Read System Configuration"	},
 	{ "set-sysconfig",	"<-v|-h> [options...]",
Signature · 1 line
2.17.1
#1 lore raw

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=531599

---Test result---

Test Summary:

CheckPatch                    FAIL      0.33 seconds
GitLint                       PASS      0.13 seconds
Prep - Setup ELL              PASS      49.03 seconds
Build - Prep                  PASS      0.11 seconds
Build - Configure             PASS      8.66 seconds
Build - Make                  PASS      212.24 seconds
Make Check                    PASS      9.79 seconds
Make Distcheck                PASS      250.51 seconds
Build w/ext ELL - Configure   PASS      8.76 seconds
Build w/ext ELL - Make        PASS      199.76 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script with rule in .checkpatch.conf Output:
mgmt: Set offload codec mgmt feature WARNING:LONG_LINE_STRING: line length of 81 exceeds 80 columns #20: FILE: tools/btmgmt.c:2561:
+ error("Set offload codec feature failed with status 0x%02x (%s)",

- total: 0 errors, 1 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.

"[PATCH] mgmt: Set offload codec mgmt feature" has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

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

##############################
Test: GitLint - PASS
Desc: Run gitlint with rule in .gitlint

##############################
Test: Prep - Setup ELL - PASS
Desc: Clone, build, and install ELL

##############################
Test: Build - Prep - PASS
Desc: Prepare environment for build

##############################
Test: Build - Configure - PASS
Desc: Configure the BlueZ source tree

##############################
Test: Build - Make - PASS
Desc: Build the BlueZ source tree

##############################
Test: Make Check - PASS
Desc: Run 'make check'

##############################
Test: Make Distcheck - PASS
Desc: Run distcheck to check the distribution

##############################
Test: Build w/ext ELL - Configure - PASS
Desc: Configure BlueZ source with '--enable-external-ell' configuration

##############################
Test: Build w/ext ELL - Make - PASS
Desc: Build BlueZ source with '--enable-external-ell' configuration

---
Regards,
Linux Bluetooth

#2 lore raw

Hi Kiran,

Quoted 23 lines · On Sat, Aug 14, 2021 at 6:31 PM <[email protected]> wrote:

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=531599

---Test result---

Test Summary:

CheckPatch                    FAIL      0.33 seconds
GitLint                       PASS      0.13 seconds
Prep - Setup ELL              PASS      49.03 seconds
Build - Prep                  PASS      0.11 seconds
Build - Configure             PASS      8.66 seconds
Build - Make                  PASS      212.24 seconds
Make Check                    PASS      9.79 seconds
Make Distcheck                PASS      250.51 seconds
Build w/ext ELL - Configure   PASS      8.76 seconds
Build w/ext ELL - Make        PASS      199.76 seconds
Quoted 9 lines

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script with rule in .checkpatch.conf Output:
mgmt: Set offload codec mgmt feature WARNING:LONG_LINE_STRING: line length of 81 exceeds 80 columns #20: FILE: tools/btmgmt.c:2561:
+ error("Set offload codec feature failed with status 0x%02x (%s)",

This will need to be fixed.

Quoted 55 lines

- total: 0 errors, 1 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.

"[PATCH] mgmt: Set offload codec mgmt feature" has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

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

##############################
Test: GitLint - PASS
Desc: Run gitlint with rule in .gitlint

##############################
Test: Prep - Setup ELL - PASS
Desc: Clone, build, and install ELL

##############################
Test: Build - Prep - PASS
Desc: Prepare environment for build

##############################
Test: Build - Configure - PASS
Desc: Configure the BlueZ source tree

##############################
Test: Build - Make - PASS
Desc: Build the BlueZ source tree

##############################
Test: Make Check - PASS
Desc: Run 'make check'

##############################
Test: Make Distcheck - PASS
Desc: Run distcheck to check the distribution

##############################
Test: Build w/ext ELL - Configure - PASS
Desc: Configure BlueZ source with '--enable-external-ell' configuration

##############################
Test: Build w/ext ELL - Make - PASS
Desc: Build BlueZ source with '--enable-external-ell' configuration

---
Regards,
Linux Bluetooth

Signature · 1 line
Luiz Augusto von Dentz
#3 lore raw
In reply to Kiran K

Hi Kiran,

Quoted 2 lines · Kiran K

We don't use Signed-off-by on userspace patches.

Quoted 21 lines
---
 tools/btmgmt.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
tools/btmgmt.c +9 -0
index 7d908238156d..c5f55ae1290c 100644
@@ -2554,6 +2554,48 @@ static void cmd_privacy(int argc, char **argv)
        }
 }
 
+static void exp_offload_rsp(uint8_t status, uint16_t len, const void *param,
+                                                       void *user_data)
+{
+       if (status != 0)
+               error("Set offload codec feature failed with status 0x%02x (%s)",
+                                               status, mgmt_errstr(status));
+       else
+               print("Offload codec feature successfully set");
+

tools/btmgmt.c static void cmd_privacy(int argc, char **argv) · line 2575

Quoted 10 lines
tools/btmgmt.c +10 -0
+       bt_shell_noninteractive_quit(EXIT_SUCCESS);
+}
+
+static void cmd_exp_offload_codecs(int argc, char **argv)
+{
+       /* a6695ace-ee7f-4fb9-881a-5fac66c629af */
+       static const uint8_t uuid[16] = {
+                               0xaf, 0x29, 0xc6, 0x66, 0xac, 0x5f, 0x1a, 0x88,
+                               0xb9, 0x4f, 0x7f, 0xee, 0xce, 0x5a, 0x69, 0xa6,
+       };

This also should be added to src/shared/util.c:uuid128_table so we are able to decode it when using the likes of btmon and bluetoothctl.

Quoted 37 lines
tools/btmgmt.c +24 -1
+       struct mgmt_cp_set_exp_feature cp;
+       uint8_t val;
+       uint16_t index;
+
+       if (parse_setting(argc, argv, &val) == false)
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
+
+       index = mgmt_index;
+       if (index == MGMT_INDEX_NONE)
+               index = 0;
+
+       memset(&cp, 0, sizeof(cp));
+       memcpy(cp.uuid, uuid, 16);
+       cp.action = val;
+
+       if (mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
+                       sizeof(cp), &cp, exp_offload_rsp, NULL, NULL) == 0) {
+               error("Unable to send offload codecs feature cmd");
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
+       }
+}
+
 static void class_rsp(uint16_t op, uint16_t id, uint8_t status, uint16_t len,
                                                        const void *param)
 {
@@ -5595,6 +5637,8 @@ static const struct bt_shell_menu main_menu = {
                cmd_exp_privacy,        "Set LL privacy feature"        },
        { "exp-quality",        "<on/off>", cmd_exp_quality,
                "Set bluetooth quality report feature"                  },
+       { "exp-offload",                "<on/off>",
+               cmd_exp_offload_codecs, "Toggle codec support support"  },
        { "read-sysconfig",     NULL,
                cmd_read_sysconfig,     "Read System Configuration"     },
        { "set-sysconfig",      "<-v|-h> [options...]",
--

2.17.1

Signature · 1 line
Luiz Augusto von Dentz
author
#4 lore raw

Hi Luiz,

I will send an updated patch addressing your comments.

Quoted 85 lines

-----Original Message-----
From: Luiz Augusto von Dentz <[email protected]>
Sent: Tuesday, August 17, 2021 3:30 AM
To: K, Kiran <[email protected]>
Cc: [email protected]; Von Dentz, Luiz <[email protected]>
Subject: Re: [PATCH] mgmt: Set offload codec mgmt feature

Hi Kiran,

Quoted 2 lines · Kiran K

We don't use Signed-off-by on userspace patches.

tools/btmgmt.c static void cmd_privacy(int argc, char **argv) · line 2557

Quoted 13 lines
---
 tools/btmgmt.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
tools/btmgmt.c index renamed from tools/btmgmt.c +0 -0

7d908238156d..c5f55ae1290c 100644

tools/btmgmt.c +1 -0
@@ -2554,6 +2554,48 @@ static void cmd_privacy(int argc, char **argv)
        }
 }
 
+static void exp_offload_rsp(uint8_t status, uint16_t len, const void

*param,

Quoted 7 lines
tools/btmgmt.c +7 -0
+                                                       void
+*user_data) {
+       if (status != 0)
+               error("Set offload codec feature failed with status 0x%02x (%s)",
+                                               status, mgmt_errstr(status));
+       else
+               print("Offload codec feature successfully set");

tools/btmgmt.c static void cmd_privacy(int argc, char **argv) · line 2575

Quoted 10 lines
tools/btmgmt.c +10 -0
+
+       bt_shell_noninteractive_quit(EXIT_SUCCESS);
+}
+
+static void cmd_exp_offload_codecs(int argc, char **argv) {
+       /* a6695ace-ee7f-4fb9-881a-5fac66c629af */
+       static const uint8_t uuid[16] = {
+                               0xaf, 0x29, 0xc6, 0x66, 0xac, 0x5f, 0x1a, 0x88,
+                               0xb9, 0x4f, 0x7f, 0xee, 0xce, 0x5a, 0x69, 0xa6,
+       };

This also should be added to src/shared/util.c:uuid128_table so we are able to decode it when using the likes of btmon and bluetoothctl.

Quoted 34 lines
tools/btmgmt.c +22 -0
+       struct mgmt_cp_set_exp_feature cp;
+       uint8_t val;
+       uint16_t index;
+
+       if (parse_setting(argc, argv, &val) == false)
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
+
+       index = mgmt_index;
+       if (index == MGMT_INDEX_NONE)
+               index = 0;
+
+       memset(&cp, 0, sizeof(cp));
+       memcpy(cp.uuid, uuid, 16);
+       cp.action = val;
+
+       if (mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
+                       sizeof(cp), &cp, exp_offload_rsp, NULL, NULL) == 0) {
+               error("Unable to send offload codecs feature cmd");
+               return bt_shell_noninteractive_quit(EXIT_FAILURE);
+       }
+}
+
 static void class_rsp(uint16_t op, uint16_t id, uint8_t status, uint16_t len,
                                                        const void
 *param)  { @@ -5595,6 +5637,8 @@ static const struct bt_shell_menu

main_menu = {
cmd_exp_privacy, "Set LL privacy feature" },
{ "exp-quality", "<on/off>", cmd_exp_quality,
"Set bluetooth quality report feature" },

tools/btmgmt.c +3 -0
+       { "exp-offload",                "<on/off>",
+               cmd_exp_offload_codecs, "Toggle codec support support"
+ },
        { "read-sysconfig",     NULL,
                cmd_read_sysconfig,     "Read System Configuration"     },
Quoted 8 lines
Quoted 4 lines
        { "set-sysconfig",      "<-v|-h> [options...]",

--
2.17.1

--
Luiz Augusto von Dentz

Thanks,
Kiran