Commit 132d0fd0 authored by Zijun Hu's avatar Zijun Hu Committed by Luiz Augusto von Dentz
Browse files

Bluetooth: hci_conn: Check non NULL function before calling for HFP offload



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: default avatarZijun Hu <quic_zijuhu@quicinc.com>
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
parent 9f150019
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -300,6 +300,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)
@@ -345,8 +352,6 @@ 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);

	conn->state = BT_CONNECT;