Bluetooth: hci_conn: Check non NULL function before calling for HFP offload
[ Upstream commit 132d0fd0b8418094c9e269e5bc33bf5b864f4a65 ] For some controllers such as QCA2066, it does not need to send HCI_Configure_Data_Path to configure non-HCI data transport path to support HFP offload, their device drivers may set hdev->get_codec_config_data as NULL, so Explicitly add this non NULL checking before calling the function. Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
662e44b6c1
commit
3df1a4ea1c
@ -293,6 +293,13 @@ static int configure_datapath_sync(struct hci_dev *hdev, struct bt_codec *codec)
|
||||
__u8 vnd_len, *vnd_data = NULL;
|
||||
struct hci_op_configure_data_path *cmd = NULL;
|
||||
|
||||
if (!codec->data_path || !hdev->get_codec_config_data)
|
||||
return 0;
|
||||
|
||||
/* Do not take me as error */
|
||||
if (!hdev->get_codec_config_data)
|
||||
return 0;
|
||||
|
||||
err = hdev->get_codec_config_data(hdev, ESCO_LINK, codec, &vnd_len,
|
||||
&vnd_data);
|
||||
if (err < 0)
|
||||
@ -338,9 +345,7 @@ static int hci_enhanced_setup_sync(struct hci_dev *hdev, void *data)
|
||||
|
||||
bt_dev_dbg(hdev, "hcon %p", conn);
|
||||
|
||||
/* for offload use case, codec needs to configured before opening SCO */
|
||||
if (conn->codec.data_path)
|
||||
configure_datapath_sync(hdev, &conn->codec);
|
||||
configure_datapath_sync(hdev, &conn->codec);
|
||||
|
||||
conn->state = BT_CONNECT;
|
||||
conn->out = true;
|
||||
|
Loading…
Reference in New Issue
Block a user