monitor: define manufacturer company IDs
PATCH 1/2 monitor: define manufacturer company IDs
From: Archie Pusaka <[email protected]>
Define company IDs to make it more readable.
Also remove an unnecessary if that could cause uninitialized variable warning.
---
monitor/packet.c | 51 +++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 22 deletions(-)
monitor/packet.c +29 -22
@@ -100,14 +100,21 @@#define COLOR_PHY_PACKET COLOR_BLUE -#define UNKNOWN_MANUFACTURER 0xffff +#define COMPANY_ID_INTEL 0x0002 +#define COMPANY_ID_BROADCOM 0x000F +#define COMPANY_ID_QUALCOMM 0x001D +#define COMPANY_ID_MEDIATEK 0x0046 +#define COMPANY_ID_APPLE 0x004C +#define COMPANY_ID_REALTEK 0x005D +#define COMPANY_ID_LINUX 0x05F1 +#define COMPANY_ID_UNKNOWN 0xFFFFstatic time_t time_offset = ((time_t) -1 );static int priority_level =BTSNOOP_PRIORITY_DEBUG ;static unsigned long filter_mask =0 ;static bool index_filter = false;static uint16_t index_current =0 ; -static uint16_t fallback_manufacturer =UNKNOWN_MANUFACTURER ; +static uint16_t fallback_manufacturer =COMPANY_ID_UNKNOWN ;#define CTRL_RAW 0x0000#define CTRL_USER 0x0001
@@ -3487,7 +3494,7 @@ static void print_manufacturer_data(const void *data, uint8_t data_len)packet_print_company ("Company" , company);switch (company) { -case 76 : +case COMPANY_ID_APPLE :case 19456 :print_manufacturer_apple (data +2 , data_len -2 );break ;
@@ -4446,7 +4453,7 @@ void packet_monitor(struct timeval *tv, struct ucred *cred, index_list[index].manufacturer = manufacturer;switch (manufacturer) { -case 2 : +case COMPANY_ID_INTEL :/* * Intel controllers that support the * Microsoft vendor extension are using
@@ -4454,7 +4461,7 @@ void packet_monitor(struct timeval *tv, struct ucred *cred,*/ index_list[index].msft_opcode =0xFC1E ;break ; -case 29 : +case COMPANY_ID_QUALCOMM :/* * Qualcomm controllers that support the * Microsoft vendor extensions are using
@@ -4462,7 +4469,7 @@ void packet_monitor(struct timeval *tv, struct ucred *cred,*/ index_list[index].msft_opcode =0xFD70 ;break ; -case 70 : +case COMPANY_ID_MEDIATEK :/* * Mediatek controllers that support the * Microsoft vendor extensions are using
@@ -4470,7 +4477,7 @@ void packet_monitor(struct timeval *tv, struct ucred *cred,*/ index_list[index].msft_opcode =0xFD30 ;break ; -case 93 : +case COMPANY_ID_REALTEK :/* * Realtek controllers that support the * Microsoft vendor extensions are using
@@ -4478,7 +4485,7 @@ void packet_monitor(struct timeval *tv, struct ucred *cred,*/ index_list[index].msft_opcode =0xFCF0 ;break ; -case 1521 : +case COMPANY_ID_LINUX :/* * Emulator controllers use Linux Foundation as * manufacturer and support the
@@ -6528,7 +6535,7 @@ static void read_local_version_rsp(uint16_t index, const void *data,print_manufacturer (rsp->manufacturer);switch (manufacturer) { -case 15 : +case COMPANY_ID_BROADCOM :print_manufacturer_broadcom (rsp->lmp_subver, rsp->hci_rev);break ; }
@@ -10900,11 +10907,11 @@ static const char *current_vendor_str(uint16_t ocf)return "Microsoft" ;switch (manufacturer) { -case 2 : +case COMPANY_ID_INTEL :return "Intel" ; -case 15 : +case COMPANY_ID_BROADCOM :return "Broadcom" ; -case 93 : +case COMPANY_ID_REALTEK :return "Realtek" ; }
@@ -10928,9 +10935,9 @@ static const struct vendor_ocf *current_vendor_ocf(uint16_t ocf)return msft_vendor_ocf ();switch (manufacturer) { -case 2 : +case COMPANY_ID_INTEL :return intel_vendor_ocf (ocf); -case 15 : +case COMPANY_ID_BROADCOM :return broadcom_vendor_ocf (ocf); }
@@ -10952,9 +10959,9 @@ static const struct vendor_evt *current_vendor_evt(const void *data, manufacturer = fallback_manufacturer;switch (manufacturer) { -case 2 : +case COMPANY_ID_INTEL :return intel_vendor_evt (data, consumed_size); -case 15 : +case COMPANY_ID_BROADCOM :return broadcom_vendor_evt (evt); }
@@ -10971,11 +10978,11 @@ static const char *current_vendor_evt_str(void) manufacturer = fallback_manufacturer;switch (manufacturer) { -case 2 : +case COMPANY_ID_INTEL :return "Intel" ; -case 15 : +case COMPANY_ID_BROADCOM :return "Broadcom" ; -case 93 : +case COMPANY_ID_REALTEK :return "Realtek" ; }
@@ -11116,7 +11123,7 @@ static void remote_version_complete_evt(struct timeval *tv, uint16_t index,print_manufacturer (evt->manufacturer);switch (le16_to_cpu (evt->manufacturer)) { -case 15 : +case COMPANY_ID_BROADCOM :print_manufacturer_broadcom (evt->lmp_subver,0xffff );break ; }
@@ -13808,7 +13815,7 @@ void packet_vendor_diag(struct timeval *tv, uint16_t index, "Vendor Diagnostic", NULL, extra_str);switch (manufacturer) { -case 15 : +case COMPANY_ID_BROADCOM :broadcom_lm_diag (data, size);break ;default :
@@ -16161,7 +16168,7 @@ static void mgmt_print_system_config_tlv(void *data, void *user_data) value =get_u8 (entry->value); else if (entry->length == 2) value =get_le16 (entry->value); - else if (entry->length == 4) + else value =get_le32 (entry->value);print_field ("%s: %u" , desc, value); }else {
Signature · 1 line
2.54.0.rc1.513.gad8abe7a5a-goog
PATCH 2/2 monitor: Set msft_opcode on read_local_version_rsp
From: Archie Pusaka <[email protected]>
Aside from INDEX_INFO, we can also receive manufacturer company ID when receiving read_local_version_rsp, so we should also try setting the msft_opcode there.
---
monitor/packet.c | 68 +++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 44 deletions(-)
monitor/packet.c +24 -44
@@ -4359,6 +4359,24 @@ static int addr2str(const uint8_t *addr, char *str) addr[5], addr[4], addr[3], addr[2], addr[1], addr[0]); } +static int get_msft_opcode (uint16_t manufacturer) { +switch (manufacturer) { +case COMPANY_ID_INTEL : +return 0xFC1E ; +case COMPANY_ID_QUALCOMM : +return 0xFD70 ; +case COMPANY_ID_MEDIATEK : +return 0xFD30 ; +case COMPANY_ID_REALTEK : +return 0xFCF0 ; +case COMPANY_ID_LINUX : +return 0xFC1E ; +default : +return BT_HCI_CMD_NOP ; + } + +} +void packet_monitor (struct timeval *tv,struct ucred *cred,uint16_t index,uint16_t opcode,const void *data,uint16_t size)
@@ -4451,50 +4469,8 @@ void packet_monitor(struct timeval *tv, struct ucred *cred,if (index <MAX_INDEX ) {memcpy (index_list[index].bdaddr, ii->bdaddr,6 ); index_list[index].manufacturer = manufacturer; - -switch (manufacturer) { -case COMPANY_ID_INTEL : -/* -* Intel controllers that support the -* Microsoft vendor extension are using -* 0xFC1E for VsMsftOpCode. -*/ - index_list[index].msft_opcode =0xFC1E ; -break ; -case COMPANY_ID_QUALCOMM : -/* -* Qualcomm controllers that support the -* Microsoft vendor extensions are using -* 0xFD70 for VsMsftOpCode. -*/ - index_list[index].msft_opcode =0xFD70 ; -break ; -case COMPANY_ID_MEDIATEK : -/* -* Mediatek controllers that support the -* Microsoft vendor extensions are using -* 0xFD30 for VsMsftOpCode. -*/ - index_list[index].msft_opcode =0xFD30 ; -break ; -case COMPANY_ID_REALTEK : -/* -* Realtek controllers that support the -* Microsoft vendor extensions are using -* 0xFCF0 for VsMsftOpCode. -*/ - index_list[index].msft_opcode =0xFCF0 ; -break ; -case COMPANY_ID_LINUX : -/* -* Emulator controllers use Linux Foundation as -* manufacturer and support the -* Microsoft vendor extensions using -* 0xFC1E for VsMsftOpCode. -*/ - index_list[index].msft_opcode =0xFC1E ; -break ; - } + index_list[index].msft_opcode = +get_msft_opcode (manufacturer); }addr2str (ii->bdaddr, str);
@@ -6530,6 +6506,10 @@ static void read_local_version_rsp(uint16_t index, const void *data, } index_list[index_current].manufacturer = manufacturer; +if (index_list[index_current].msft_opcode ==BT_HCI_CMD_NOP ) { + index_list[index_current].msft_opcode = +get_msft_opcode (manufacturer); + } }print_manufacturer (rsp->manufacturer);
Signature · 1 line
2.54.0.rc1.513.gad8abe7a5a-goog
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=1081093
---Test result---
Test Summary:
CheckPatch FAIL 1.22 seconds GitLint PASS 0.54 seconds BuildEll PASS 17.61 seconds BluezMake PASS 603.42 seconds MakeCheck PASS 18.55 seconds MakeDistcheck PASS 220.26 seconds CheckValgrind PASS 273.63 seconds CheckSmatch WARNING 305.22 seconds bluezmakeextell PASS 166.13 seconds IncrementalBuild FAIL 0.25 seconds ScanBuild PASS 902.35 seconds
Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[Bluez,2/2] monitor: Set msft_opcode on read_local_version_rsp ERROR:OPEN_BRACE: open brace '{' following function definitions go on the next line #108: FILE: monitor/packet.c:4362:
+static int get_msft_opcode(uint16_t manufacturer) {
/github/workspace/src/patch/14524190.patch total: 1 errors, 0 warnings, 86 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/patch/14524190.patch 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: CheckSmatch - WARNING
Desc: Run smatch tool with source
Output:monitor/packet.c:2000:26: warning: Variable length array is used.monitor/packet.c: note: in included file:monitor/bt.h:3866:52: warning: array of flexible structuresmonitor/bt.h:3854:40: warning: array of flexible structuresmonitor/packet.c:2000:26: warning: Variable length array is used.monitor/packet.c: note: in included file:monitor/bt.h:3866:52: warning: array of flexible structuresmonitor/bt.h:3854:40: warning: array of flexible structures
##############################
Test: IncrementalBuild - FAIL
Desc: Incremental build with the patches in the series
Output:
fatal: previous rebase directory .git/rebase-apply still exists but mbox given.
https://github.com/bluez/bluez/pull/2031
---
Regards,
Linux Bluetooth
This series was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <[email protected]>:
Hello:
This series was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <[email protected]>:
Quoted 8 lines · On Tue, 14 Apr 2026 19:11:10 +0800 you wrote:
From: Archie Pusaka <[email protected]>
Define company IDs to make it more readable.
Also remove an unnecessary if that could cause uninitialized variable warning.
---[...]
Here is the summary with links:
- [Bluez,1/2] monitor: define manufacturer company IDs
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=babc5699226b - [Bluez,2/2] monitor: Set msft_opcode on read_local_version_rsp https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=510623fb53b5
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html