Bluetooth: Fix handling of experimental feature for codec offload
authorMarcel Holtmann <marcel@holtmann.org>
Tue, 28 Sep 2021 10:10:15 +0000 (12:10 +0200)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 28 Sep 2021 21:39:40 +0000 (14:39 -0700)
The existence of the experimental feature identifiy is the indication
that it is supported or not. No extra flag needed and the initial flag
should define if a feature is enabled or not. This is actually defined
in the management API definition.

Fixes: ad93315183285 ("Bluetooth: Add offload feature under experimental flag")
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
net/bluetooth/mgmt.c

index 84336be4d00dc305c0ab9c1aa6ff6928749360d0..3e5283607b97c140d15be6127ee4b0a00f758192 100644 (file)
@@ -3874,21 +3874,12 @@ static int read_exp_features_info(struct sock *sk, struct hci_dev *hdev,
                idx++;
        }
 
-       if (hdev) {
-               if (hdev->get_data_path_id) {
-                       /* BIT(0): indicating if offload codecs are
-                        * supported by controller.
-                        */
+       if (hdev && hdev->get_data_path_id) {
+               if (hci_dev_test_flag(hdev, HCI_OFFLOAD_CODECS_ENABLED))
                        flags = BIT(0);
-
-                       /* BIT(1): indicating if codec offload feature
-                        * is enabled.
-                        */
-                       if (hci_dev_test_flag(hdev, HCI_OFFLOAD_CODECS_ENABLED))
-                               flags |= BIT(1);
-               } else {
+               else
                        flags = 0;
-               }
+
                memcpy(rp->features[idx].uuid, offload_codecs_uuid, 16);
                rp->features[idx].flags = cpu_to_le32(flags);
                idx++;