* [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification
@ 2026-01-27 17:38 Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 02/13] doc/qualification: Add PICS and howto for the AVCTP qualification Frédéric Danis
` (13 more replies)
0 siblings, 14 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/a2dp-pics.rst | 904 ++++++++++++++++++++++++++++++++
doc/qualification/a2dp-pts.rst | 273 ++++++++++
2 files changed, 1177 insertions(+)
create mode 100644 doc/qualification/a2dp-pics.rst
create mode 100644 doc/qualification/a2dp-pts.rst
diff --git a/doc/qualification/a2dp-pics.rst b/doc/qualification/a2dp-pics.rst
new file mode 100644
index 000000000..12692901f
--- /dev/null
+++ b/doc/qualification/a2dp-pics.rst
@@ -0,0 +1,904 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+===================================
+Advanced Audio Distribution Profile
+===================================
+(TCRL 2023-1, A2DP.ICS.p16ed3)
+
+Version
+=======
+**Table 2a: A2DP SRC X.Y Versions**
+
+Prerequisite: A2DP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_2a_2 | | A2DP 1.2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2a_3 | x | A2DP 1.3 Withdrawn (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2a_4 | | A2DP 1.4 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support one and only one.
+- C.2: Can only be supported with an active X.Y.Z version after Deprecation.
+ Deprecated 2021-02-01. Withdrawn 2024-02-01.
+
+Version
+=======
+**Table 2b: A2DP SRC X.Y.Z Versions**
+
+Prerequisite: A2DP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_2b_2 | x | A2DP 1.3.2 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory IF A2DP 2a/3 "A2DP 1.3", otherwise Excluded.
+
+Version
+=======
+**Table 7a: A2DP SNK X.Y Versions**
+
+Prerequisite: A2DP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_7a_2 | | A2DP 1.2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_7a_3 | x | A2DP 1.3 Withdrawn (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_7a_4 | | A2DP 1.4 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support one and only one.
+- C.2: Can only be supported with an active X.Y.Z version after Deprecation.
+ Deprecated 2021-02-01. Withdrawn 2024-02-01.
+
+Version
+=======
+**Table 7b: A2DP SNK X.Y.Z Versions**
+
+Prerequisite: A2DP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_7b_2 | x | A2DP 1.3.2 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory IF A2DP 7a/3 "A2DP 1.3", otherwise Excluded.
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_1_1 | x | Source (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_1_2 | x | Sink (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one.
+
+Source Features
+===============
+**Table 2: A2DP SRC Features**
+
+Prerequisite: A2DP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_2_1 | x | Initiate Connection Establishment (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_2 | x | Accept Connection Establishment (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_3 | x | Initiate Start Streaming (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_4 | x | Accept Start Streaming (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_5 | x | Send Audio Stream (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_6 | x | Initiate Connection Release (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_7 | x | Accept Connection Release (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_8 | | Initiate Suspend (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_9 | | Accept Suspend (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_10 | x | SBC Encoder (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_10a | | Encode and Forward Audio Stream (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_11 | | SBC Configurations in 16 kHz sampling |
+| | | frequency (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_12 | | SBC Configurations in 32 kHz sampling |
+| | | frequency (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_13 | x | SBC Configurations in 44.1 kHz sampling |
+| | | frequency (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_14 | | SBC Configurations in 48 kHz sampling |
+| | | frequency (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_15 | | Delay Reporting (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_16 | | SRC video playback via Bluetooth VDP (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_2_17 | | SRC video playback on a local video display |
+| | | (C.3) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one.
+- C.2: Mandatory IF A2DP 2/16 "SRC video playback via Bluetooth VDP" OR A2DP
+ 2/17 "SRC video playback on a local video display", otherwise Excluded.
+- C.3: Excluded IF A2DP 2a/2 "A2DP 1.2", otherwise Optional.
+
+SRC Implementation
+==================
+**Table 3: Supported Codec Interoperability Requirements in SRC**
+
+Prerequisite: A2DP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3_1 | x | SBC encoder (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3_1a | | Encode and Forward SBC Audio Stream (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3_4 | | Encode and forward MPEG-1,2 Audio Stream (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3_6 | | Encode and forward MPEG-2,4 AAC Audio Stream |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3_8 | | Encode and forward ATRAC family Audio Stream |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3_10 | | Encode and forward MPEG-D USAC Audio Stream |
+| | | (C.6) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.6: Excluded IF A2DP 2a/2 "A2DP 1.2" OR A2DP 2a/3 "A2DP 1.3", otherwise
+ Optional.
+
+SRC Implementation
+==================
+**Table 3a: Supported Codec Feature Interoperability Requirements in SRC**
+
+Prerequisite: A2DP 3/1 "SBC encoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3a_1 | x | Channel Mode - Mono (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_2 | x | Channel Mode - Dual Channel (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_3 | | Channel Mode - Stereo (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_4 | | Channel Mode - Joint Stereo (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_5 | x | Block Length 4 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_6 | x | Block Length 8 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_7 | x | Block Length 12 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_8 | x | Block Length 16 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_9 | | Subbands - 4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_10 | x | Subbands - 8 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_11 | | Allocation - SNR (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3a_12 | x | Allocation - Loudness (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one.
+
+SRC Implementation
+==================
+**Table 3g: Supported MPEG-2,4 AAC Object Type Interoperability Requirements
+in SRC**
+
+Prerequisite: A2DP 3/6 "Encode and forward MPEG-2,4 AAC Audio Stream"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3g_1 | | MPEG-2 AAC LC (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3g_2 | | MPEG-4 AAC LC (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3g_3 | | MPEG-4 AAC LTP (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3g_4 | | MPEG-4 AAC scalable (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3g_5 | | MPEG-4 HE-AAC (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3g_6 | | MPEG-4 HE-AACv2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3g_7 | | MPEG-4 AAC-ELDv2 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Excluded IF A2DP 2a/2 "A2DP 1.2" OR A2DP 2a/3 "A2DP 1.3", otherwise
+ Optional.
+
+SRC Implementation
+==================
+**Table 3h: Supported MPEG-2,4 AAC Channel Interoperability Requirements in
+SRC**
+
+Prerequisite: A2DP 3/6 "Encode and forward MPEG-2,4 AAC Audio Stream"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3h_1 | | 1 Channel (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3h_2 | | 2 Channels (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3h_3 | | 6 (5.1) Channels (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3h_4 | | 8 (7.1) Channels (C.2) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one.
+- C.2: Excluded IF A2DP 2a/2 "A2DP 1.2" OR A2DP 2a/3 "A2DP 1.3", otherwise
+ Optional.
+
+SRC Implementation
+==================
+**Table 3i: Supported MPEG-2,4 AAC Sampling Frequency Interoperability
+Requirements in SRC**
+
+Prerequisite: A2DP 3/6 "Encode and forward MPEG-2,4 AAC Audio Stream"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3i_1 | | 8000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_2 | | 11025 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_3 | | 12000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_4 | | 16000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_5 | | 22050 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_6 | | 24000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_7 | | 32000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_8 | | 44100 Hz (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_9 | | 48000 Hz (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_10 | | 64000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_11 | | 88200 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3i_12 | | 96000 Hz (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory to support at least one.
+
+SRC Implementation
+==================
+**Table 3j: Supported MPEG-2,4 AAC Feature Interoperability Requirements in
+SRC**
+
+Prerequisite: A2DP 3/6 "Encode and forward MPEG-2,4 AAC Audio Stream"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3j_1 | | Variable Bit Rate (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3j_2 | | MPEG-D DRC (C.1) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Excluded IF A2DP 2a/2 "A2DP 1.2" OR A2DP 2a/3 "A2DP 1.3", otherwise
+ Optional IF A2DP 3g/2 "MPEG-4 AAC LC" OR A2DP 3g/3 "MPEG-4 AAC LTP" OR A2DP
+ 3g/4 "MPEG-4 AAC scalable" OR A2DP 3g/5 "MPEG-4 HE-AAC" OR A2DP 3g/6 "MPEG-4
+ HE-AACv2" OR A2DP 3g/7 "MPEG-4 AAC-ELDv2", otherwise Excluded.
+
+SRC Implementation
+==================
+**Table 3k: Supported MPEG-D USAC Channel Interoperability Requirements in
+SRC**
+
+Prerequisite: A2DP 3/10 "Encode and forward MPEG-D USAC Audio Stream"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3k_1 | | 1 Channel (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3k_2 | | 2 Channels (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one.
+
+SRC Implementation
+==================
+**Table 3l: Supported MPEG-D USAC Sampling Frequency Interoperability
+Requirements in SRC**
+
+Prerequisite: A2DP 3/10 "Encode and forward MPEG-D USAC Audio Stream"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3l_1 | | 7350 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_2 | | 8000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_3 | | 8820 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_4 | | 9600 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_5 | | 11025 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_6 | | 11760 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_7 | | 12000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_8 | | 12800 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_9 | | 14700 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_10 | | 16000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_11 | | 17640 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_12 | | 19200 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_13 | | 22050 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_14 | | 24000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_15 | | 29400 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_16 | | 32000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_17 | | 35280 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_18 | | 38400 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_19 | | 44100 Hz (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_20 | | 48000 Hz (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_21 | | 58800 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_22 | | 64000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_23 | | 70560 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_24 | | 76800 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_25 | | 88200 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3l_26 | | 96000 Hz (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory to support at least one.
+
+SRC Implementation
+==================
+**Table 3m: Supported MPEG-D USAC Feature Interoperability Requirements in
+SRC**
+
+Prerequisite: A2DP 3/10 "Encode and forward MPEG-D USAC Audio Stream"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_3m_1 | | Variable Bit Rate (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_3m_2 | | MPEG-D DRC (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+SRC Implementation
+==================
+**Table 8: SDP Attributes (Source)**
+
+Prerequisite: A2DP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_8_2 | x | ProtocolDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_8_3 | x | BluetoothProfileDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_8_4 | | Supported Features (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+SRC Implementation
+==================
+**Table 9: GAVDP Roles (Source)**
+
+Prerequisite: A2DP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_9_1 | x | Initiator (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_9_2 | x | Acceptor (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_9_3 | | Delay Reporting Initiator (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_9_4 | | Delay Reporting Acceptor (C.1) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- C.1: Excluded IF A2DP 2a/2 "A2DP 1.2", otherwise Optional.
+- C.2: Excluded for this Role. Note: It is not permitted to be a delay
+ reporting initiator for A2DP Source role.
+
+SRC Implementation
+==================
+**Table 11a: AVDTP Capabilities (Initiator, Source)**
+
+Prerequisite: A2DP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_11a_1 | x | Set configuration command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_11a_2 | | Reconfigure command (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+SRC Implementation
+==================
+**Table 11b: AVDTP Capabilities (Acceptor, Source)**
+
+Prerequisite: A2DP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_11b_1 | x | Set configuration response (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_11b_2 | | Reconfigure response (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Sink Features
+=============
+**Table 4: A2DP SNK Features**
+
+Prerequisite: A2DP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_4_1 | | Initiate Connection Establishment (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_2 | x | Accept Connection Establishment (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_3 | | Initiate Start Streaming (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_4 | x | Accept Start Streaming (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_5 | x | Receive Audio Stream (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_6 | | Initiate Connection Release (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_7 | x | Accept Connection Release (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_8 | | Initiate Suspend (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_9 | | Accept Suspend (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_10 | x | SBC Decoder (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_10a | | Receive and Decode Audio Stream (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_11 | | SBC Configurations in 16 kHz sampling |
+| | | frequency (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_12 | | SBC Configurations in 32 kHz sampling |
+| | | frequency (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_13 | x | SBC Configurations in 44.1 kHz sampling |
+| | | frequency (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_14 | x | SBC Configurations in 48 kHz sampling |
+| | | frequency (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_4_15 | x | Delay Reporting (C.1) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Excluded IF A2DP 7a/2 "A2DP 1.2", otherwise Mandatory.
+
+SNK Implementation
+==================
+**Table 5: Supported Codec Interoperability Requirements in SNK**
+
+Prerequisite: A2DP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5_1 | x | SBC Decoder (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5_3 | | MPEG-1,2 Audio decoder (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5_4 | | MPEG-2,4 AAC decoder (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5_5 | | ATRAC family decoder (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5_6 | | MPEG-D USAC decoder (C.2) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.2: Excluded IF A2DP 7a/2 "A2DP 1.2" OR A2DP 7a/3 "A2DP 1.3", otherwise
+ Optional.
+
+SNK Implementation
+==================
+**Table 5a: Supported Codec Feature Interoperability Requirements in SNK**
+
+Prerequisite: A2DP 5/1 "SBC Decoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5a_1 | x | Channel Mode - Mono (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_2 | x | Channel Mode - Dual Channel (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_3 | x | Channel Mode - Stereo (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_4 | x | Channel Mode - Joint Stereo (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_5 | x | Block Length 4 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_6 | x | Block Length 8 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_7 | x | Block Length 12 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_8 | x | Block Length 16 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_9 | x | Subbands - 4 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_10 | x | Subbands - 8 (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_11 | x | Allocation - SNR (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5a_12 | x | Allocation - Loudness (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+SNK Implementation
+==================
+**Table 5g: Supported MPEG-2,4 AAC Object Type Interoperability Requirements
+in SNK**
+
+Prerequisite: A2DP 5/4 "MPEG-2,4 AAC decoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5g_1 | | MPEG-2 AAC LC (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5g_2 | | MPEG-4 AAC LC (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5g_3 | | MPEG-4 AAC LTP (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5g_4 | | MPEG-4 AAC scalable (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5g_5 | | MPEG-4 HE-AAC (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5g_6 | | MPEG-4 HE-AACv2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5g_7 | | MPEG-4 AAC-ELDv2 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Excluded IF A2DP 7a/2 "A2DP 1.2" OR A2DP 7a/3 "A2DP 1.3", otherwise
+ Optional.
+
+SNK Implementation
+==================
+**Table 5h: Supported MPEG-2,4 AAC Channel Interoperability Requirements in
+SNK**
+
+Prerequisite: A2DP 5/4 "MPEG-2,4 AAC decoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5h_1 | | 1 Channel (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5h_2 | | 2 Channels (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5h_3 | | 6 (5.1) Channels (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5h_4 | | 8 (7.1) Channels (C.1) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- C.1: Excluded IF A2DP 7a/2 "A2DP 1.2" OR A2DP 7a/3 "A2DP 1.3", otherwise
+ Optional.
+
+SNK Implementation
+==================
+**Table 5i: Supported MPEG-2,4 AAC Sampling Frequency Interoperability
+Requirements in SNK**
+
+Prerequisite: A2DP 5/4 "MPEG-2,4 AAC decoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5i_1 | | 8000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_2 | | 11025 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_3 | | 12000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_4 | | 16000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_5 | | 22050 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_6 | | 24000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_7 | | 32000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_8 | | 44100 Hz (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_9 | | 48000 Hz (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_10 | | 64000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_11 | | 88200 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5i_12 | | 96000 Hz (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+SNK Implementation
+==================
+**Table 5j: Supported MPEG-2,4 AAC Feature Interoperability Requirements in
+SNK**
+
+Prerequisite: A2DP 5/4 "MPEG-2,4 AAC decoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5j_1 | | Variable Bit Rate (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5j_2 | | MPEG-D DRC (C.1) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- C.1: Excluded IF A2DP 7a/2 "A2DP 1.2" OR A2DP 7a/3 "A2DP 1.3", otherwise
+ Optional IF A2DP 5g/2 "MPEG-4 AAC LC" OR A2DP 5g/3 "MPEG-4 AAC LTP" OR A2DP
+ 5g/4 "MPEG-4 AAC scalable" OR A2DP 5g/5 "MPEG-4 HE-AAC" OR A2DP 5g/6 "MPEG-4
+ HE-AACv2" OR A2DP 5g/7 "MPEG-4 AAC-ELDv2", otherwise Excluded.
+
+SNK Implementation
+==================
+**Table 5k: Supported MPEG-D USAC Channel Interoperability Requirements in
+SNK**
+
+Prerequisite: A2DP 5/6 "MPEG-D USAC decoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5k_1 | | 1 Channel (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5k_2 | | 2 Channels (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+SNK Implementation
+==================
+**Table 5l: Supported MPEG-D USAC Sampling Frequency Interoperability
+Requirements in SNK**
+
+Prerequisite: A2DP 5/6 "MPEG-D USAC decoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5l_1 | | 7350 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_2 | | 8000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_3 | | 8820 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_4 | | 9600 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_5 | | 11025 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_6 | | 11760 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_7 | | 12000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_8 | | 12800 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_9 | | 14700 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_10 | | 16000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_11 | | 17640 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_12 | | 19200 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_13 | | 22050 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_14 | | 24000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_15 | | 29400 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_16 | | 32000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_17 | | 35280 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_18 | | 38400 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_19 | | 44100 Hz (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_20 | | 48000 Hz (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_21 | | 58800 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_22 | | 64000 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_23 | | 70560 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_24 | | 76800 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_25 | | 88200 Hz (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5l_26 | | 96000 Hz (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+SNK Implementation
+==================
+**Table 5m: Supported MPEG-D USAC Feature Interoperability Requirements in
+SNK**
+
+Prerequisite: A2DP 5/6 "MPEG-D USAC decoder"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_5m_1 | | Variable Bit Rate (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_5m_2 | | MPEG-D DRC (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+SNK Implementation
+==================
+**Table 12: SDP Attributes (Sink)**
+
+Prerequisite: A2DP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_12_2 | x | ProtocolDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_12_3 | x | BluetoothProfileDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_12_4 | | Supported Features (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+SNK Implementation
+==================
+**Table 13: GAVDP Roles (Sink)**
+
+Prerequisite: A2DP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_13_1 | | Initiator (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_13_2 | x | Acceptor (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_13_3 | x | Delay Reporting Initiator (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_13_4 | | Delay Reporting Acceptor (C.2) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Excluded IF A2DP 7a/2 "A2DP 1.2", otherwise Mandatory.
+- C.2: Excluded for this Role. Note: It is not permitted to be a delay
+ reporting acceptor for A2DP Sink role.
+
+SNK Implementation
+==================
+**Table 15a: AVDTP Capabilities (Initiator, Sink)**
+
+Prerequisite: A2DP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_15a_1 | | Set configuration command (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_15a_2 | | Reconfigure command (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory IF A2DP 13/1 "Initiator", otherwise not defined.
+
+SNK Implementation
+==================
+**Table 15b: AVDTP Capabilities (Acceptor, Sink)**
+
+Prerequisite: A2DP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_A2DP_15b_1 | x | Set configuration response (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_A2DP_15b_2 | | Reconfigure response (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
diff --git a/doc/qualification/a2dp-pts.rst b/doc/qualification/a2dp-pts.rst
new file mode 100644
index 000000000..43cedb09f
--- /dev/null
+++ b/doc/qualification/a2dp-pts.rst
@@ -0,0 +1,273 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+=================
+A2DP test results
+=================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+- Update "TSPX_player_feature_bitmask" in IXIT to "1FFAFFBBF3BFF9040800000000000000"
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++==============================+==========+=========+=======+=========================================================================+
+| A2DP/SNK/AS/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-03-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 195 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-08-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 196 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-10-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 193 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-11-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 197 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-12-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 199 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-13-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 201 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-14-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 203 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-15-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 205 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-16-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 221 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/AVP/BI-20-C | PASS | 6.1 | 5.71 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avtest --reject setconf --reject-code 194 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avtest' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/CC/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/CC/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/CC/BV-05-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/CC/BV-06-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/CC/BV-07-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/CC/BV-08-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/REL/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/SDP/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/SET/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/SET/BV-03-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/SET/BV-05-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - this test requests a RF shielded box |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SNK/SYN/BV-01-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/AS/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Sometimes inconclusive, retry |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/AS/BI-01-I | PASS | 6.1 | 5.69 | Sometimes inconclusive, retry |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/CC/BV-09-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/REL/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/REL/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/SDP/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/SET/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | - Start Lollypop and play a file |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/SET/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/SET/BV-03-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/SET/BV-04-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/SET/BV-05-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| A2DP/SRC/SET/BV-06-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/CL/A2DP-SRC/SFC/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 02/13] doc/qualification: Add PICS and howto for the AVCTP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 03/13] doc/qualification: Add PICS and howto for the AVDTP qualification Frédéric Danis
` (12 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/avctp-pics.rst | 116 +++++++++++++++++++++++++++++++
doc/qualification/avctp-pts.rst | 49 +++++++++++++
2 files changed, 165 insertions(+)
create mode 100644 doc/qualification/avctp-pics.rst
create mode 100644 doc/qualification/avctp-pts.rst
diff --git a/doc/qualification/avctp-pics.rst b/doc/qualification/avctp-pics.rst
new file mode 100644
index 000000000..6c08d692e
--- /dev/null
+++ b/doc/qualification/avctp-pics.rst
@@ -0,0 +1,116 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+======================================
+Audio/Video Control Transport Protocol
+======================================
+(TCRL 2023-1, AVCTP.ICS.1.4.2ed4)
+
+Versions
+========
+**Table 0: X.Y Versions**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVCTP_0_4 | x | AVCTP 1.4 (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVCTP_1_1 | x | Controller (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_1_2 | x | Target (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one.
+
+Controller Capabilities
+=======================
+**Table 2: Controller Features**
+
+Prerequisite: AVCTP 1/1 "Controller"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVCTP_2_1 | | Message fragmentation (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_2 | x | Transaction label management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_3 | x | Packet type field management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_4 | x | Message type field management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_5 | x | PID field management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_6 | x | IPID field management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_7 | x | Message information management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_8 | x | Event registration for message reception (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_9 | x | Event registration for connection request (O)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_10 | x | Event registration for disconnection request |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_11 | x | Connect request (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_12 | x | Disconnect request (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_13 | x | Send message (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_2_14 | | Support for multiple AVCTP channel |
+| | | establishment requests (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Target Capabilities
+===================
+**Table 3: Target Features**
+
+Prerequisite: AVCTP 1/2 "Target"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVCTP_3_1 | | Message fragmentation (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_2 | x | Transaction label management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_3 | x | Packet type field management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_4 | x | Message type field management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_5 | x | PID field management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_6 | x | IPID field management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_7 | x | Message information management (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_8 | x | Event registration for message reception (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_9 | x | Event registration for connection request (O)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_10 | x | Event registration for disconnection request |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_11 | x | Connect request (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_12 | x | Disconnect request (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVCTP_3_13 | x | Send message (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
diff --git a/doc/qualification/avctp-pts.rst b/doc/qualification/avctp-pts.rst
new file mode 100644
index 000000000..cb47eba0b
--- /dev/null
+++ b/doc/qualification/avctp-pts.rst
@@ -0,0 +1,49 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+==================
+AVCTP test results
+==================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++----------------------+----------+---------+-------+-----------------------+
+| Test name | Result | Kernel | BlueZ | |
++======================+==========+=========+=======+=======================+
+| AVCTP/CT/CCM/BV-01-C | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/CT/CCM/BV-02-C | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/CT/CCM/BV-03-C | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/CT/CCM/BV-04-C | | | | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/CT/NFR/BV-01-C | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/CT/NFR/BV-04-C | | | | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/TG/CCM/BV-01-C | | | | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/TG/CCM/BV-02-C | | | | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/TG/CCM/BV-03-C | | | | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/TG/CCM/BV-04-C | | | | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/TG/NFR/BI-01-C | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/TG/NFR/BV-02-C | | | | |
++----------------------+----------+---------+-------+-----------------------+
+| AVCTP/TG/NFR/BV-03-C | | | | |
++----------------------+----------+---------+-------+-----------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 03/13] doc/qualification: Add PICS and howto for the AVDTP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 02/13] doc/qualification: Add PICS and howto for the AVCTP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 04/13] doc/qualification: Add PICS and howto for the AVRCP qualification Frédéric Danis
` (11 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/avdtp-pics.rst | 638 +++++++++++++++++++++++++++++++
doc/qualification/avdtp-pts.rst | 405 ++++++++++++++++++++
2 files changed, 1043 insertions(+)
create mode 100644 doc/qualification/avdtp-pics.rst
create mode 100644 doc/qualification/avdtp-pts.rst
diff --git a/doc/qualification/avdtp-pics.rst b/doc/qualification/avdtp-pics.rst
new file mode 100644
index 000000000..d31872cc1
--- /dev/null
+++ b/doc/qualification/avdtp-pics.rst
@@ -0,0 +1,638 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+===========================================
+Audio/Video Distribution Transport Protocol
+===========================================
+(TCRL 2023-1, AVDTP.ICS.1.3.4ed3)
+
+Version and Role Declarations
+=============================
+**Table 1: Role Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_1_1 | x | Source (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_1_2 | x | Sink (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_1_3 | x | Initiator (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_1_4 | x | Acceptor (C.2) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one of AVDTP 1/1 "Source" OR AVDTP 1/2
+ "Sink".
+- C.2: Mandatory to support at least one of AVDTP 1/3 "Initiator" OR AVDTP 1/4
+ "Acceptor". Note: It is within the scope of profiles using the AVDTP
+ specification to mandate Initiator/Acceptor capabilities.
+
+Source Capabilities
+===================
+**Table 14a: AVDTP Source - Major Versions (X.Y)**
+
+Prerequisite: AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_14a_1 | | AVDTP 1.0 Withdrawn (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_14a_2 | | AVDTP 1.2 Withdrawn (C.1, C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_14a_3 | x | AVDTP 1.3 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support one and only one of AVDTP 14a/1 "AVDTP 1.0" OR
+ AVDTP 14a/2 "AVDTP 1.2" OR AVDTP 14a/3 "AVDTP 1.3".
+- C.2: Excluded after the date of deprecation. Deprecated 2022-02-01.
+ Withdrawn 2023-02-01.
+- C.3: Excluded after the date of deprecation. Deprecated 2023-02-01.
+ Withdrawn 2024-02-01.
+
+Source Capabilities
+===================
+**Table 14: Source Capabilities**
+
+Prerequisite: AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_14_1 | x | Basic transport service support (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_14_2 | | Reporting service support (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_14_3 | | Recovery service support (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_14_4 | | Multiplexing service support (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_14_5 | | Robust header compression service support (O)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_14_6 | | Delay Reporting (C.1) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Optional IF AVDTP 14a/3 "AVDTP 1.3" is supported, otherwise Excluded.
+
+Source Capabilities
+===================
+**Table 2: Signaling Message Format (Initiator, Source)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_2_1 | x | Transaction Label (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_2_2 | x | Packet type (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_2_3 | x | Message type (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_2_4 | x | Signal identifier (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Source Capabilities
+===================
+**Table 3: Signaling Channel Establishment/Disconnection (Initiator, Source)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_3_1 | x | Establish signaling channel (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_3_2 | x | Disconnect signaling channel (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Source Capabilities
+===================
+**Table 4: Stream Discovery and Configuration (Initiator, Source)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_4_1 | x | Stream discover command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4_2 | x | Stream get capabilities command (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4_3 | x | Set configuration command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4_4 | x | Get configuration command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4_5 | | Reconfigure command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4_6 | x | Stream get all capabilities command (C.1) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Optional IF AVDTP 14a/3 "AVDTP 1.3" is supported, otherwise Excluded.
+- C.2: Mandatory IF AVDTP 4/6 "Stream get all capabilities command" is
+ supported, otherwise Optional.
+
+Source Capabilities
+===================
+**Table 5: Stream Establishment, Suspension and Release (Initiator, Source)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_5_1 | x | Open stream command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_5_2 | x | Start stream command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_5_3 | x | Close stream command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_5_4 | x | Suspend command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_5_5 | x | Abort stream command (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Source Capabilities
+===================
+**Table 6: Security Signaling (Initiator, Source)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_6_1 | | Content security control command (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Source Capabilities
+===================
+**Table 7: Message Fragmentation (Initiator, Source)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_7_1 | x | Signaling message fragmentation (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Source Capabilities
+===================
+**Table 8: Signaling Message Format (Acceptor, Source)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_8_1 | x | Transaction Label (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_8_2 | x | Packet type (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_8_3 | x | Message type (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_8_4 | x | Signal identifier (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Source Capabilities
+===================
+**Table 9: Signaling Channel Establishment/Disconnection (Acceptor, Source)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_9_1 | x | Establish signaling channel (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_9_2 | x | Disconnect signaling channel (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Source Capabilities
+===================
+**Table 10: Stream Discovery and Configuration (Acceptor, Source)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_10_1 | x | Stream discover response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10_2 | x | Stream get capabilities response (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10_3 | x | Set configuration response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10_4 | x | Get configuration response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10_5 | | Reconfigure response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10_6 | x | Stream get all capabilities response (C.1) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Optional IF AVDTP 14a/3 "AVDTP 1.3" is supported, otherwise Excluded.
+- C.2: Mandatory IF AVDTP 10/6 "Stream get all capabilities response" is
+ supported, otherwise Optional.
+
+Source Capabilities
+===================
+**Table 11: Stream Establishment, Suspension and Release (Acceptor, Source)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_11_1 | x | Open stream response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11_2 | x | Start stream response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11_3 | x | Close stream response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11_4 | x | Suspend response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11_5 | x | Abort stream response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11_6 | x | General reject message (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Source Capabilities
+===================
+**Table 12: Security Signaling (Acceptor, Source)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_12_1 | | Content security control response (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Source Capabilities
+===================
+**Table 13: Message Fragmentation (Acceptor, Source)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/1 "Source"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_13_1 | x | Signaling message fragmentation (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Sink Capabilities
+=================
+**Table 15a: AVDTP Sink - Major Versions (X.Y)**
+
+Prerequisite: AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_15a_1 | | AVDTP 1.0 Withdrawn (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_15a_2 | | AVDTP 1.2 Withdrawn (C.1, C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_15a_3 | x | AVDTP 1.3 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support one and only one of AVDTP 15a/1 "AVDTP 1.0" OR
+ AVDTP 15a/2 "AVDTP 1.2" OR AVDTP 15a/3 "AVDTP 1.3".
+- C.2: Excluded after the date of deprecation. Deprecated 2022-02-01.
+ Withdrawn 2023-02-01.
+- C.3: Excluded after the date of deprecation. Deprecated 2023-02-01.
+ Withdrawn 2024-02-01.
+
+Sink Capabilities
+=================
+**Table 15: Sink Capabilities**
+
+Prerequisite: AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_15_1 | x | Basic transport service support (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_15_2 | | Reporting service support (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_15_3 | | Recovery service support (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_15_4 | | Multiplexing service support (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_15_5 | | Robust header compression service support (O)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_15_6 | | Delay Reporting (C.1) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Optional IF AVDTP 15a/3 "AVDTP 1.3" is supported, otherwise Excluded.
+
+Sink Capabilities
+=================
+**Table 2b: Signaling Message Format (Initiator, Sink)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_2b_1 | x | Transaction Label (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_2b_2 | x | Packet type (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_2b_3 | x | Message type (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_2b_4 | x | Signal identifier (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Sink Capabilities
+=================
+**Table 3b: Signaling Channel Establishment/Disconnection (Initiator, Sink)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_3b_1 | | Establish signaling channel (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_3b_2 | | Disconnect signaling channel (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Sink Capabilities
+=================
+**Table 4b: Stream Discovery and Configuration (Initiator, Sink)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_4b_1 | x | Stream discover command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4b_2 | x | Stream get capabilities command (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4b_3 | x | Set configuration command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4b_4 | | Get configuration command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4b_5 | | Reconfigure command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_4b_6 | x | Stream get all capabilities command (C.1) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Optional IF AVDTP 15a/3 "AVDTP 1.3" is supported, otherwise Excluded.
+- C.2: Mandatory IF AVDTP 4b/6 "Stream get all capabilities command" is
+ supported, otherwise Optional.
+
+Sink Capabilities
+=================
+**Table 5b: Stream Establishment, Suspension and Release (Initiator, Sink)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_5b_1 | x | Open stream command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_5b_2 | x | Start stream command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_5b_3 | x | Close stream command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_5b_4 | | Suspend command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_5b_5 | x | Abort stream command (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Sink Capabilities
+=================
+**Table 6b: Security Signaling (Initiator, Sink)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_6b_1 | | Content security control command (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Sink Capabilities
+=================
+**Table 7b: Message Fragmentation (Initiator, Sink)**
+
+Prerequisite: AVDTP 1/3 "Initiator" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_7b_1 | x | Signaling message fragmentation (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Sink Capabilities
+=================
+**Table 8b: Signaling Message Format (Acceptor, Sink)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_8b_1 | x | Transaction Label (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_8b_2 | x | Packet type (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_8b_3 | x | Message type (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_8b_4 | x | Signal identifier (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Sink Capabilities
+=================
+**Table 9b: Signaling Channel Establishment/Disconnection (Acceptor, Sink)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_9b_1 | | Establish signaling channel (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_9b_2 | | Disconnect signaling channel (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Sink Capabilities
+=================
+**Table 10b: Stream Discovery and Configuration (Acceptor, Sink)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_10b_1 | x | Stream discover response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10b_2 | x | Stream get capabilities response (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10b_3 | x | Set configuration response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10b_4 | | Get configuration response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10b_5 | | Reconfigure response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_10b_6 | x | Stream get all capabilities response (C.1) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Optional IF AVDTP 15a/3 "AVDTP 1.3" is supported, otherwise Excluded.
+- C.2: Mandatory IF AVDTP 10b/6 "Stream get all capabilities response" is
+ supported, otherwise Optional.
+
+Sink Capabilities
+=================
+**Table 11b: Stream Establishment, Suspension and Release (Acceptor, Sink)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_11b_1 | x | Open stream response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11b_2 | x | Start stream response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11b_3 | x | Close stream response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11b_4 | | Suspend response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11b_5 | x | Abort stream response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_11b_6 | x | General reject message (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Sink Capabilities
+=================
+**Table 12b: Security Signaling (Acceptor, Sink)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_12b_1 | | Content security control response (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Sink Capabilities
+=================
+**Table 13b: Message Fragmentation (Acceptor, Sink)**
+
+Prerequisite: AVDTP 1/4 "Acceptor" AND AVDTP 1/2 "Sink"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_13b_1 | x | Signaling message fragmentation (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Message Error Handling Capabilities
+===================================
+**Table 16: Message Error Handling Capabilities**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_16_1 | x | Reporting Capability Error (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_16_2 | | Reject Corrupted Messages (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_16_3 | x | General Reject Response Includes Signal ID |
+| | | (C.3) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory IF AVDTP 14a/2 "AVDTP 1.2" OR AVDTP 15a/2 "AVDTP 1.2" OR
+ AVDTP 14a/3 "AVDTP 1.3" OR AVDTP 15a/3 "AVDTP 1.3" is supported, otherwise
+ Optional.
+- C.2: Excluded IF AVDTP 16/3 "General Reject Response Includes Signal ID" is
+ supported, otherwise Optional.
+- C.3: Mandatory IF AVDTP 14a/3 "AVDTP 1.3" OR AVDTP 15a/3 "AVDTP 1.3" is
+ supported, otherwise Optional.
+
+Upper Tester Interface
+======================
+**Table 17: Upper Test Interface**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_17_1 | | Upper Tester Interface provided (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+L2CAP Capabilities
+==================
+**Table 18: L2CAP Capabilities**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVDTP_18_1 | | Enhanced Retransmission Mode preferred for |
+| | | signaling channel (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_18_2 | | Streaming Mode preferred for Media Transport |
+| | | channel (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVDTP_18_3 | | FCS Option (C.1) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory IF AVDTP 18/1 "Enhanced Retransmission Mode preferred for
+ signaling channel" is supported, otherwise Optional.
diff --git a/doc/qualification/avdtp-pts.rst b/doc/qualification/avdtp-pts.rst
new file mode 100644
index 000000000..4830e4529
--- /dev/null
+++ b/doc/qualification/avdtp-pts.rst
@@ -0,0 +1,405 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+==================
+AVDTP test results
+==================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+- Request avdtptest from bluez/android
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++===============================+==========+=========+=======+=========================================================================+
+| AVDTP/SNK/ACP/SIG/SMG/BV-06-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BV-08-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BV-10-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BV-16-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BV-18-C | PASS | 6.1 | 5.69 | Expect to hear sound |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BV-20-C | PASS | 6.1 | 5.69 | Expect to hear sound |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BV-24-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BV-26-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BI-05-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BI-08-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BI-17-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BI-20-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BI-23-C | PASS | 6.1 | 5.69 | Expect to hear sound |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BI-38-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/SIG/SMG/BI-33-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/TRA/BTR/BV-02-C | PASS | 6.1 | 5.69 | Expect to hear sound |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/ACP/TRA/BTR/BI-01-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SINK -l |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-05-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-07-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-09-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-15-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-19-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-25-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | - Remove BlueZ cache by running: |
+| | | | | |
+| | | | | - sudo rm /var/lib/bluetooth/<iut_bdaddr>/cache/<pts_bdaddr> |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-28-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | - Remove BlueZ cache by running: |
+| | | | | |
+| | | | | - sudo rm /var/lib/bluetooth/<iut_bdaddr>/cache/<pts_bdaddr> |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-31-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | - Remove BlueZ cache by running: |
+| | | | | |
+| | | | | - sudo rm /var/lib/bluetooth/<iut_bdaddr>/cache/<pts_bdaddr> |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BI-30-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | - Remove BlueZ cache by running: |
+| | | | | |
+| | | | | - sudo rm /var/lib/bluetooth/<iut_bdaddr>/cache/<pts_bdaddr> |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BI-35-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | - Remove BlueZ cache by running: |
+| | | | | |
+| | | | | - sudo rm /var/lib/bluetooth/<iut_bdaddr>/cache/<pts_bdaddr> |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BI-36-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | - Remove BlueZ cache by running: |
+| | | | | |
+| | | | | - sudo rm /var/lib/bluetooth/<iut_bdaddr>/cache/<pts_bdaddr> |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SNK/INT/SIG/SMG/BV-23-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On demand run: |
+| | | | | |
+| | | | | - avtest --send abort <BD_ADDR> |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-06-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-08-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-10-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-12-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-16-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-18-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop and open a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request play the file in Lollypop |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-20-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop and open a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request play the file in Lollypop |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-22-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop and open a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request play the file in Lollypop |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-24-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BV-26-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-05-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-08-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-11-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-17-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-20-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-23-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop and open a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request play the file in Lollypop |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-26-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-33-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/SIG/SMG/BI-38-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-05-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-07-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-09-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-15-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-17-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop and open a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request play the file in Lollypop |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-19-C | PASS | 6.1 | 5.69 | |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-21-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop and open a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request play the file in Lollypop |
+| | | | | |
+| | | | | On request pause the file in Loolypop |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/TRA/BTR/BV-01-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop and open a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request play the file in Lollypop |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/ACP/TRA/BTR/BI-01-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -p |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-11-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -s getconf |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-23-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -p -s abort |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-25-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -p |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-28-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -p |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BV-31-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -p -v 0x0100 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BI-30-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -p -v 0x0100 |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BI-35-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -p |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVDTP/SRC/INT/SIG/SMG/BI-36-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Stop WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user stop wireplumber |
+| | | | | |
+| | | | | - Run: |
+| | | | | |
+| | | | | - sudo avdtptest -d SRC -l -p |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Post-condition: |
+| | | | | |
+| | | | | - Restart WirePlumber by running: |
+| | | | | |
+| | | | | - systemctl --user start wireplumber |
+| | | | | |
+| | | | | - Stop 'avdtptest' |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/CL/AVRCP-CT/SFC/BV-03-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++-------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 04/13] doc/qualification: Add PICS and howto for the AVRCP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 02/13] doc/qualification: Add PICS and howto for the AVCTP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 03/13] doc/qualification: Add PICS and howto for the AVDTP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 05/13] doc/qualification: Add PICS and howto for the GAVDP qualification Frédéric Danis
` (10 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/avrcp-pics.rst | 1153 ++++++++++++++++++++++++++++++
doc/qualification/avrcp-pts.rst | 223 ++++++
2 files changed, 1376 insertions(+)
create mode 100644 doc/qualification/avrcp-pics.rst
create mode 100644 doc/qualification/avrcp-pts.rst
diff --git a/doc/qualification/avrcp-pics.rst b/doc/qualification/avrcp-pics.rst
new file mode 100644
index 000000000..ee7acd6f2
--- /dev/null
+++ b/doc/qualification/avrcp-pics.rst
@@ -0,0 +1,1153 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+==================================
+Audio/Video Remote Control Profile
+==================================
+(TCRL 2023-1, AVRCP.ICS.p16)
+
+Versions
+========
+**Table 2b: Controller - X.Y Versions**
+
+Prerequisite: AVRCP 1/1 "Controller"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_2b_4 | | AVRCP v1.5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2b_5 | x | AVRCP v1.6 (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support one and only one.
+- C.2: Can only be supported with an active X.Y.Z version after Deprecation.
+ Deprecated 2021-02-01. Withdrawn 2024-02-01.
+
+Versions
+========
+**Table 2c: Controller - X.Y.Z Versions**
+
+Prerequisite: AVRCP 1/1 "Controller"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_2c_2 | x | AVRCP v1.6.2 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory IF AVRCP 2b/5 "AVRCP v1.6", otherwise Excluded.
+
+Versions
+========
+**Table 7b: Target - X.Y Versions**
+
+Prerequisite: AVRCP 1/2 "Target"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_7b_4 | | AVRCP v1.5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7b_5 | x | AVRCP v1.6 (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support one and only one.
+- C.2: Can only be supported with an active X.Y.Z version after Deprecation.
+ Deprecated 2021-02-01. Withdrawn 2024-02-01.
+
+Versions
+========
+**Table 7c: Target - X.Y.Z Versions**
+
+Prerequisite: AVRCP 1/2 "Target"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_7c_7 | x | AVRCP v1.6.2 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory IF AVRCP 7b/5 "AVRCP v1.6", otherwise Excluded.
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_1_1 | x | Controller (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_1_2 | x | Target (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one.
+
+Controller features
+===================
+**Table 2: Controller Features**
+
+Prerequisite: AVRCP 1/1 "Controller"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_2_1 | x | Initiating connection establishment for |
+| | | control (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_2 | x | Accepting connection establishment for |
+| | | control initiated by TG (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_3 | x | Initiating connection release for control (M)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_4 | x | Accepting connection release for control |
+| | | initiated by TG (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_5 | | Sending UNIT INFO command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_6 | | Sending SUBUNIT INFO command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_7 | | Sending PASS THROUGH command in category 1 |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_8 | x | Sending PASS THROUGH command in category 2 |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_9 | | Sending PASS THROUGH command in category 3 |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_10 | | Sending PASS THROUGH command in category 4 |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_11 | | Get Capabilities (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_12 | | List Player Application Setting Attributes |
+| | | (C.9) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_13 | | List Player Application Setting Values (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_14 | | Get Current Player Application Setting Value |
+| | | (C.10) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_15 | | Set Player Application Setting Value (C.10) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_16 | | Get Player Application Setting Attribute Text|
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_17 | | Get Player Application Setting Value Text (O)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_18 | | Inform Displayable Character Set (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_19 | | Inform Battery Status of CT (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_20 | | Get Element Attributes (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_21 | | Get Play Status (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_22 | x | Register Notification (C.11) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_23 | | Request Continuing Response (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_24 | | Abort Continuing Response (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_25 | | Next Group (C.12) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_26 | | Previous Group (C.12) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_27 | | Media Player Selection (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_28 | | SetAddressedPlayer (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_29 | | GetFolderItems(MediaPlayerList) (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_29b | | GetTotalNumberOfItems(MediaPlayerList) (C.15)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_30 | | EVENT_AVAILABLE_PLAYERS_CHANGED (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_31 | | EVENT_ADDRESSED_PLAYER_CHANGED (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_32 | | Browsing (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_33 | | SetBrowsedPlayer (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_34 | | ChangePath (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_35 | | GetFolderItems(Filesystem) (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_35b | | GetTotalNumberOfItems(Filesystem) (C.15) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_36 | | GetItemAttributes (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_37 | | PlayItem(Filesystem) (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_38 | | EVENT_UIDS_CHANGED (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_39 | | Searching (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_40 | | Search (C.7) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_41 | | GetFolderItems(Search Results) (C.7) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_41b | | GetTotalNumberOfItems(Search Results) (C.15) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_42 | | PlayItem(SearchResultList) (C.7) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_43 | | NowPlaying (C.8) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_44 | | GetFolderItems(NowPlayingList) (C.8) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_44b | | GetTotalNumberOfItems(NowPlayingList) (C.15) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_45 | | PlayItem(NowPlayingList) (C.8) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_46 | | AddToNowPlaying (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_47 | | EVENT_NOW_PLAYING_CONTENT_CHANGED (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_48 | | Playable Folders (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_49 | x | Absolute Volume (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_50 | x | SetAbsoluteVolume (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_51 | x | NotifyVolumeChange (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_52 | x | Discoverable Mode (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_53 | | PASSTHROUGH operation supporting Press and |
+| | | Hold (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_54 | | Cover Art (C.15) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_55 | | GetImageProperties (C.14) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_56 | | GetImage (C.13) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_2_57 | | GetLinkedThumbnail (C.13) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one.
+- C.2: Mandatory to support at least one IF AVRCP 2/20 "Get Element
+ Attributes", otherwise Optional.
+- C.3: Mandatory IF AVRCP 2/8 "Sending PASS THROUGH command in category 2",
+ otherwise Excluded.
+- C.4: Mandatory IF AVRCP 2/32 "Browsing", otherwise Excluded.
+- C.5: Mandatory IF AVRCP 2/27 "Media Player Selection", otherwise Excluded.
+- C.7: Mandatory IF AVRCP 2/39 "Searching", otherwise Excluded.
+- C.8: Mandatory IF AVRCP 2/32 "Browsing", otherwise Optional.
+- C.9: Mandatory IF AVRCP 2/13 "List Player Application Setting Values" OR
+ AVRCP 2/14 "Get Current Player Application Setting Value" OR AVRCP 2/15 "Set
+ Player Application Setting Value", otherwise Optional.
+- C.10: Mandatory to support at least one IF AVRCP 2/12 "List Player
+ Application Setting Attributes", otherwise Excluded.
+- C.11: Mandatory IF AVRCP 2/20 "Get Element Attributes" OR AVRCP 2/49
+ "Absolute Volume", otherwise Optional.
+- C.12: Mandatory to support none or all.
+- C.13: Excluded IF AVRCP 2b/4 "AVRCP v1.5", otherwise Mandatory to support at
+ least one IF AVRCP 2/54 "Cover Art", otherwise Excluded.
+- C.14: Excluded IF AVRCP 2b/4 "AVRCP v1.5", otherwise Optional IF AVRCP 2/54
+ "Cover Art", otherwise Excluded.
+- C.15: Excluded IF AVRCP 2b/4 "AVRCP v1.5", otherwise Optional.
+
+Controller features
+===================
+**Table 3: operation_id of category 1 for CT**
+
+Prerequisite: AVRCP 2/7 "Sending PASS THROUGH command in category 1"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_3_1 | | 0 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_2 | | 1 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_3 | | 2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_4 | | 3 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_5 | | 4 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_6 | | 5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_7 | | 6 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_8 | | 7 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_9 | | 8 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_10 | | 9 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_11 | | dot (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_12 | | enter (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_13 | | clear (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_14 | | sound select (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_15 | | input select (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_16 | | display information (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_17 | | help (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_18 | | power (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_19 | | play (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_20 | | stop (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_21 | | pause (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_22 | | record (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_23 | | rewind (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_24 | | fast forward (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_25 | | eject (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_26 | | forward (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_27 | | backward (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_28 | | angle (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_29 | | subpicture (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_30 | | F1 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_32 | | F3 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_33 | | F4 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_34 | | F5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_3_35 | | vendor unique (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one item.
+
+Controller features
+===================
+**Table 4: operation_id of category 2 for CT**
+
+Prerequisite: AVRCP 2/8 "Sending PASS THROUGH command in category 2"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_4_1 | | 0 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_2 | | 1 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_3 | | 2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_4 | | 3 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_5 | | 4 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_6 | | 5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_7 | | 6 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_8 | | 7 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_9 | | 8 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_10 | | 9 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_11 | | dot (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_12 | | enter (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_13 | | clear (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_14 | | sound select (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_15 | | input select (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_16 | | display information (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_17 | | help (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_18 | | power (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_19 | x | volume up (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_20 | x | volume down (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_21 | | mute (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_22 | | F1 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_23 | | F2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_24 | | F3 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_25 | | F4 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_26 | | F5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_4_27 | | vendor unique (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one item.
+
+Controller features
+===================
+**Table 5: operation_id of category 3 for CT**
+
+Prerequisite: AVRCP 2/9 "Sending PASS THROUGH command in category 3"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_5_1 | | 0 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_2 | | 1 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_3 | | 2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_4 | | 3 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_5 | | 4 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_6 | | 5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_7 | | 6 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_8 | | 7 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_9 | | 8 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_10 | | 9 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_11 | | dot (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_12 | | enter (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_13 | | clear (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_14 | | channel up (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_15 | | channel down (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_16 | | previous channel (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_17 | | sound select (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_18 | | input select (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_19 | | display information (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_20 | | help (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_21 | | power (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_22 | | angle (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_23 | | subpicture (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_24 | | F1 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_25 | | F2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_26 | | F3 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_27 | | F4 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_28 | | F5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_5_29 | | vendor unique (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one item.
+
+Controller features
+===================
+**Table 6: operation_id of category 4 for CT**
+
+Prerequisite: AVRCP 2/10 "Sending PASS THROUGH command in category 4"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_6_1 | | select (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_2 | | up (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_3 | | down (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_4 | | left (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_5 | | right (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_6 | | right-up (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_7 | | right-down (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_8 | | left-up (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_9 | | left-down (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_10 | | root menu (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_11 | | setup menu (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_12 | | contents menu (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_13 | | favorite menu (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_14 | | exit (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_15 | | 0 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_16 | | 1 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_17 | | 2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_18 | | 3 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_19 | | 4 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_20 | | 5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_21 | | 6 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_22 | | 7 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_23 | | 8 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_24 | | 9 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_25 | | dot (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_26 | | enter (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_27 | | clear (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_28 | | display information (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_29 | | help (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_30 | | page up (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_31 | | page down (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_32 | | power (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_33 | | F1 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_34 | | F2 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_35 | | F3 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_36 | | F4 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_37 | | F5 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_6_38 | | vendor unique (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one item.
+
+Target features
+===============
+**Table 7: Target Features**
+
+Prerequisite: AVRCP 1/2 "Target"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_7_1 | | Initiating connection establishment for |
+| | | control (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_2 | x | Accepting connection establishment for |
+| | | control initiated by CT (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_3 | x | Initiating connection release for control (M)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_4 | x | Accepting connection release for control |
+| | | initiated by CT (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_5 | x | Receiving UNIT INFO command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_6 | x | Receiving SUBUNIT INFO command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_7 | x | Receiving PASS THROUGH command in category 1 |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_8 | x | Receiving PASS THROUGH command in category 2 |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_9 | | Receiving PASS THROUGH command in category 3 |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_10 | | Receiving PASS THROUGH command in category 4 |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_11 | x | Get Capabilities Response (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_12 | | List Player Application Settings Attributes |
+| | | Response (C.14) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_13 | | List Player Application Setting Values |
+| | | Response (C.14) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_14 | | Get Current Player Application Settings Value|
+| | | Response (C.14) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_15 | | Set Player Application Setting Value Response|
+| | | (C.14) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_16 | | Get Player Application Setting Attribute Text|
+| | | Response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_17 | | Get Player Application Setting Value Text |
+| | | Response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_18 | | Inform Displayable Character Set Response (O)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_19 | | Inform Battery Status of CT Response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_20 | x | Get Element Attributes Response (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_21 | x | Get Play Status Response (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_22 | x | Register Notification Response (C.12) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_23 | x | Notify Event Response: |
+| | | PLAYBACK_STATUS_CHANGED (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_24 | x | Notify Event Response: TRACK_CHANGED (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_25 | | Notify Event Response: TRACK_REACHED_END (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_26 | | Notify Event Response: TRACK_REACHED_START |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_27 | | Notify Event Response: PLAYBACK_POS_CHANGED |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_28 | | Notify Event Response: BATT_STATUS_CHANGED |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_29 | | Notify Event Response: SYSTEM_STATUS_CHANGED |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_30 | | Notify Event Response: |
+| | | PLAYER_APPLICATION_SETTING_CHANGED (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_31 | x | Request Continuing Response (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_32 | x | Abort Continuing Response (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_34 | | Next Group (C.15) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_35 | | Previous Group (C.15) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_36 | x | Media Player Selection (C.8) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_37 | x | SetAddressedPlayer (C.8) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_38 | x | GetFolderItems(MediaPlayerList) (C.8) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_38b | x | GetTotalNumberOfItems(MediaPlayerList) (C.20)|
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_39 | x | EVENT_AVAILABLE_PLAYERS_CHANGED (C.8) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_40 | x | EVENT_ADDRESSED_PLAYER_CHANGED (C.8) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_41 | | Supports Multiple Players (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_42 | | Browsing (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_42a | | Initiating connection establishment for |
+| | | browsing channel (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_43 | | SetBrowsedPlayer (C.6) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_43a | | Non-addressed Player Browsing (C.17) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_44 | | ChangePath (C.6)) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_45 | | GetFolderItems(Filesystem) (C.6) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_45b | | GetTotalNumberOfItems(Filesystem) (C.19) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_46 | | GetItemAttributes (C.6) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_47 | | PlayItem(Filesystem) (C.6) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_48 | | EVENT_UIDS_CHANGED (C.9) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_49 | | Database Aware Players (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_50 | | Searching (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_51 | | Search (C.10) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_52 | | GetFolderItems(Search Results) (C.10) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_52b | | GetTotalNumberOfItems(SearchResults) (C.21) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_53 | | PlayItem(SearchResultList) (C.10) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_54 | | NowPlaying (C.11) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_55 | | GetFolderItems(NowPlayingList) (C.11) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_55b | | GetTotalNumberOfItems(NowPlayingList) (C.22) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_56 | | PlayItem(NowPlayingList) (C.11) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_57 | | AddToNowPlaying (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_58 | | EVENT_NOW_PLAYING_CONTENT_CHANGED (C.11) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_59 | | Playable Folders (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_60 | x | Absolute Volume (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_61 | x | SetAbsoluteVolume (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_62 | x | NotifyVolumeChange (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_63 | | Error Response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_64 | x | General Reject (C.13) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_65 | x | Discoverable Mode (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_66 | | PASSTHROUGH operation supporting Press and |
+| | | Hold (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_67 | | Cover Art (C.18) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_68 | | GetImageProperties (C.16) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_69 | | GetImage (C.16) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_7_70 | | GetLinkedThumbnail (C.16) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one.
+- C.2: Mandatory IF AVRCP 7/20 "Get Element Attributes Response", otherwise
+ Optional.
+- C.3: Mandatory IF AVRCP 7/7 "Receiving PASS THROUGH command in category 1",
+ otherwise Optional.
+- C.4: Mandatory IF AVRCP 7/22 "Register Notification Response" AND AVRCP 7/20
+ "Get Element Attributes Response", otherwise Optional.
+- C.5: Mandatory IF AVRCP 7/8 "Receiving PASS THROUGH command in category 2",
+ otherwise Excluded.
+- C.6: Mandatory IF AVRCP 7/42 "Browsing", otherwise Excluded.
+- C.8: Mandatory IF AVRCP 7/7 "Receiving PASS THROUGH command in category 1"
+ OR AVRCP 7/9 "Receiving PASS THROUGH command in category 3", otherwise
+ Excluded.
+- C.9: Mandatory IF AVRCP 7/49 "Database Aware Players", otherwise Optional.
+- C.10: Mandatory IF AVRCP 7/50 "Searching", otherwise Excluded.
+- C.11: Mandatory IF AVRCP 7/42 "Browsing", otherwise Optional.
+- C.12: Mandatory IF AVRCP 7/7 "Receiving PASS THROUGH command in category 1"
+ OR (AVRCP 7/8 "Receiving PASS THROUGH command in category 2" AND AVRCP 7/60
+ "Absolute Volume") OR AVRCP 7/9 "Receiving PASS THROUGH command in category
+ 3", otherwise Optional.
+- C.13: Mandatory IF AVRCP 7/7 "Receiving PASS THROUGH command in category 1"
+ OR AVRCP 7/9 "Receiving PASS THROUGH command in category 3" OR AVRCP 7/42
+ "Browsing", otherwise Optional.
+- C.14: Mandatory to support none or all.
+- C.15: Mandatory to support none or all.
+- C.16: Excluded IF AVRCP 7b/4 "AVRCP v1.5", otherwise Mandatory IF AVRCP 7/67
+ "Cover Art", otherwise Excluded.
+- C.17: Optional IF AVRCP 7/42 "Browsing", otherwise Excluded.
+- C.18: Excluded IF AVRCP 7b/4 "AVRCP v1.5", otherwise Optional.
+- C.19: Excluded IF AVRCP 7b/4 "AVRCP v1.5", otherwise Mandatory IF AVRCP 7/42
+ "Browsing", otherwise Excluded.
+- C.20: Excluded IF AVRCP 7b/4 "AVRCP v1.5", otherwise Mandatory IF AVRCP 7/7
+ "Receiving PASS THROUGH command in category 1" OR AVRCP 7/9 "Receiving PASS
+ THROUGH command in category 3", otherwise Excluded.
+- C.21: Excluded IF AVRCP 7b/4 "AVRCP v1.5", otherwise Mandatory IF AVRCP 7/50
+ "Searching", otherwise Excluded.
+- C.22: Excluded IF AVRCP 7b/4 "AVRCP v1.5", otherwise Mandatory IF AVRCP 7/42
+ "Browsing", otherwise Optional.
+
+Target features
+===============
+**Table 8: operation_id of category 1 for TG**
+
+Prerequisite: AVRCP 7/7 "Receiving PASS THROUGH command in category 1"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_8_1 | | 0 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_2 | | 1 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_3 | | 2 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_4 | | 3 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_5 | | 4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_6 | | 5 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_7 | | 6 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_8 | | 7 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_9 | | 8 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_10 | | 9 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_11 | | Dot (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_12 | | Enter (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_13 | | Clear (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_14 | | Sound select (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_15 | | Input select (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_16 | | Display information (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_17 | | Help (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_18 | | Power (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_19 | x | Play (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_20 | x | Stop (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_21 | | Pause (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_22 | | Record (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_23 | | Rewind (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_24 | | Fast forward (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_25 | | Eject (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_26 | | Forward (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_27 | | Backward (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_28 | | Angle (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_29 | | Subpicture (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_30 | | F1 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_31 | | F2 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_32 | | F3 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_33 | | F4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_33a | | F5 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_8_34 | | Vendor unique (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Target features
+===============
+**Table 9: operation_id of category 2 for TG**
+
+Prerequisite: AVRCP 7/8 "Receiving PASS THROUGH command in category 2"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_9_1 | | 0 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_2 | | 1 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_3 | | 2 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_4 | | 3 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_5 | | 4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_6 | | 5 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_7 | | 6 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_8 | | 7 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_9 | | 8 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_10 | | 9 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_11 | | Dot (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_12 | | Enter (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_13 | | Clear (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_14 | | Sound select (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_15 | | Input select (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_16 | | Display information (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_17 | | Help (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_18 | | Power (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_19 | x | Volume up (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_20 | x | Volume down (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_21 | | Mute (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_22 | | F1 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_23 | | F2 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_24 | | F3 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_25 | | F4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_26 | | F5 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_9_27 | | Vendor unique (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Target features
+===============
+**Table 10: operation_id of category 3 for TG**
+
+Prerequisite: AVRCP 7/9 "Receiving PASS THROUGH command in category 3"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_10_1 | | 0 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_2 | | 1 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_3 | | 2 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_4 | | 3 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_5 | | 4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_6 | | 5 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_7 | | 6 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_8 | | 7 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_9 | | 8 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_10 | | 9 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_11 | | Dot (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_12 | | Enter (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_13 | | Clear (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_14 | | Channel up (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_15 | | Channel down (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_16 | | Previous channel (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_17 | | Sound select (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_18 | | Input select (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_19 | | Display information (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_20 | | Help (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_21 | | Power (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_21a| | Angle (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_21b| | Subpicture (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_22 | | F1 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_23 | | F2 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_24 | | F3 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_25 | | F4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_25a| | F5 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_10_26 | | Vendor unique (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Target features
+===============
+**Table 11: operation_id of category 4 for TG**
+
+Prerequisite: AVRCP 7/10 "Receiving PASS THROUGH command in category 4"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_11_1 | | Select (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_2 | | Up (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_3 | | Down (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_4 | | Left (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_5 | | Right (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_6 | | Right-up (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_7 | | Right-down (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_8 | | Left-up (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_9 | | Left-down (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_10 | | Root menu (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_11 | | Setup menu (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_12 | | Contents menu (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_13 | | Favorite menu (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_14 | | Exit (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_15 | | 0 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_16 | | 1 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_17 | | 2 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_18 | | 3 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_19 | | 4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_20 | | 5 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_21 | | 6 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_22 | | 7 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_23 | | 8 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_24 | | 9 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_25 | | Dot (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_26 | | Enter (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_27 | | Clear (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_28 | | Display information (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_29 | | Help (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_30 | | Page up (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_31 | | Page down (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_32 | | Power (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_33 | | F1 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_34 | | F2 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_35 | | F3 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_36 | | F4 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_36a| | F5 (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_11_37 | | Vendor unique (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Requirements towards other profiles
+===================================
+**Table 12: Requirements towards the Generic Access Profile (CT)**
+
+Prerequisite: AVRCP 1/1 "Controller"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_12_1 | x | General discoverable mode (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Requirements towards other profiles
+===================================
+**Table 13: Requirements towards the Generic Access Profile (TG)**
+
+Prerequisite: AVRCP 1/2 "Target"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_13_1 | x | General discoverable mode (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Requirements towards other profiles
+===================================
+**Table 14: OBEX Operations (AVRCP CT, OBEX Client)**
+
+Prerequisite: AVRCP 1/1 "Controller"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_14_1 | | OBEX Connect operation (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_14_2 | | OBEX Get operation (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_14_3 | | OBEX Disconnect operation (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory IF AVRCP 2/54 "Cover Art", otherwise Excluded.
+
+Requirements towards other profiles
+===================================
+**Table 15: OBEX Operations (AVRCP TG, OBEX Server)**
+
+Prerequisite: AVRCP 1/2 "Target"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_AVRCP_15_1 | | OBEX Connect operation (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_15_2 | | OBEX Get operation (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_AVRCP_15_3 | | OBEX Disconnect operation (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory IF AVRCP 7/67 "Cover Art", otherwise Excluded.
diff --git a/doc/qualification/avrcp-pts.rst b/doc/qualification/avrcp-pts.rst
new file mode 100644
index 000000000..34733798f
--- /dev/null
+++ b/doc/qualification/avrcp-pts.rst
@@ -0,0 +1,223 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+==================
+AVRCP test results
+==================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+- Update "TSPX_player_feature_bitmask" in IXIT to "1FFAFFBBF3BFF9040800000000000000"
+
+- The Bluetooth Transport path used for "busctl set-property …" is displayed by 'mpris-proxy',
+ e.g. "Bluetooth Transport /org/bluez/hci0/dev_<BD_ADDR>/sep1/fd4 found":
+
+ - Start "mpris-proxy" in a different terminal, it should run during all the AVRCP tests
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++==============================+==========+=========+=======+=========================================================================+
+| AVRCP/CT/CEC/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request create a Bluetooth connection from IUT to PTS |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/CEC/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/CRC/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/CRC/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/PTH/BV-01-C | PASS | 6.1 | 5.69 | - busctl call org.bluez /org/bluez/hci0/dev_<BD_ADDR> \ |
+| | | | | org.bluez.MediaControl1 VolumeUp |
+| | | | | |
+| | | | | - busctl call org.bluez /org/bluez/hci0/dev_<BD_ADDR> \ |
+| | | | | org.bluez.MediaControl1 VolumeDown |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/PTT/BV-02-I | PASS | 6.1 | 5.69 | - busctl call org.bluez /org/bluez/hci0/dev_<BD_ADDR> \ |
+| | | | | org.bluez.MediaControl1 VolumeUp |
+| | | | | |
+| | | | | - busctl call org.bluez /org/bluez/hci0/dev_<BD_ADDR> \ |
+| | | | | org.bluez.MediaControl1 VolumeDown |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/VLH/BI-03-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | - Start VLC |
+| | | | | - Cancel first try when requesting to initiate a control channel |
+| | | | | connection, then retry this test |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request create a Bluetooth connection from IUT to PTS |
+| | | | | |
+| | | | | On volume change request: |
+| | | | | |
+| | | | | - busctl set-property org.bluez /org/bluez/hci0/dev_<BD_ADDR>/sep1/fd0 \|
+| | | | | org.bluez.MediaTransport1 Volume q 64 |
+| | | | | |
+| | | | | Check using audio volume panel |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/VLH/BI-04-C | PASS | 6.1 | 5.69 | Check using audio volume panel |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/VLH/BV-01-C | PASS | 6.1 | 5.69 | On volume change request: |
+| | | | | |
+| | | | | - busctl set-property org.bluez /org/bluez/hci0/dev_<BD_ADDR>/sep1/fd0 \|
+| | | | | org.bluez.MediaTransport1 Volume q 64 |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/VLH/BV-03-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/VLH/BV-01-I | PASS | 6.1 | 5.69 | Check using audio volume panel |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/VLH/BV-02-I | PASS | 6.1 | 5.69 | On volume change request: |
+| | | | | |
+| | | | | - busctl set-property org.bluez /org/bluez/hci0/dev_<BD_ADDR>/sep1/fd0 \|
+| | | | | org.bluez.MediaTransport1 Volume q 64 |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/CT/NFY/BV-01-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request create a Bluetooth connection from IUT to PTS |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/CEC/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request create a Bluetooth connection from IUT to PTS |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/CFG/BI-01-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/CFG/BV-02-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/CRC/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/CRC/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/ICC/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/ICC/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/INV/BI-01-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/INV/BV-02-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MDI/BV-02-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MDI/BV-04-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MDI/BV-05-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MPS/BI-01-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MPS/BV-02-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | - Start VLC and open a file |
+| | | | | - Cancel first try when requesting to initiate a control channel |
+| | | | | connection, then retry this test |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request create a Bluetooth connection from IUT to PTS |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MPS/BV-06-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MPS/BV-09-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MPS/BV-12-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MPS/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | - Start VLC |
+| | | | +-------------------------------------------------------------------------+
+| | | | | VLC is shown as "Media Player: Player" |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MPS/BV-02-I | PASS | 6.1 | 5.69 | Check using audio volume panel |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/MPS/BV-03-I | PASS | 6.1 | 5.69 | Check using audio volume panel |
+| | | | | |
+| | | | | Sometimes the volume is changed on Speaker instead of the Bluetooth PTS |
+| | | | | audio device |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/NFY/BI-01-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/NFY/BV-02-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop and open a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On request play the file in Lollypop |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/NFY/BV-04-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start VLC and play a file |
+| | | | +-------------------------------------------------------------------------+
+| | | | | On "Place the IUT into a state where no track is currently selected…" |
+| | | | | request close VLC then press OK |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/NFY/BV-05-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start VLC and play a file |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/NFY/BV-08-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start VLC and open a file |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/PTT/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start Lollypop, play a file then pause it (not stopped) |
+| | | | | (VLC doesn't receive the Play command but receive the Stop command) |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/PTT/BV-02-I | PASS | 6.1 | 5.69 | Check using audio volume panel |
+| | | | | |
+| | | | | Sometimes the volume is changed on Speaker instead of the Bluetooth PTS |
+| | | | | audio device, in this case check Bluetooth volume is above 0% or |
+| | | | | manually increase it |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/RCR/BV-02-C | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Open 'sbc_enc_test_04_more_than_512_bytes_metadata.mp3' file in VLC |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/RCR/BV-04-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/VLH/BI-01-C | PASS | 6.1 | 5.69 | Sometimes inconclusive, retry |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/VLH/BI-02-C | PASS | 6.1 | 5.69 | Sometimes inconclusive, retry |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/VLH/BV-02-C | PASS | 6.1 | 5.69 | Sometimes inconclusive, retry |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/VLH/BV-04-C | PASS | 6.1 | 5.69 | On volume change request: |
+| | | | | |
+| | | | | - busctl set-property org.bluez /org/bluez/hci0/dev_<BD_ADDR>/fd0 \ |
+| | | | | org.bluez.MediaTransport1 Volume q 64 |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/VLH/BV-01-I | PASS | 6.1 | 5.69 | On volume change request: |
+| | | | | |
+| | | | | - busctl set-property org.bluez /org/bluez/hci0/dev_<BD_ADDR>/fd0 \ |
+| | | | | org.bluez.MediaTransport1 Volume q 64 |
+| | | | | |
+| | | | | Sometimes inconclusive, retry |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| AVRCP/TG/VLH/BV-02-I | PASS | 6.1 | 5.69 | Expect to hear sound (or not), then silence: |
+| | | | | |
+| | | | | - busctl get-property org.bluez /org/bluez/hci0/dev_<BD_ADDR>/fd0 \ |
+| | | | | org.bluez.MediaTransport1 Volume q 0 |
+| | | | | |
+| | | | | (click OK), then sound really low (click OK): |
+| | | | | |
+| | | | | - busctl get-property org.bluez /org/bluez/hci0/dev_<BD_ADDR>/fd0 \ |
+| | | | | org.bluez.MediaTransport1 Volume q 64 |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/CL/AVRCP-CT/SFC/BV-03-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 05/13] doc/qualification: Add PICS and howto for the GAVDP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (2 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 04/13] doc/qualification: Add PICS and howto for the AVRCP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 06/13] doc/qualification: Add PICS and howto for the HID qualification Frédéric Danis
` (9 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/gavdp-pics.rst | 170 +++++++++++++++++++++++++++++++
doc/qualification/gavdp-pts.rst | 33 ++++++
2 files changed, 203 insertions(+)
create mode 100644 doc/qualification/gavdp-pics.rst
create mode 100644 doc/qualification/gavdp-pts.rst
diff --git a/doc/qualification/gavdp-pics.rst b/doc/qualification/gavdp-pics.rst
new file mode 100644
index 000000000..b1076c800
--- /dev/null
+++ b/doc/qualification/gavdp-pics.rst
@@ -0,0 +1,170 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+========================================
+Generic Audio/Video Distribution Profile
+========================================
+(TCRL 2023-1, GAVDP.ICS.1.3.2ed3)
+
+Versions
+========
+**Table 2a: GAVDP Initiator - X.Y Versions**
+
+Prerequisite: GAVDP 1/1 "Initiator"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_GAVDP_2a_3| x | GAVDP 1.3 (M) |
++----------------+----------+------------------------------------------------+
+
+- M: Mandatory
+
+Versions
+========
+**Table 3a: GAVDP Acceptor - X.Y Versions**
+
+Prerequisite: GAVDP 1/2 "Acceptor"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_GAVDP_3a_3| x | GAVDP 1.3 (M) |
++----------------+----------+------------------------------------------------+
+
+- M: Mandatory
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_GAVDP_1_1 | x | Initiator (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_1_2 | x | Acceptor (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_1_3 | x | Delay Reporting Initiator (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_1_4 | | Delay Reporting Acceptor (O) |
++----------------+----------+------------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory to support at least one.
+
+Initiator Capabilities
+======================
+**Table 2: GAVDP Procedures (Initiator)**
+
+Prerequisite: GAVDP 1/1 "Initiator"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_GAVDP_2_1 | x | Connection Establishment (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_2_2 | x | Transfer Control - Suspend (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_2_3 | | Transfer Control - Change Parameters (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_2_4 | x | Start Streaming (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_2_5 | x | Connection Release (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_2_6 | x | Signaling Control - Abort (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_2_7 | | Security Control (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_2_8 | | Delay Reporting (O) |
++----------------+----------+------------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Initiator Capabilities
+======================
+**Table 4: AVDTP Procedures (Initiator)**
+
+Prerequisite: GAVDP 1/1 "Initiator"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_GAVDP_4_1 | x | Stream discover command (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_4_2 | x | Stream get capabilities command (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_4_3 | x | Set configuration command (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_4_4 | x | Open stream command (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_4_5 | x | Start stream command (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_4_6 | x | Close stream command (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_4_7 | x | Abort stream command (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_4_8 | x | Stream get all capabilities command (M) |
++----------------+----------+------------------------------------------------+
+
+- M: Mandatory
+
+Acceptor Capabilities
+=====================
+**Table 3: GAVDP Procedures (Acceptor)**
+
+Prerequisite: GAVDP 1/2 "Acceptor"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_GAVDP_3_1 | x | Connection Establishment (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_3_2 | x | Transfer Control - Suspend (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_3_3 | | Transfer Control - Change Parameters (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_3_4 | x | Start Streaming (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_3_5 | x | Connection Release (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_3_6 | x | Signaling Control - Abort (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_3_7 | | Security Control (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_3_8 | | Delay Reporting (O) |
++----------------+----------+------------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Acceptor Capabilities
+=====================
+**Table 5: AVDTP Procedures (Acceptor)**
+
+Prerequisite: GAVDP 1/2 "Acceptor"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_GAVDP_5_1 | x | Stream discover response (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_5_2 | x | Stream get capabilities response (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_5_3 | x | Set configuration response (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_5_4 | x | Open stream response (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_5_5 | x | Start stream response (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_5_6 | x | Close stream response (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_5_7 | x | General reject message (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_5_8 | x | Abort stream response (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_GAVDP_5_9 | x | Stream get all capabilities response (M) |
++----------------+----------+------------------------------------------------+
+
+- M: Mandatory
diff --git a/doc/qualification/gavdp-pts.rst b/doc/qualification/gavdp-pts.rst
new file mode 100644
index 000000000..7b0b7e93b
--- /dev/null
+++ b/doc/qualification/gavdp-pts.rst
@@ -0,0 +1,33 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+==================
+GAVDP test results
+==================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++==============================+==========+=========+=======+=========================================================================+
+| GAVDP/ACP/APP/CON/BV-01-C | PASS | 6.1 | 5.69 | It may need to pair the device from IUT during the test |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| GAVDP/ACP/APP/TRC/BV-02-C | PASS | 6.1 | 5.69 | It may need to pair the device from IUT during the test |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| GAVDP/INT/APP/CON/BV-01-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| GAVDP/INT/APP/TRC/BV-02-C | PASS | 6.1 | 5.69 | Wait for device to disconnect then connect from IUT |
+| | | | | |
+| | | | | Wait on "Suspend the streaming channel" |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 06/13] doc/qualification: Add PICS and howto for the HID qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (3 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 05/13] doc/qualification: Add PICS and howto for the GAVDP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 07/13] doc/qualification: Add PICS and howto for the RFComm qualification Frédéric Danis
` (8 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/hid-pics.rst | 385 +++++++++++++++++++++++++++++++++
doc/qualification/hid-pts.rst | 61 ++++++
2 files changed, 446 insertions(+)
create mode 100644 doc/qualification/hid-pics.rst
create mode 100644 doc/qualification/hid-pts.rst
diff --git a/doc/qualification/hid-pics.rst b/doc/qualification/hid-pics.rst
new file mode 100644
index 000000000..0f63efb93
--- /dev/null
+++ b/doc/qualification/hid-pics.rst
@@ -0,0 +1,385 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+==============================
+Human Interface Device Profile
+==============================
+(TCRL 2023-1, HID.ICS.p9)
+
+Versions
+========
+**Table 0: Major Versions (X.Y)**
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_0_1 | x | HID v1.0 (M) |
++----------------+----------+------------------------------------------------+
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_1_1 | x | Host, Report protocol (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_1_2 | | Device (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_1_3 | | Host, Boot protocol (C.1) |
++----------------+----------+------------------------------------------------+
+
+- C.1: Mandatory to support at least one of HID 1/1 "Host, Report protocol"
+ OR HID 1/2 "Device" OR HID 1/3 "Host, Boot protocol".
+
+Host Role
+=========
+**Table 2: Application Procedures**
+
+Prerequisite: HID 1/1 "Host, Report protocol" OR HID 1/3 "Host, Boot protocol"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_2_1 | x | Establish HID connection (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_2 | x | Accept HID connection (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_3 | x | Terminate HID connection (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_4 | x | Accept Termination of HID connection (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_5 | x | Support for virtual cables (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_6 | x | HID initiated reconnection (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_7 | x | Host initiated reconnection (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_8 | x | Host data transfer to HID (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_9 | x | HID data transfer to Host (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_10 | | HID Boot mode data transfer to Host (C.2) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_11 | | Host Boot mode data transfer to HID (C.2) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_12 | | Support for Application to send GET_REPORT (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_13 | | Support for Application to send SET_REPORT (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_14 | | Support for sending HCI_CONTROL with |
+| | | VIRTUAL_CABLE_UNPLUG (C.3) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_2_15 | | Support for receiving HCI_CONTROL with |
+| | | VIRTUAL_CABLE_UNPLUG (C.3) |
++----------------+----------+------------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory IF HID 1/1 "Host, Report protocol", otherwise Optional.
+- C.2: Mandatory IF HID 1/3 "Host, Boot protocol", otherwise Optional.
+- C.3: Optional IF HID 2/5 "Support for virtual cables", otherwise Excluded.
+- C.4: Mandatory IF HID 1/1 "Host, Report protocol", otherwise Optional.
+
+Host Role
+=========
+**Table 3: Device to Host Transfers**
+
+Prerequisite: HID 1/1 "Host, Report protocol" OR HID 1/3 "Host, Boot protocol"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_3_1 | | Data reports larger than host MTU on Control |
+| | | channel (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_3_2 | | Data reports larger than host MTU on Interrupt |
+| | | channel (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_3_3 | | Data reports to host (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_3_4 | | Boot mode reports to host (C.2) |
++----------------+----------+------------------------------------------------+
+
+- O: Optional
+- C.1: Excluded IF HID 1/3 "Host, Boot protocol", otherwise Mandatory IF HID
+ 2/12 "Support for Application to send GET_REPORT", otherwise Optional.
+- C.2: Mandatory IF HID 1/3 "Host, Boot protocol", otherwise Optional.
+
+Host Role
+=========
+**Table 4: Host to Device Transfers**
+
+Prerequisite: HID 1/1 "Host, Report protocol" OR HID 1/3 "Host, Boot protocol"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_4_1 | | Data reports larger than device MTU on Control |
+| | | channel (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_4_2 | | Data reports larger than device MTU on |
+| | | Interrupt channel (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_4_3 | x | Data reports to device (C.2) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_4_4 | | Boot mode reports to device (O) |
++----------------+----------+------------------------------------------------+
+
+- O: Optional
+- C.1: Excluded IF HID 1/3 "Host, Boot protocol", otherwise Optional.
+- C.2: Excluded IF HID 1/3 "Host, Boot protocol", otherwise Mandatory.
+
+Host Role
+=========
+**Table 5: HID Control Commands**
+
+Prerequisite: HID 1/1 "Host, Report protocol" OR HID 1/3 "Host, Boot protocol"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_5_1 | | Set_Protocol command (C.1, C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_5_2 | | Get_Protocol command (C.1, C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_5_3 | | Set_Idle command (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_5_4 | | Get_Idle command (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_5_5 | | Set_Report command (C.2) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_5_6 | | Get_Report command (C.3) |
++----------------+----------+------------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory IF HID 1/3 "Host, Boot protocol", otherwise Optional.
+- C.2: Mandatory IF HID 1/1 "Host, Report protocol" AND HID 2/13 "Support for
+ Application to send SET_REPORT", otherwise Excluded.
+- C.3: Mandatory IF HID 1/1 "Host, Report protocol" AND HID 2/12 "Support for
+ Application to send GET_REPORT", otherwise Excluded.
+- C.4: Mandatory to support none or all of HID 5/1 "Set_Protocol command" OR
+ HID 5/2 "Get_Protocol command".
+
+Host Role
+=========
+**Table 6: LMP Requirements**
+
+Prerequisite: HID 1/1 "Host, Report protocol" OR HID 1/3 "Host, Boot protocol"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_6_8 | x | Role switch (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_6_9 | x | Request role switch (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_6_12 | x | Sniff mode (C.4) |
++----------------+----------+------------------------------------------------+
+
+- C.4: Mandatory IF HID 1/1 "Host, Report protocol", otherwise not defined.
+
+HID Role
+========
+**Table 8: HID Device Types**
+
+Prerequisite: HID 1/2 "Device"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_8_1 | | Pointing HID (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_8_2 | | Keyboard HID (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_8_3 | | Identification HID (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_8_4 | | Other HID (C.1) |
++----------------+----------+------------------------------------------------+
+
+- C.1: Mandatory to support at least one of HID 8/1 "Pointing HID" OR HID 8/2
+ "Keyboard HID" OR HID 8/3 "Identification HID" OR HID 8/4 "Other HID" IF
+ HID 1/2 "Device", otherwise Excluded.
+
+HID Role
+========
+**Table 9: Application Procedures**
+
+Prerequisite: HID 1/2 "Device"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_9_1 | | Establish HID connection (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_2 | | Accept HID connection (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_3 | | Terminate HID connection (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_4 | | Accept Termination of HID connection (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_5 | | Support for virtual cables (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_6 | | HID initiated reconnection (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_7 | | Host initiated reconnection (C.1) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_8 | | Host data transfer to HID (C.2) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_9 | | HID data transfer to Host (C.2) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_10 | | HID Boot mode data transfer to Host (C.3) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_11 | | Host Boot mode data transfer to HID (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_12 | | Output reports declared (C.4) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_13 | | Input reports declared (C.3) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_14 | | Feature reports declared (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_15 | | Support for sending HCI_CONTROL with |
+| | | VIRTUAL_CABLE_UNPLUG (C.5) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_9_16 | | Support for receiving HCI_CONTROL with |
+| | | VIRTUAL_CABLE_UNPLUG (C.5) |
++----------------+----------+------------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one of HID 9/6 "HID initiated
+ reconnection" OR HID 9/7 "Host initiated reconnection" IF HID 9/5 "Support
+ for virtual cables", otherwise Excluded.
+- C.2: Mandatory to support at least one of HID 9/8 "Host data transfer to
+ HID" OR HID 9/9 "HID data transfer to Host" IF HID 1/2 "Device", otherwise
+ Excluded.
+- C.3: Mandatory IF HID 8/1 "Pointing HID" OR HID 8/2 "Keyboard HID",
+ otherwise Excluded.
+- C.4: Mandatory IF HID 8/2 "Keyboard HID", otherwise Excluded.
+- C.5: Optional IF HID 9/5 "Support for virtual cables", otherwise Excluded.
+
+HID Role
+========
+**Table 10: Device to Host Transfers**
+
+Prerequisite: HID 9/13 "Input reports declared" OR HID 9/14 "Feature reports
+declared"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_10_1 | | Data reports larger than host MTU on Control |
+| | | channel (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_10_2 | | Data reports larger than host MTU on Interrupt |
+| | | channel (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_10_3 | | Data reports to host (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_10_4 | | Boot mode reports to host (C.1) |
++----------------+----------+------------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory IF HID 8/1 "Pointing HID" OR HID 8/2 "Keyboard HID",
+ otherwise Optional IF HID 8/3 "Identification HID" OR HID 8/4 "Other HID",
+ otherwise Excluded.
+
+HID Role
+========
+**Table 11: Host to Device Transfers**
+
+Prerequisite: HID 9/12 "Output reports declared" OR HID 9/14 "Feature reports
+declared"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_11_1 | | Data reports larger than device MTU on Control |
+| | | channel (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_11_2 | | Data reports larger than device MTU on |
+| | | Inetrrupt channel (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_11_3 | | Data reports to device (O) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_11_4 | | Boot mode reports to device (C.1) |
++----------------+----------+------------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory IF HID 8/2 "Keyboard HID", otherwise Optional IF HID 8/1
+ "Pointing HID" OR HID 8/3 "Identification HID" OR HID 8/4 "Other HID",
+ otherwise Excluded.
+
+HID Role
+========
+**Table 12: HID Control Commands**
+
+Prerequisite: HID 1/2 "Device"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_12_1 | | Set_Protocol command (C.1, C.5) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_12_2 | | Get_Protocol command (C.1, C.5) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_12_3 | | Set_Idle command (C.2) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_12_4 | | Get_Idle command (C.2) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_12_5 | | Set_Report command (C.3) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_12_6 | | Get_Report command (C.4) |
++----------------+----------+------------------------------------------------+
+
+- C.1: Mandatory IF HID 8/1 "Pointing HID" OR HID 8/2 "Keyboard HID",
+ otherwise Optional IF HID 8/3 "Identification HID" OR HID 8/4 "Other HID",
+ otherwise Excluded.
+- C.2: Mandatory IF HID 8/2 "Keyboard HID", otherwise Optional IF HID 8/1
+ "Pointing HID" OR HID 8/3 "Identification HID" OR HID 8/4 "Other HID",
+ otherwise Excluded.
+- C.3: Mandatory IF HID 9/12 "Output reports declared" OR HID 9/14 "Feature
+ reports declared", otherwise Excluded.
+- C.4: Mandatory IF HID 9/13 "Input reports declared" OR HID 9/14 "Feature
+ reports declared", otherwise Excluded.
+- C.5: Mandatory to support none or all of HID 12/1 "Set_Protocol command" OR
+ HID 12/2 "Get_Protocol command".
+
+HID Role
+========
+**Table 13: LMP Requirements**
+
+Prerequisite: HID 1/2 "Device"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_13_8 | | Role switch (C.3) |
++----------------+----------+------------------------------------------------+
+
+- C.3: Mandatory IF HID 9/6 "HID initiated reconnection", otherwise not
+ defined.
+
+HID Role
+========
+**Table 15: SDP Requirements**
+
+Prerequisite: HID 1/2 "Device"
+
++----------------+----------+------------------------------------------------+
+| Parameter Name | Selected | Description |
++================+==========+================================================+
+| TSPC_HID_15_1 | | Server (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_15_2 | | LanguageBaseAttributeIdList (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_15_3 | | ServiceClassIDList (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_15_4 | | ProtocolDescriptorList (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_15_5 | | BluetoothProfileDescriptorList (M) |
++----------------+----------+------------------------------------------------+
+| TSPC_HID_15_6 | | AdditionalProtocolDescriptorList (M) |
++----------------+----------+------------------------------------------------+
+
+- M: Mandatory
diff --git a/doc/qualification/hid-pts.rst b/doc/qualification/hid-pts.rst
new file mode 100644
index 000000000..bc795c69d
--- /dev/null
+++ b/doc/qualification/hid-pts.rst
@@ -0,0 +1,61 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+================
+HID test results
+================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++==============================+==========+=========+=======+=========================================================================+
+| HID/HOS/CON/BV-01-I | PASS | 6.1 | 5.69 | On 1st request run: |
+| | | | | |
+| | | | | - sudo btmgmt find |
+| | | | | |
+| | | | | PTS device should be found |
+| | | | | |
+| | | | | On 2nd and 3rd request run: |
+| | | | | |
+| | | | | - sudo btmgmt find -L |
+| | | | | |
+| | | | | PTS device should be found |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HID/HOS/DAT/BV-01-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HID/HOS/HCE/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HID/HOS/HCE/BV-03-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - this test requests a RF shielded box |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HID/HOS/HCE/BV-04-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - this test requests a RF shielded box |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HID/HOS/HCR/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HID/HOS/HCR/BV-02-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HID/HOS/HDT/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HID/HOS/HDT/BV-02-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/CL/HID-HOS/SFC/BV-15-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 07/13] doc/qualification: Add PICS and howto for the RFComm qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (4 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 06/13] doc/qualification: Add PICS and howto for the HID qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 08/13] doc/qualification: Add PICS and howto for the ScPP qualification Frédéric Danis
` (7 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/rfcomm-pics.rst | 106 ++++++++++++++++++++++++++++++
doc/qualification/rfcomm-pts.rst | 58 ++++++++++++++++
2 files changed, 164 insertions(+)
create mode 100644 doc/qualification/rfcomm-pics.rst
create mode 100644 doc/qualification/rfcomm-pts.rst
diff --git a/doc/qualification/rfcomm-pics.rst b/doc/qualification/rfcomm-pics.rst
new file mode 100644
index 000000000..5ab1b07be
--- /dev/null
+++ b/doc/qualification/rfcomm-pics.rst
@@ -0,0 +1,106 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+===============
+RFComm Protocol
+===============
+(TCRL pkg101, RFCOMM.ICS.p8)
+
+
+Versions
+========
+**Table 0: X.Y Versions**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_RFCOMM_0_1 | | RFCOMM v1.1 with TS 07.10 (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_0_2 | x | RFCOMM v1.2 with TS 07.10 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support one and only one.
+
+Core Configuration
+==================
+**Table 0a: Core Configuration Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_RFCOMM_0a_1 | x | Protocol supported over BR/EDR (C.1, C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_0a_2 | | 2 Protocol supported over LE (C.2) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Excluded for this Protocol IF CORE 41/2 “LE Core Configuration”.
+- C.2: Excluded for this Protocol.
+- C.3: Mandatory for this Protocol.
+
+2.3 Supported procedures
+========================
+**Table 1: Supported Procedures**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_RFCOMM_1_1 | x | Initialize RFCOMM Session (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_2 | x | Respond to Initialization of an RFCOMM |
+| | | Session (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_3 | x | Shutdown RFCOMM Session (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_4 | x | Respond to a Shutdown of an RFCOMM Session |
+| | | (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_5 | x | Establish DLC (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_6 | x | Respond to Establishment of a DLC (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_7 | x | Disconnect DLC (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_8 | x | Respond to Disconnection of a DLC (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_9 | x | Respond to and send MSC Command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_10 | x | Initiate Transfer Information (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_11 | x | Respond to Test Command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_12 | x | Send Test Command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_13 | x | React to Aggregate Flow Control (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_14 | x | Respond to RLS Command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_15 | | Send RLS Command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_16 | x | Respond to PN Command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_17 | x | Send PN Command (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_18 | x | Send Non-Supported Command (NSC) response |
+| | | (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_19 | x | Respond to RPN Command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_20 | x | Send RPN Command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_21 | x | Closing Multiplexer by First Sending a DISC |
+| | | Command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_RFCOMM_1_22 | x | Support of Credit Based Flow Control (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory IF RFCOMM 1/2 “Respond to Initialization of an RFCOMM
+ Session”, otherwise Excluded.
+- C.2: Mandatory IF RFCOMM 1/1 “Initialize RFCOMM Session”, otherwise
+ Excluded.
+- C.3: Mandatory IF RFCOMM 1/1 “Initialize RFCOMM Session”, otherwise
+ Optional.
+- C.4: Mandatory IF RFCOMM 0/2 “RFCOMM v1.2 with TS 07.10”, otherwise
+ Optional.
+- C.5: Mandatory to support at least one.
\ No newline at end of file
diff --git a/doc/qualification/rfcomm-pts.rst b/doc/qualification/rfcomm-pts.rst
new file mode 100644
index 000000000..860ef6508
--- /dev/null
+++ b/doc/qualification/rfcomm-pts.rst
@@ -0,0 +1,58 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+===================
+RFComm test results
+===================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+- Update "TSPX_server_channel_iut" in IXIT to "10"
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++==============================+==========+=========+=======+=========================================================================+
+| RFCOMM/DEVA/RFC/BV-01-C | PASS | 6.1 | 5.69 | Run 'rctest -n -U spp <BD_ADDR>' upon request |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA/RFC/BV-05-C | PASS | 6.1 | 5.69 | Run 'rctest -n -U spp <BD_ADDR>' upon request |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVB/RFC/BV-02-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVB/RFC/BV-06-C | PASS | 6.1 | 5.69 | Run 'rctest -r -U spp -P 16' before starting the test |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-03-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-04-C | PASS | 6.1 | 5.69 | Run 'rctest -r -U spp -P 16' before starting the test |
+| | | | | |
+| | | | | Kill rctest upon request |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-07-C | PASS | 6.1 | 5.69 | Run 'rctest -r -U spp -P 16' before starting the test |
+| | | | | |
+| | | | | Kill rctest upon request |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-08-C | PASS | 6.1 | 5.69 | Run 'rctest -r -U spp -P 16' before starting the test |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-11-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-13-C | PASS | 6.1 | 5.69 | Run 'rctest -r -U spp -P 16' before starting the test |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-15-C | PASS | 6.1 | 5.69 | Run 'rctest -r -U spp -P 16' before starting the test |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-17-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-19-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-21-C | PASS | 6.1 | 5.69 | Run 'rctest -w -U spp -P 16' before starting the test |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| RFCOMM/DEVA-DEVB/RFC/BV-22-C | PASS | 6.1 | 5.69 | Run 'rctest -w -U spp -P 16' before starting the test |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 08/13] doc/qualification: Add PICS and howto for the ScPP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (5 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 07/13] doc/qualification: Add PICS and howto for the RFComm qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 09/13] doc/qualification: Add PICS and howto for the SDP qualification Frédéric Danis
` (6 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/scpp-pics.rst | 166 ++++++++++++++++++++++++++++++++
doc/qualification/scpp-pts.rst | 31 ++++++
2 files changed, 197 insertions(+)
create mode 100644 doc/qualification/scpp-pics.rst
create mode 100644 doc/qualification/scpp-pts.rst
diff --git a/doc/qualification/scpp-pics.rst b/doc/qualification/scpp-pics.rst
new file mode 100644
index 000000000..d1024427b
--- /dev/null
+++ b/doc/qualification/scpp-pics.rst
@@ -0,0 +1,166 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+=======================
+Scan Parameters Profile
+=======================
+(TCRL 2023-1, SCPP.ICS.p2)
+
+
+Versions
+========
+**Table 0: Major Versions (X.Y)**
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_0_1 | x | SCPP v1.0 (M) |
++------------------+----------+------------------------------------------------------+
+
+- M: Mandatory
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_1_1 | | Scan Server (C.1) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_1_2 | x | Scan Client (C.1) |
++------------------+----------+------------------------------------------------------+
+
+- C.1: Mandatory to support at least one of SCPP 1/1 "Scan Server" OR SCPP 1/2 "Scan Client".
+
+Transports
+==========
+**Table 2: Transport Requirements**
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_2_1 | | Profile supported over BR/EDR (C.1) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_2_2 | x | Profile supported over LE (M) |
++------------------+----------+------------------------------------------------------+
+
+- M: Mandatory
+- C.1: Excluded for this Profile.
+
+Scan Server Role
+================
+**Table 3: Services - Scan Server Role**
+
+Prerequisite: SCPP 1/1 "Scan Server"
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_3_1 | | Scan Parameters Service (M) |
++------------------+----------+------------------------------------------------------+
+
+- M: Mandatory
+
+Scan Server Role
+================
+**Table 4: GAP Requirements - Scan Server Role**
+
+Prerequisite: SCPP 1/1 "Scan Server"
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_4_1 | | Peripheral (M) |
++------------------+----------+------------------------------------------------------+
+
+- M: Mandatory
+
+Scan Client Role
+================
+**Table 7: Discover Services and Characteristics - Scan Client Role**
+
+Prerequisite: SCPP 1/2 "Scan Client"
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_7_1 | x | Discover Scan Parameters Service (M) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_7_2 | x | Discover Scan Parameters characteristic: Scan |
+| | | interval Window (M) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_7_3 | x | Discover Scan Parameters characteristic: Scan |
+| | | Refresh (M) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_7_4 | x | Discover Scan Parameters characteristic: Scan |
+| | | Refresh - Client Characteristic Configuration |
+| | | Descriptor (M) |
++------------------+----------+------------------------------------------------------+
+
+- M: Mandatory
+
+Scan Client Role
+================
+**Table 8: Features - Scan Client Role**
+
+Prerequisite: SCPP 1/2 "Scan Client"
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_8_1 | x | Write Scan Interval Window characteristic (M) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_8_2 | | Configure Scan Refresh characteristic: Client |
+| | | Characteristic Configuration characteristic |
+| | | descriptor with (O) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_8_3 | x | Notify Scan Refresh characteristic (M) |
++------------------+----------+------------------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Scan Client Role
+================
+**Table 9: GATT Requirements - Scan Client Role**
+
+Prerequisite: SCPP 1/2 "Scan Client"
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_9_1 | x | GATT Client over LE (M) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_9_3 | x | Discover All Primary Services (C.1) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_9_4 | x | Discover Primary Services by Service UUID (C.1) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_9_5 | x | Discover All Characteristics of a Service (C.2) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_9_6 | x | Discover Characteristics by UUID (C.2) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_9_7 | x | Discover All Characteristic Descriptors (M) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_9_8 | x | Write without Response (M) |
++------------------+----------+------------------------------------------------------+
+| TSC_SCPP_9_10 | x | Notifications (M) |
++------------------+----------+------------------------------------------------------+
+
+- M: Mandatory
+- C.1: Mandatory to support at least one of SCPP 9/3 "Discover All Primary Services" OR SCPP 9/4 "Discover Primary Services by Service UUID".
+- C.2: Mandatory to support at least one of SCPP 9/5 "Discover All Characteristics of a Service" OR SCPP 9/6 "Discover Characteristics by UUID".
+
+Scan Client Role
+================
+**Table 10: GAP Requirements - Scan Client Role**
+
+Prerequisite: SCPP 1/2 "Scan Client"
+
++------------------+----------+------------------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+======================================================+
+| TSC_SCPP_10_1 | x | Central (M) |
++------------------+----------+------------------------------------------------------+
+
+- M: Mandatory
diff --git a/doc/qualification/scpp-pts.rst b/doc/qualification/scpp-pts.rst
new file mode 100644
index 000000000..d61c60ff0
--- /dev/null
+++ b/doc/qualification/scpp-pts.rst
@@ -0,0 +1,31 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+=================
+ScPP test results
+=================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++==============================+==========+=========+=======+=========================================================================+
+| SCPP/CL/CGGIT/SER/BV-01-C | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| SCPP/CL/CGGIT/CHA/BV-01-C | PASS | 6.1 | 5.69 | Cancel 'Please take action to discover the Scan Interval Window …' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| SCPP/CL/CGGIT/CHA/BV-02-C | PASS | 6.1 | 5.69 | Cancel 'Please take action to discover the Scan Refresh caracteristic…' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| SCPP/CL/SNPF/BV-01-I | PASS | 6.1 | 5.69 | |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 09/13] doc/qualification: Add PICS and howto for the SDP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (6 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 08/13] doc/qualification: Add PICS and howto for the ScPP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 10/13] doc/qualification: Add PICS and howto for the SPP qualification Frédéric Danis
` (5 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/sdp-pics.rst | 205 +++++++++++++++++++++++++++++++++
doc/qualification/sdp-pts.rst | 63 ++++++++++
2 files changed, 268 insertions(+)
create mode 100644 doc/qualification/sdp-pics.rst
create mode 100644 doc/qualification/sdp-pts.rst
diff --git a/doc/qualification/sdp-pics.rst b/doc/qualification/sdp-pics.rst
new file mode 100644
index 000000000..980f0fa37
--- /dev/null
+++ b/doc/qualification/sdp-pics.rst
@@ -0,0 +1,205 @@
+==========================
+Service Discovery Protocol
+==========================
+(TCRL 2023-1, SDP.ICS.p23)
+
+
+Roles
+=====
+**Table 1b: Role Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_1b_1 | x | Server (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_1b_2 | x | Client (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one of SDP 1b/1 "Server" OR SDP 1b/2
+ "Client".
+
+UUID capabilities
+=================
+**Table 1: Support Different Size Capabilities on UUID**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_1_1 | x | 128 bit UUID (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_1_2 | x | 32 bit UUID (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_1_3 | x | 16 bit UUID (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Service Search Request PDU
+==========================
+**Table 2: Service Search Request**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_2_1 | x | Service Search Response (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_2_2 | | Generates continuation state in Service |
+| | | Search Response (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Service Search Request PDU
+==========================
+**Table 3: Error Response to Invalid Service Search Request**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_3_1 | x | Error response to Service Search Request (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Service Attribute Request PDU
+=============================
+**Table 4: Service Attribute Request**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_4_1 | x | Service Attribute Response (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_4_2 | | Generates continuation state in Service |
+| | | Attribute Response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_4_3 | x | Service Attribute Response with |
+| | | AdditionalProtocolDescriptorList attribute |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Service Attribute Request PDU
+=============================
+**Table 5: Error Response to Invalid Service Attribute Request**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_5_1 | x | Error response to Service Attribute Request |
+| | | (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Service Search Attribute Request PDU
+====================================
+**Table 6: Service Search Attribute Request**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_6_1 | x | Service Search Attribute Response (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_6_2 | | Generates continuation state in Service |
+| | | Search Attribute Response (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_6_3 | x | Service Search Attribute Response with |
+| | | AdditionalProtocolDescriptorList attribute |
+| | | (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Service Search Attribute Request PDU
+====================================
+**Table 7: Invalid Service Search Attribute Request**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_7_1 | x | Error response to Service Search Attribute |
+| | | Request (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Service Browsing
+================
+**Table 8: Service Browsing**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_8_1 | | Browsing, using SDP_ServiceSearchRequest and |
+| | | SDP_ServiceAttributeRequest (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_8_2 | | Browsing, using |
+| | | SDP_ServiceSearchAttributeRequest (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+
+Attributes
+==========
+**Table 9: Attributes Present in IUT**
+Prerequisite: SDP 1b/1 "Server"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SDP_9_1 | | ServiceID (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_2 | x | ProtocolDescriptorList (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_3 | | ServiceRecordState (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_4 | | ServiceInfoTimeToLive (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_5 | | BrowseGroupList (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_6 | | LanguageBaseAttributeIdList (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_7 | | ServiceAvailability (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_8 | | IconURL (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_9 | x | ServiceName (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_10 | x | ServiceDescription (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_11 | | ProviderName (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_12 | | VersionNumberList (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_13 | | ServiceDataBaseState (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_14 | x | BluetoothProfileDescriptorList (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_15 | | DocumentationURL (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_16 | | ClientExecutableURL (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_17 | | AdditionalProtocolDescriptorList (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_18 | x | ServiceRecordHandle (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SDP_9_19 | x | ServiceClassIDList (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Optional IF SDP 9/2 "ProtocolDescriptorList", otherwise Excluded.
diff --git a/doc/qualification/sdp-pts.rst b/doc/qualification/sdp-pts.rst
new file mode 100644
index 000000000..1c80c4c58
--- /dev/null
+++ b/doc/qualification/sdp-pts.rst
@@ -0,0 +1,63 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+================
+SDP test results
+================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++--------------------+----------+---------+-------+--------------------------+
+| Test name | Result | Kernel | BlueZ | |
++====================+==========+=========+=======+==========================+
+| SDP/SR/SA/BV-01-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SA/BV-05-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SA/BV-17-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SA/BV-20-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SA/BV-21-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SA/BI-01-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SA/BI-02-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SA/BI-03-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SS/BV-01-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SS/BV-04-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SS/BI-01-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SS/BI-02-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SSA/BV-01-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SSA/BV-02-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SSA/BV-03-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SSA/BV-04-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SSA/BV-11-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SSA/BV-23-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SSA/BI-01-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
+| SDP/SR/SSA/BI-02-C | PASS | 6.1 | 5.69 | |
++--------------------+----------+---------+-------+--------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 10/13] doc/qualification: Add PICS and howto for the SPP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (7 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 09/13] doc/qualification: Add PICS and howto for the SDP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 11/13] doc/qualification: Add PICS and howto for the HoGP qualification Frédéric Danis
` (4 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/spp-pics.rst | 127 +++++++++++++++++++++++++++++++++
doc/qualification/spp-pts.rst | 35 +++++++++
2 files changed, 162 insertions(+)
create mode 100644 doc/qualification/spp-pics.rst
create mode 100644 doc/qualification/spp-pts.rst
diff --git a/doc/qualification/spp-pics.rst b/doc/qualification/spp-pics.rst
new file mode 100644
index 000000000..44fbec590
--- /dev/null
+++ b/doc/qualification/spp-pics.rst
@@ -0,0 +1,127 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+==================
+Serial Port Pofile
+==================
+(TCRL 2023-1, SPP.ICS.p9)
+
+
+Versions
+========
+**Table 0: X.Y Versions**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SPP_0_2 | x | SPP v1.2 (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Core Configuration
+==================
+**Table 0a: Core Configuration Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SPP_0a_1 | x | Profile supported over BR/EDR (C.1, C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_0a_2 | | Profile supported over LE (C.2) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Excluded for this Profile IF CORE 41/2 “LE Core Configuration”.
+- C.2: Excluded for this Profile.
+- C.3: Mandatory for this Profile.
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++------------------+----------+----------------------------------------------+
++ Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SPP_1_1 | x | Device A (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_1_2 | x | Device B (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one.
+
+Support of SPP Service
+======================
+**Table 2: Serial Port Service Support**
+
++------------------+----------+----------------------------------------------+
++ Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SPP_2_1 | x | Support of SPP as a standalone profile (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_2_1a | x | SPP as a standalone profile - Device A (C.2, |
+| | | C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_2_1b | x | SPP as a standalone profile - Device B (C.2, |
+| | | C.4) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.2: Mandatory to support at least one IF SPP 2/1 “Support of SPP as a*
+ standalone profile”, otherwise Excluded.
+- C.3: Optional IF SPP 1/1 “Device A”, otherwise Excluded.
+- C.4: Optional IF SPP 1/2 “Device B”, otherwise Excluded.
+
+Application Procedures
+======================
+**Table 3: Application Procedures**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SPP_3_1 | x | Establish link and set up virtual serial |
+| | | connection (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_3_2 | x | Accept link and virtual serial connection |
+| | | establishment (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_3_3 | x | Register Service record for application in |
+| | | local SDP database (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_3_4 | | No release in Sniff mode. Sniff mode enabled |
+| | | in the Link Manager (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_3_5 | | No release in Hold mode. Hold mode enabled |
+| | | in the Link Manager (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_3_7 | | No release after Master/Slave switch. M/S |
+| | | switch enabled in the Link Manager (O) |
++------------------+----------+----------------------------------------------+
+
+- O: Optional
+- C.1: Mandatory IF SPP 1/1 “Device A”, otherwise Optional.
+- C.2: Mandatory IF SPP 1/2 “Device B”, otherwise Optional.
+- C.3: Mandatory IF SPP 2/1b “SPP as a standalone profile – Device B”,
+ otherwise Optional.
+
+Service Discovery Protocol
+==========================
+**Table 4: SDP Dependencies**
+Prerequisite: SPP 2/1b “SPP as a standalone profile – Device B”
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_SPP_4_1 | x | ServiceClassIDList (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_4_2 | x | ProtocolDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_4_5 | x | ServiceName (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_SPP_4_6 | x | BluetoothProfileDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+Note: If more than one Serial Port Profile Service is available, more than one
+SerialPort SDP record can be registered
diff --git a/doc/qualification/spp-pts.rst b/doc/qualification/spp-pts.rst
new file mode 100644
index 000000000..8fd995d18
--- /dev/null
+++ b/doc/qualification/spp-pts.rst
@@ -0,0 +1,35 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+================
+SPP test results
+================
+
+:PTS version: 8.5.2 Build 5
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++==============================+==========+=========+=======+=========================================================================+
+| SPP/DEVA/APP/BV-01-C | PASS | 6.1 | 5.69 | Run 'rctest -n -U spp <BD_ADDR>' before starting the test |
+| | | | | |
+| | | | | Kill rctest upon request |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| SPP/DEVB/APP/BV-02-C | PASS | 6.1 | 5.69 | Run 'python ./test-profile -u spp -s -C 10' |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/CL/SPP-DEVA/SFC/BV-24-I | PASS | 6.1 | 5.69 | Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | Run 'rctest -n -U spp <BD_ADDR>' |
+| | | | | |
+| | | | | Kill rctest upon request |
++------------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 11/13] doc/qualification: Add PICS and howto for the HoGP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (8 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 10/13] doc/qualification: Add PICS and howto for the SPP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 12/13] doc/qualification: Add PICS and howto for the HSP qualification Frédéric Danis
` (3 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/hogp-pics.rst | 592 ++++++++++++++++++++++++++++++++
doc/qualification/hogp-pts.rst | 104 ++++++
2 files changed, 696 insertions(+)
create mode 100644 doc/qualification/hogp-pics.rst
create mode 100644 doc/qualification/hogp-pts.rst
diff --git a/doc/qualification/hogp-pics.rst b/doc/qualification/hogp-pics.rst
new file mode 100644
index 000000000..d5440e02f
--- /dev/null
+++ b/doc/qualification/hogp-pics.rst
@@ -0,0 +1,592 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+=====================
+HID over GATT Profile
+=====================
+(TCRL 2023-1, HOGP.ICS.p7)
+
+Version
+=======
+**Table 0: Major Versions (X.Y)**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_0_1 | x | HOGP v1.0 (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_1_1 | | HID Device (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_1_2 | x | Report Host (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_1_3 | | Boot Host (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one of HOGP 1/1 "HID Device" OR HOGP 1/2
+ "Report Host" OR HOGP 1/3 "Boot Host".
+
+Transports
+==========
+**Table 2: Transport Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_2_1 | | Profile supported over BR/EDR (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_2_2 | x | Profile supported over LE (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- C.1: Excluded for this Profile.
+
+HID Device
+==========
+**Table 3: Services - HID Device**
+
+Prerequisite: HOGP 1/1 "HID Device"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_3_1 | | HID Service (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_3_2 | | Multiple Service instances - HID Service (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_3_3 | | Battery Service (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_3_4 | | Device Information Service (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_3_5 | | Scan Parameters Service (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+HID Device
+==========
+**Table 4: Features - HID Device**
+
+Prerequisite: HOGP 1/1 "HID Device"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_4_1 | | Include HID Service UUID in AD in GAP |
+| | | Discoverable Mode (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_4_2 | | Include Local Name in AD or Scan Response |
+| | | Data (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_4_3 | | Include Appearance in AD or Scan Response |
+| | | Data (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_4_4 | | PnP ID (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_4_5 | | Report Characteristic (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_4_6 | | Non-HID Service characteristic described |
+| | | within Report Map characteristic (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_4_7 | | Report Map Characteristic - External Report |
+| | | Reference Characteristic descriptor (C.2) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one of HOGP 4/5 "Report Characteristic"
+ OR HOGP 4/6 "Non-HID Service characteristic described within Report Map
+ characteristic".
+- C.2: Mandatory IF HOGP 4/6 "Non-HID Service characteristic described within
+ Report Map characteristic", otherwise not defined.
+
+HID Device
+==========
+**Table 5: GAP Requirements - HID Device**
+
+Prerequisite: HOGP 1/1 "HID Device"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_5_1 | | Peripheral (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_5_2 | | Directed connectable mode (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_5_3 | | Undirected connectable mode (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_5_4 | | Bondable mode (Peripheral) (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_5_5 | | Bonding procedure (Peripheral) (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_5_6 | | LE security mode 1 (Peripheral) (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_5_7 | | Unauthenticated Pairing (LE security mode 1 |
+| | | level 2) (Peripheral) (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_5_8 | | Authenticated Pairing (LE security mode 1 |
+| | | level 3) (Peripheral) (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+HID Host
+========
+**Table 7a: GATT based Profile Support - Report Host**
+
+Prerequisite: HOGP 1/2 "Report Host"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_7a_1 | x | Scan Client (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+HID Host
+========
+**Table 9: Discover Service and Characteristics - Report Host**
+
+Prerequisite: HOGP 1/2 "Report Host"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_9_1 | x | Discover HID Service (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_2 | x | Discover Battery Service (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_3 | x | Discover Device Information Service (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_4 | x | Discover Scan Parameters Service (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_5 | x | Discover HID Service characteristic: Report |
+| | | Map (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_6 | x | Discover HID Service characteristic: Report |
+| | | Map - External Report Reference |
+| | | characteristic descriptor (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_7 | x | Discover HID Service characteristic: Report |
+| | | (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_8 | x | Discover HID Service characteristic: Report -|
+| | | Client Characteristic Configuration |
+| | | characteristic descriptor (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_9 | x | Discover HID Service characteristic: Report -|
+| | | Report Reference characteristic descriptor |
+| | | (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_10 | x | Discover HID Service characteristic: HID |
+| | | Information (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_11 | x | Discover HID Service characteristic: HID |
+| | | Control Point (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_12 | | Discover HID Service characteristic: Protocol|
+| | | Mode (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_13 | x | Discover Battery Service characteristic: |
+| | | Battery Level (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_14 | x | Discover Battery Service characteristic: |
+| | | Battery Level - Client Characteristic |
+| | | Configuration characteristic descriptor (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_15 | x | Discover Device Information Service |
+| | | characteristic: PnP ID (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_9_16 | x | Discover non-HID Service characteristic: |
+| | | Report Reference characteristic descriptor |
+| | | (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+
+HID Host
+========
+**Table 10: Discover Service & Characteristics - Boot Host**
+
+Prerequisite: HOGP 1/3 "Boot Host"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_10_1 | | Discover HID Service (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_2 | | Discover Battery Service (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_3 | | Discover Device Information Service (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_4 | | Discover HID Service characteristic: Protocol|
+| | | Mode (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_5 | | Discover HID Service characteristic: Boot |
+| | | Keyboard Input Report (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_6 | | Discover HID Service characteristic: Boot |
+| | | Keyboard Input Report - Client Characteristic|
+| | | Configuration characteristic descriptor (C.3)|
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_7 | | Discover HID Service characteristic: Boot |
+| | | Keyboard Output Report (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_8 | | Discover HID Service characteristic: Boot |
+| | | Mouse Input Report (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_9 | | Discover HID Service characteristic: Boot |
+| | | Mouse Input Report - Client Characteristic |
+| | | Configuration characteristic descriptor (C.4)|
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_10 | | Discover Battery Service characteristic: |
+| | | Battery Level (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_11 | | Discover Battery Service characteristic: |
+| | | Battery Level - Client Characteristic |
+| | | Configuration characteristic descriptor (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_10_12 | | Discover Device Information Service |
+| | | characteristic: PnP ID (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one of HOGP 10/5 "Discover HID Service
+ characteristic: Boot Keyboard Input Report" OR HOGP 10/7 "Discover HID
+ Service characteristic: Boot Keyboard Output Report" OR HOGP 10/8 "Discover
+ HID Service characteristic: Boot Mouse Input Report".
+- C.2: Mandatory to support none or all of HOGP 10/5 "Discover HID Service
+ characteristic: Boot Keyboard Input Report" OR HOGP 10/7 "Discover HID
+ Service characteristic: Boot Keyboard Output Report".
+- C.3: Mandatory IF HOGP 10/5 "Discover HID Service characteristic: Boot
+ Keyboard Input Report", otherwise Excluded.
+- C.4: Mandatory IF HOGP 10/8 "Discover HID Service characteristic: Boot
+ Mouse Input Report", otherwise Excluded.
+
+HID Host
+========
+**Table 11: Features - Report Host**
+
+Prerequisite: HOGP 1/2 "Report Host"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_11_1 | x | Read Report Map characteristic (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_2 | x | Read Report Map characteristic: External |
+| | | Report Reference characteristic descriptor |
+| | | (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_3 | | Read Report characteristic: Report Type: |
+| | | Input Report (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_4 | | Write Report characteristic: Report Type: |
+| | | Input Report (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_5 | | Read Report characteristic: Report Type: |
+| | | Output Report (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_6 | | Write - Report characteristic: Report Type: |
+| | | Output Report (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_7 | | Read - Report characteristic: Report Type: |
+| | | Feature Report (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_8 | | Write - Report characteristic: Report Type: |
+| | | Feature Report (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_9 | x | Read Report characteristic: Report Reference |
+| | | characteristic descriptor (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_10 | x | Read Report characteristic: Input Report: |
+| | | Client Characteristic Configuration |
+| | | characteristic descriptor (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_11 | x | Report characteristic configuration: enable |
+| | | notifications (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_11a | | Report characteristic configuration: disable |
+| | | notifications (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_12 | | Read HID Information characteristic (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_13 | | Suspend State (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_14 | | Exit Suspend State (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_15 | | Write HID Control Point characteristic: |
+| | | Suspend command (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_16 | | Write HID Control Point characteristic: Exit |
+| | | Suspend command (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_17 | | Read Protocol Mode characteristic: Get |
+| | | Protocol command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_18 | | Write Protocol Mode characteristic: Set |
+| | | Report Protocol Mode command (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_19 | x | Read Battery Level characteristic (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_20 | | Read Battery Level characteristic: Client |
+| | | Characteristic Configuration characteristic |
+| | | descriptor (C.6) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_21 | | Battery Level characteristic configuration: |
+| | | enable notifications (C.6) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_21a | | Battery Level characteristic configuration: |
+| | | disable notifications (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_22 | x | Read non-HID Service characteristic: Report |
+| | | Reference characteristic descriptor (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_23 | x | Read PnP ID characteristic (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_24 | x | Notify Report characteristic (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_25 | | Notify Battery Level characteristic (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_26 | x | Report Characteristic: Input Report type |
+| | | supported (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_27 | | Report Characteristic: Output Report type |
+| | | supported (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_11_28 | | Report Characteristic: Feature Report type |
+| | | supported (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory IF HOGP 11/13 "Suspend State", otherwise Excluded.
+- C.2: Optional IF HOGP 11/26 "Report Characteristic: Input Report type
+ supported", otherwise Excluded.
+- C.3: Optional IF HOGP 11/27 "Report Characteristic: Output Report type
+ supported", otherwise Excluded.
+- C.4: Optional IF HOGP 11/28 "Report Characteristic: Feature Report type
+ supported", otherwise Excluded.
+- C.5: Mandatory to support at least one of HOGP 11/19 "Read Battery Level
+ characteristic" OR HOGP 11/25 "Notify Battery Level characteristic".
+- C.6: Mandatory IF HOGP 11/25 "Notify Battery Level characteristic",
+ otherwise Excluded.
+
+HID Host
+========
+**Table 12: Features - Boot Host**
+
+Prerequisite: HOGP 1/3 "Boot Host"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_12_1 | | Read Protocol Mode characteristic: Get |
+| | | Protocol Mode command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_2 | | Write Protocol Mode characteristic: Set Boot |
+| | | Protocol Mode command (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_3 | | Read HID Service characteristic: Boot |
+| | | Keyboard Input Report (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_4 | | Write HID Service characteristic: Boot |
+| | | Keyboard Input Report (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_5 | | Read Client Characteristic Configuration |
+| | | characteristic descriptor for Boot Keyboard |
+| | | Input Report (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_6 | | Boot Keyboard Input Report characteristic |
+| | | configuration: enable notifications (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_6a | | Boot Keyboard Input Report characteristic |
+| | | configuration: disable notifications (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_7 | | Read HID Service characteristic: Boot |
+| | | Keyboard Output Report (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_8 | | Write HID Service characteristic: Boot |
+| | | Keyboard Output Report (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_9 | | Read HID Service characteristic: Boot Mouse |
+| | | Input Report (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_10 | | Write HID Service characteristic: Boot Mouse |
+| | | Input Report (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_11 | | Read Client Characteristic Configuration |
+| | | characteristic descriptor for Boot Mouse |
+| | | Input Report (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_12 | | Boot Mouse Input Report characteristic |
+| | | configuration: enable notifications (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_12a | | Boot Mouse Input Report characteristic |
+| | | configuration: disable notifications (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_13 | | Notify Boot Keyboard Input Report |
+| | | characteristic (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_14 | | Notify Boot Mouse Input Report characteristic|
+| | | (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_15 | | Read Battery Level characteristic (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_16 | | Read Battery Level characteristic: Client |
+| | | Characteristic Configuration characteristic |
+| | | descriptor (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_17 | | Battery Level characteristic configuration: |
+| | | enable notifications (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_17a | | Battery Level characteristic configuration: |
+| | | disable notifications (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_18 | | Notify Battery Level characteristic (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_12_19 | | Read PnP ID characteristic (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory IF HOGP 10/5 "Discover HID Service characteristic: Boot
+ Keyboard Input Report" OR HOGP 10/7 "Discover HID Service characteristic:
+ Boot Keyboard Output Report", otherwise Excluded.
+- C.2: Mandatory IF HOGP 10/8 "Discover HID Service characteristic: Boot
+ Mouse Input Report", otherwise Excluded.
+
+HID Host
+========
+**Table 13: GATT Requirements - Report Host**
+
+Prerequisite: HOGP 1/2 "Report Host"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_13_1 | x | GATT Client over LE (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_3 | x | Discover All Primary Services (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_4 | x | Discover Primary Services by Service UUID |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_5 | x | Find Included Services (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_6 | x | Discover All Characteristics of a Service |
+| | | (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_7 | x | Discover Characteristics by UUID (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_8 | x | Discover All Characteristic Descriptors (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_9 | x | Read Characteristic Value (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_10 | x | Read Using Characteristic UUID (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_11 | x | Read Long Characteristic Values (C.4) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_12 | x | Read Characteristic Descriptors (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_13 | x | Write without Response (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_14 | x | Write Characteristic Value (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_15 | x | Write Characteristic Descriptors (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_16 | x | Notifications (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_13_17 | | Exchange MTU (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one of HOGP 13/3 "Discover All Primary
+ Services" OR HOGP 13/4 "Discover Primary Services by Service UUID".
+- C.2: Mandatory to support at least one of HOGP 13/6 "Discover All
+ Characteristics of a Service" OR HOGP 13/7 "Discover Characteristics by
+ UUID".
+- C.3: Mandatory to support at least one of HOGP 13/9 "Read Characteristic
+ Value" OR HOGP 13/10 "Read Using Characteristic UUID".
+- C.4: Mandatory IF HOGP 13/9 "Read Characteristic Value" OR HOGP 13/10 "Read
+ Using Characteristic UUID", otherwise not defined.
+
+HID Host
+========
+**Table 14: GATT Requirements - Boot Host**
+
+Prerequisite: HOGP 1/3 "Boot Host"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_14_1 | | GATT Client over LE (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_3 | | Discover All Primary Services (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_4 | | Discover Primary Services by Service UUID |
+| | | (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_5 | | Discover All Characteristics of a Service (O)|
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_6 | | Discover Characteristics by UUID (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_7 | | Discover All Characteristic Descriptors (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_8 | | Read Characteristic Value (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_9 | | Read Using Characteristic UUID (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_10 | | Read Characteristic Descriptors (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_11 | | Write without Response (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_12 | | Write Characteristic Value (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_13 | | Write Characteristic Descriptors (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_14_14 | | Notifications (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory to support at least one of HOGP 14/3 "Discover All Primary
+ Services" OR HOGP 14/4 "Discover Primary Services by Service UUID".
+
+HID Host
+========
+**Table 15: GAP Requirements - HID Host**
+
+Prerequisite: HOGP 1/2 "Report Host" OR HOGP 1/3 "Boot Host"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HOGP_15_1 | x | Central (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_15_2 | x | LE security mode 1 (Central) (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_15_3 | x | Unauthenticated Pairing (LE security mode 1 |
+| | | level 2) (Central) (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HOGP_15_4 | | Authenticated Pairing (LE security mode 1 |
+| | | level 3) (Central) (O) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
diff --git a/doc/qualification/hogp-pts.rst b/doc/qualification/hogp-pts.rst
new file mode 100644
index 000000000..9c82b70c2
--- /dev/null
+++ b/doc/qualification/hogp-pts.rst
@@ -0,0 +1,104 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+=================
+HoGP test results
+=================
+
+:PTS version: 8.5.3 Build 4
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++======================+==========+=========+=======+=========================================================================+
+| HOGP/RH/HGDS/BV-01-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDS/BV-02-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDS/BV-03-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDR/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-02-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-03-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-04-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-05-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-06-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-07-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-14-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-15-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGDC/BV-16-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGRF/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Use the following command to verify the Report Map Characteristic: |
+| | | | | |
+| | | | | - find /sys/class/misc/uhid/ -name report_descriptor -exec hexdump -C \ |
+| | | | | {} \; |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGRF/BV-02-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGRF/BV-04-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGRF/BV-05-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGRF/BV-06-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGRF/BV-08-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGRF/BV-10-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGRF/BV-12-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGCF/BV-01-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGNF/BV-01-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGNF/BI-01-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HOGP/RH/HGNF/BI-02-I | PASS | 6.1 | 5.69 | |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 12/13] doc/qualification: Add PICS and howto for the HSP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (9 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 11/13] doc/qualification: Add PICS and howto for the HoGP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 13/13] doc/qualification: Add PICS and howto for the IOPT qualification Frédéric Danis
` (2 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/hsp-pics.rst | 234 +++++++++++++++++++++++++++++++++
doc/qualification/hsp-pts.rst | 87 ++++++++++++
2 files changed, 321 insertions(+)
create mode 100644 doc/qualification/hsp-pics.rst
create mode 100644 doc/qualification/hsp-pts.rst
diff --git a/doc/qualification/hsp-pics.rst b/doc/qualification/hsp-pics.rst
new file mode 100644
index 000000000..cc607514f
--- /dev/null
+++ b/doc/qualification/hsp-pics.rst
@@ -0,0 +1,234 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+===============
+Headset Profile
+===============
+(TCRL 2023-1, HSP.ICS.p6)
+
+Versions
+========
+**Table 0: Major Versions (X.Y)**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_0_1 | | HSP v1.1 DeprecatedTo be withdrawn (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_0_2 | x | HSP v1.2 (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support one and only one of HSP 0/1 "HSP v1.1" OR HSP 0/2 "HSP v1.2".
+
+Roles
+=====
+**Table 1: Role Requirements**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_1_1 | x | Audio Gateway (AG) (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_1_2 | | Headset (HS) (C.1) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one of HSP 1/1 "Audio Gateway (AG)" OR HSP 1/2 "Headset (HS)".
+
+Audio Gateway Role
+==================
+**Table 2: Application Features (AG)**
+
+Prerequisite: HSP 1/1 "Audio Gateway (AG)"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_2_1 | x | Incoming audio connection establishment (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_2 | | Ring (AT command) (C.3) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_3 | | Inband ring tone (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_4 | | Outgoing audio connection establishment (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_5 | x | Audio connection release from HS (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_6 | | Audio connection release from AG (C.5) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_7 | x | Audio connection transfer: AG to HS (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_8 | x | Audio connection transfer: HS to AG (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_9 | | Remote audio volume control (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_10 | | HS informs AG about local changes of audio |
+| | | volume (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_11 | | Audio volume setting storage by HS (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_12 | | Remote microphone gain control (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_13 | | HS informs AG about local changes of |
+| | | microphone gain (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_14 | | Microphone gain setting storage by HS (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2_15 | x | Connection Handling with Detach/Page (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory IF HSP 2/10 "HS informs AG about local changes of audio volume", otherwise Optional.
+- C.2: Mandatory IF HSP 2/13 "HS informs AG about local changes of microphone gain", otherwise Optional.
+- C.3: Excluded IF HSP 2/3 "Inband ring tone" AND HSP 4/1 "E2112/TSE 1134 (212): Show that in-band ringing and RING are mutually exclusive", otherwise Optional.
+- C.5: Mandatory IF HSP 0/1 "HSP v1.1", otherwise Optional.
+
+Audio Gateway Role
+==================
+**Table 2a: GAP Requirements**
+
+Prerequisite: HSP 1/1 "Audio Gateway (AG)"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_2a_1 | x | Initiation of general inquiry (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Audio Gateway Role
+==================
+**Table 2b: SDP Requirements**
+
+Prerequisite: HSP 1/1 "Audio Gateway (AG)"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_2b_1 | x | ProtocolDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_2b_2 | x | BluetoothProfileDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Audio Gateway Role
+==================
+**Table 2c: RFCOMM Requirements**
+
+Prerequisite: HSP 1/1 "Audio Gateway (AG)"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_2c_1 | x | RFCOMM with TS 07.10 (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Headset Role
+============
+**Table 3: Application Features (HS)**
+
+Prerequisite: HSP 1/2 "Headset (HS)"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_3_1 | | Incoming audio connection establishment (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_2 | | Ring (AT command) (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_3 | | Inband ring tone (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_4 | | Outgoing audio connection establishment (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_5 | | Audio connection release from HS (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_6 | | Audio connection release from AG (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_7 | | Audio connection transfer: AG to HS (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_8 | | Audio connection transfer: HS to AG (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_9 | | Remote audio volume control (C.1) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_10 | | HS informs AG about local changes of audio |
+| | | volume (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_11 | | Audio volume setting storage by HS (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_12 | | Remote microphone gain control (C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_13 | | HS informs AG about local changes of |
+| | | microphone gain (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_14 | | Microphone gain setting storage by HS (O) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3_15 | | Connection Handling with Detach/Page (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+- O: Optional
+- C.1: Mandatory IF HSP 3/10 "HS informs AG about local changes of audio volume", otherwise Optional.
+- C.2: Mandatory IF HSP 3/13 "HS informs AG about local changes of microphone gain", otherwise Optional.
+
+Headset Role
+============
+**Table 3a: GAP Requirements**
+
+Prerequisite: HSP 1/2 "Headset (HS)"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_3a_1 | | Non-discoverable mode (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3a_2 | | General discoverable mode (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Headset Role
+============
+**Table 3b: SDP Requirements**
+
+Prerequisite: HSP 1/2 "Headset (HS)"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_3b_1 | | ProtocolDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+| TSPC_HSP_3b_2 | | BluetoothProfileDescriptorList (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Headset Role
+============
+**Table 3c: RFCOMM Requirements**
+
+Prerequisite: HSP 1/2 "Headset (HS)"
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_3c_1 | | RFCOMM with TS 07.10 (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Errata Service Releases
+=======================
+**Table 4: Errata Service Releases (ESR)**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_HSP_4_1 | | E2112/TSE 1134 (212): Show that in-band |
+| | | ringing and RING are mutually exclusive (C.1)|
++------------------+----------+----------------------------------------------+
+
+- C.1: Excluded IF HSP 0/2 "HSP v1.2", otherwise Optional.
diff --git a/doc/qualification/hsp-pts.rst b/doc/qualification/hsp-pts.rst
new file mode 100644
index 000000000..1233bc2a4
--- /dev/null
+++ b/doc/qualification/hsp-pts.rst
@@ -0,0 +1,87 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+================
+HSP test results
+================
+
+:PTS version: 8.5.3 Build 4
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+- PipeWire version >= 1.1.81
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++----------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++============================+==========+=========+=======+=========================================================================+
+| HSP/AG/IAC/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start PulseAudio Volume Control |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Pair to PTS |
+| | | | | |
+| | | | | Verify in Configuration tab that PTS-HFP profile is set to Headset Head |
+| | | | | Unit, or select it |
+| | | | | |
+| | | | | Start playing file using Lollypop |
+| | | | | |
+| | | | | Verify in PulseAudio Volume Control's Output Devices tab that audio is |
+| | | | | playing on PTS-HFP device |
+| | | | | |
+| | | | | On request disconnect |
++----------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HSP/AG/ACR/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start PulseAudio Volume Control |
+| | | | | |
+| | | | | - Start playing file using Lollypop |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Verify in Configuration tab that PTS-HFP profile is set to Headset Head |
+| | | | | Unit, or select it |
+| | | | | |
+| | | | | Verify in PulseAudio Volume Control's Output Devices tab that audio is |
+| | | | | playing on PTS-HFP device |
+| | | | | |
+| | | | | On request disconnect |
++----------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HSP/AG/ACT/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start PulseAudio Volume Control |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Verify in Configuration tab that PTS-HFP profile is set to Headset Head |
+| | | | | Unit, or select it |
+| | | | | |
+| | | | | Start playing file using Lollypop |
+| | | | | |
+| | | | | Verify in PulseAudio Volume Control's Output Devices tab that audio is |
+| | | | | playing on PTS-HFP device |
+| | | | | |
+| | | | | On request disconnect |
++----------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| HSP/AG/ACT/BV-02-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start PulseAudio Volume Control |
+| | | | +-------------------------------------------------------------------------+
+| | | | | Connect to PTS |
+| | | | | |
+| | | | | Verify in Configuration tab that PTS-HFP profile is set to Headset Head |
+| | | | | Unit, or select it |
+| | | | | |
+| | | | | Start playing file using Lollypop |
+| | | | | |
+| | | | | Verify in PulseAudio Volume Control's Output Devices tab that audio is |
+| | | | | playing on PTS-HFP device |
+| | | | | |
+| | | | | On request disconnect |
++----------------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/CL/HSP-AG/SFC/BV-16-I | PASS | 6.1 | 5.69 | |
++----------------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH BlueZ v2 13/13] doc/qualification: Add PICS and howto for the IOPT qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (10 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 12/13] doc/qualification: Add PICS and howto for the HSP qualification Frédéric Danis
@ 2026-01-27 17:38 ` Frédéric Danis
2026-01-27 18:30 ` [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification patchwork-bot+bluetooth
2026-01-27 18:37 ` [BlueZ,v2,01/13] " bluez.test.bot
13 siblings, 0 replies; 15+ messages in thread
From: Frédéric Danis @ 2026-01-27 17:38 UTC (permalink / raw)
To: linux-bluetooth
---
doc/qualification/iopt-pics.rst | 37 ++++++++++++++++
doc/qualification/iopt-pts.rst | 75 +++++++++++++++++++++++++++++++++
2 files changed, 112 insertions(+)
create mode 100644 doc/qualification/iopt-pics.rst
create mode 100644 doc/qualification/iopt-pts.rst
diff --git a/doc/qualification/iopt-pics.rst b/doc/qualification/iopt-pics.rst
new file mode 100644
index 000000000..2dab3c25d
--- /dev/null
+++ b/doc/qualification/iopt-pics.rst
@@ -0,0 +1,37 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+===========================
+Interoperability Test Suite
+===========================
+(TCRL 2023-1)
+
+Interoperability
+================
+**Table 1: Interoperability Test Specification**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_IOPT_1_1 | x | Interoperability (M) |
++------------------+----------+----------------------------------------------+
+
+- M: Mandatory
+
+Interoperability
+================
+**Table 2: Design Configuration**
+
++------------------+----------+----------------------------------------------+
+| Parameter Name | Selected | Description |
++==================+==========+==============================================+
+| TSPC_IOPT_2_1 | x | BR/EDR (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_IOPT_2_2 | x | LE (C.1, C.2) |
++------------------+----------+----------------------------------------------+
+| TSPC_IOPT_2_3 | x | BR/EDR/LE (C.3) |
++------------------+----------+----------------------------------------------+
+
+- C.1: Mandatory to support at least one transport.
+- C.2: Mandatory If IOP 2/3 "BR/EDR/LE" is Supported, otherwise Optional.
+- C.3: Mandatory if IOP 2/1 "BR/EDR" AND IOP 2/2 "LE" is Supported, otherwise Excluded.
diff --git a/doc/qualification/iopt-pts.rst b/doc/qualification/iopt-pts.rst
new file mode 100644
index 000000000..13f05d460
--- /dev/null
+++ b/doc/qualification/iopt-pts.rst
@@ -0,0 +1,75 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+.. Copyright © 2025-2026 Collabora Ltd.
+
+=================
+IOPT test results
+=================
+
+:PTS version: 8.5.3 Build 4
+
+Setup
+=====
+
+- Remove PTS device from Bluetooth devices
+
+- In ICS select:
+
+ - TSPC_support_AdvancedAudioDistributionProfile_Sink
+
+ - TSPC_support_AdvancedAudioDistributionProfile_Source
+
+ - TSPC_support_AVRemoteControlProfile_CT
+
+ - TSPC_support_AVRemoteControlProfile_TG
+
+ - TSPC_support_HeadsetProfile_AG
+
+ - TSPC_support_SerialPortProfile_Service
+
+Tests
+=====
+
+The kernel and BlueZ versions represent the oldest version without backport
+for which we know the test passed.
+
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| Test name | Result | Kernel | BlueZ | |
++======================+==========+=========+=======+=========================================================================+
+| IOPT/SR/COD/BV-01-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start '$ bluetoothctl' |
+| | | | | |
+| | | | | - [bluetooth]# discoverable on |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/SR/SDSS/BV-02-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start '$ bluetoothctl' |
+| | | | | |
+| | | | | - [bluetooth]# discoverable on |
+| | | | | |
+| | | | | - Run in a second terminal: |
+| | | | | |
+| | | | | - python ./test-profile -u spp -s -C 10 |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/SR/SDAS/BV-03-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Start '$ bluetoothctl' |
+| | | | | |
+| | | | | - [bluetooth]# discoverable on |
+| | | | | |
+| | | | | - Run in a second terminal: |
+| | | | | |
+| | | | | - python ./test-profile -u spp -s -C 10 |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
+| IOPT/CL/SDR/BV-04-I | PASS | 6.1 | 5.69 | Pre-condition: |
+| | | | | |
+| | | | | - Remove PTS device from Bluetooth devices |
+| | | | | |
+| | | | | - Start '$ bluetoothctl' |
+| | | | +-------------------------------------------------------------------------+
+| | | | | - Pair PTS device |
+| | | | | |
+| | | | | - Check UUIDs in bluetoothctl: A2DP (110A, 110B), AVRCP (110C), |
+| | | | | HID (1124), HFP (111E, 111F), HSP(1112), OPP(1105), SAP(112D), |
+| | | | | SPP(1101) |
++----------------------+----------+---------+-------+-------------------------------------------------------------------------+
--
2.43.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (11 preceding siblings ...)
2026-01-27 17:38 ` [PATCH BlueZ v2 13/13] doc/qualification: Add PICS and howto for the IOPT qualification Frédéric Danis
@ 2026-01-27 18:30 ` patchwork-bot+bluetooth
2026-01-27 18:37 ` [BlueZ,v2,01/13] " bluez.test.bot
13 siblings, 0 replies; 15+ messages in thread
From: patchwork-bot+bluetooth @ 2026-01-27 18:30 UTC (permalink / raw)
To: =?utf-8?b?RnLDqWTDqXJpYyBEYW5pcyA8ZnJlZGVyaWMuZGFuaXNAY29sbGFib3JhLmNvbT4=?=
Cc: linux-bluetooth
Hello:
This series was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Tue, 27 Jan 2026 18:38:29 +0100 you wrote:
> ---
> doc/qualification/a2dp-pics.rst | 904 ++++++++++++++++++++++++++++++++
> doc/qualification/a2dp-pts.rst | 273 ++++++++++
> 2 files changed, 1177 insertions(+)
> create mode 100644 doc/qualification/a2dp-pics.rst
> create mode 100644 doc/qualification/a2dp-pts.rst
Here is the summary with links:
- [BlueZ,v2,01/13] doc/qualification: Add PICS and howto for the A2DP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=72e75617ab8e
- [BlueZ,v2,02/13] doc/qualification: Add PICS and howto for the AVCTP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=ae788af205ad
- [BlueZ,v2,03/13] doc/qualification: Add PICS and howto for the AVDTP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=a54bee4668f4
- [BlueZ,v2,04/13] doc/qualification: Add PICS and howto for the AVRCP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=3a6a1cc0c898
- [BlueZ,v2,05/13] doc/qualification: Add PICS and howto for the GAVDP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=4a38072ba45e
- [BlueZ,v2,06/13] doc/qualification: Add PICS and howto for the HID qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=d4a8e19cf911
- [BlueZ,v2,07/13] doc/qualification: Add PICS and howto for the RFComm qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=04d67cea10f7
- [BlueZ,v2,08/13] doc/qualification: Add PICS and howto for the ScPP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=9621ab4d51c5
- [BlueZ,v2,09/13] doc/qualification: Add PICS and howto for the SDP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=516b7adfa7a3
- [BlueZ,v2,10/13] doc/qualification: Add PICS and howto for the SPP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=feecc7f60de8
- [BlueZ,v2,11/13] doc/qualification: Add PICS and howto for the HoGP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=402d0c52ac40
- [BlueZ,v2,12/13] doc/qualification: Add PICS and howto for the HSP qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=e4b4db9702e6
- [BlueZ,v2,13/13] doc/qualification: Add PICS and howto for the IOPT qualification
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=a3c0aa5fc106
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [BlueZ,v2,01/13] doc/qualification: Add PICS and howto for the A2DP qualification
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
` (12 preceding siblings ...)
2026-01-27 18:30 ` [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification patchwork-bot+bluetooth
@ 2026-01-27 18:37 ` bluez.test.bot
13 siblings, 0 replies; 15+ messages in thread
From: bluez.test.bot @ 2026-01-27 18:37 UTC (permalink / raw)
To: linux-bluetooth, frederic.danis
[-- Attachment #1: Type: text/plain, Size: 1262 bytes --]
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=1047711
---Test result---
Test Summary:
CheckPatch PENDING 0.41 seconds
GitLint PENDING 0.34 seconds
BuildEll PASS 19.72 seconds
BluezMake PASS 634.00 seconds
MakeCheck PASS 18.80 seconds
MakeDistcheck PASS 239.67 seconds
CheckValgrind PASS 290.96 seconds
CheckSmatch PASS 349.43 seconds
bluezmakeextell PASS 183.19 seconds
IncrementalBuild PENDING 0.38 seconds
ScanBuild PASS 1074.77 seconds
Details
##############################
Test: CheckPatch - PENDING
Desc: Run checkpatch.pl script
Output:
##############################
Test: GitLint - PENDING
Desc: Run gitlint
Output:
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-01-27 18:37 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-27 17:38 [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 02/13] doc/qualification: Add PICS and howto for the AVCTP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 03/13] doc/qualification: Add PICS and howto for the AVDTP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 04/13] doc/qualification: Add PICS and howto for the AVRCP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 05/13] doc/qualification: Add PICS and howto for the GAVDP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 06/13] doc/qualification: Add PICS and howto for the HID qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 07/13] doc/qualification: Add PICS and howto for the RFComm qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 08/13] doc/qualification: Add PICS and howto for the ScPP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 09/13] doc/qualification: Add PICS and howto for the SDP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 10/13] doc/qualification: Add PICS and howto for the SPP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 11/13] doc/qualification: Add PICS and howto for the HoGP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 12/13] doc/qualification: Add PICS and howto for the HSP qualification Frédéric Danis
2026-01-27 17:38 ` [PATCH BlueZ v2 13/13] doc/qualification: Add PICS and howto for the IOPT qualification Frédéric Danis
2026-01-27 18:30 ` [PATCH BlueZ v2 01/13] doc/qualification: Add PICS and howto for the A2DP qualification patchwork-bot+bluetooth
2026-01-27 18:37 ` [BlueZ,v2,01/13] " bluez.test.bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox