All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kiran K <kiran.k@intel.com>
To: linux-bluetooth@vger.kernel.org
Cc: ravishankar.srivatsa@intel.com, chethan.tumkur.narayan@intel.com,
	luiz.von.dentz@intel.com, michaelfsun@google.com,
	Kiran K <kiran.k@intel.com>
Subject: [PATCH v15 09/13] Bluetooth: btintel: Define a callback to fetch codec config data
Date: Tue,  7 Sep 2021 15:42:45 +0530	[thread overview]
Message-ID: <20210907101249.7323-9-kiran.k@intel.com> (raw)
In-Reply-To: <20210907101249.7323-1-kiran.k@intel.com>

Define callback function to get codec config data. In HFP offload
usecase, controllers need to be set codec details before opening SCO.
This callback function is used to fetch vendor specific codec config
data.

Signed-off-by: Kiran K <kiran.k@intel.com>
Reviewed-by: Chethan T N <chethan.tumkur.narayan@intel.com>
Reviewed-by: Srivatsa Ravishankar <ravishankar.srivatsa@intel.com>
---

Notes:
    * changes in v15:
     - No changes
    
    * changes in v14:
     - No changes
    
    * changes in v13:
     - No changes
    
    * changes in v12:
     - No changes
    
    * changes in v11:
     - Remove changes related to Kconfig
    
    * changes in v10:
      - new patch due to refactoring

 drivers/bluetooth/btintel.c | 53 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 52 insertions(+), 1 deletion(-)

diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index 751e0f0b8242..115bb2d07a8d 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -2158,6 +2158,55 @@ static int btintel_prepare_fw_download_tlv(struct hci_dev *hdev,
 	return err;
 }
 
+static int btintel_get_codec_config_data(struct hci_dev *hdev,
+					 __u8 link, struct bt_codec *codec,
+					 __u8 *ven_len, __u8 **ven_data)
+{
+	int err = 0;
+
+	if (!ven_data || !ven_len)
+		return -EINVAL;
+
+	*ven_len = 0;
+	*ven_data = NULL;
+
+	if (link != ESCO_LINK) {
+		bt_dev_err(hdev, "Invalid link type(%u)", link);
+		return -EINVAL;
+	}
+
+	*ven_data = kmalloc(sizeof(__u8), GFP_KERNEL);
+	if (!ven_data) {
+		err = -ENOMEM;
+		goto error;
+	}
+
+	/* supports only CVSD and mSBC offload codecs */
+	switch (codec->id) {
+	case 0x02:
+		**ven_data = 0x00;
+		break;
+	case 0x05:
+		**ven_data = 0x01;
+		break;
+	default:
+		err = -EINVAL;
+		bt_dev_err(hdev, "Invalid codec id(%u)", codec->id);
+		goto error;
+	}
+	/* codec and its capabilities are pre-defined to ids
+	 * preset id = 0x00 represents CVSD codec with sampling rate 8K
+	 * preset id = 0x01 represents mSBC codec with sampling rate 16K
+	 */
+	*ven_len = sizeof(__u8);
+	return err;
+
+error:
+	kfree(*ven_data);
+	*ven_data = NULL;
+	return err;
+}
+
 static int btintel_get_data_path_id(struct hci_dev *hdev, __u8 *data_path_id)
 {
 	/* Intel uses 1 as data path id for all the usecases */
@@ -2190,8 +2239,10 @@ static int btintel_configure_offload(struct hci_dev *hdev)
 		goto error;
 	}
 
-	if (use_cases->preset[0] & 0x03)
+	if (use_cases->preset[0] & 0x03) {
 		hdev->get_data_path_id = btintel_get_data_path_id;
+		hdev->get_codec_config_data = btintel_get_codec_config_data;
+	}
 error:
 	kfree_skb(skb);
 	return err;
-- 
2.17.1


  parent reply	other threads:[~2021-09-07 10:07 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-07 10:12 [PATCH v15 01/13] Bluetooth: Enumerate local supported codec and cache details Kiran K
2021-09-07 10:12 ` [PATCH v15 02/13] Bluetooth: Add support for Read Local Supported Codecs V2 Kiran K
2021-09-07 10:12 ` [PATCH v15 03/13] Bluetooth: btintel: Read supported offload use cases Kiran K
2021-09-07 10:12 ` [PATCH v15 04/13] Bluetooth: Allow querying of supported offload codecs over SCO socket Kiran K
2021-09-07 10:12 ` [PATCH v15 05/13] Bluetooth: btintel: Define callback to fetch data_path_id Kiran K
2021-09-07 10:12 ` [PATCH v15 06/13] Bluetooth: Allow setting of codec for HFP offload use case Kiran K
2021-09-07 10:12 ` [PATCH v15 07/13] Bluetooth: Add support for HCI_Enhanced_Setup_Synchronous_Connection command Kiran K
2021-09-07 10:12 ` [PATCH v15 08/13] Bluetooth: Configure codec for HFP offload use case Kiran K
2021-09-07 10:12 ` Kiran K [this message]
2021-09-07 10:12 ` [PATCH v15 10/13] Bluetooth: Add support for msbc coding format Kiran K
2021-09-07 10:12 ` [PATCH v15 11/13] Bluetooth: Add offload feature under experimental flag Kiran K
2021-09-07 10:12 ` [PATCH v15 12/13] Bluetooth: Allow usb to auto-suspend when SCO use non-HCI transport Kiran K
2021-09-07 10:12 ` [PATCH v15 13/13] Bluetooth: hci_vhci: Add support for offload codecs over SCO Kiran K
2021-09-07 11:05 ` [v15,01/13] Bluetooth: Enumerate local supported codec and cache details bluez.test.bot
2021-09-07 22:06   ` Luiz Augusto von Dentz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210907101249.7323-9-kiran.k@intel.com \
    --to=kiran.k@intel.com \
    --cc=chethan.tumkur.narayan@intel.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=luiz.von.dentz@intel.com \
    --cc=michaelfsun@google.com \
    --cc=ravishankar.srivatsa@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.