Commit 91aa9bb2 authored by Florian Grandel's avatar Florian Grandel Committed by Marcel Holtmann

Bluetooth: mgmt: dry update_scan_rsp_data()

update_scan_rsp_data() duplicates code from get_current_adv_instance().
This is being fixed by letting the former make use of the latter.
Signed-off-by: default avatarFlorian Grandel <fgrandel@gmail.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 5d900e46
...@@ -832,6 +832,20 @@ static struct mgmt_pending_cmd *pending_find_data(u16 opcode, ...@@ -832,6 +832,20 @@ static struct mgmt_pending_cmd *pending_find_data(u16 opcode,
return mgmt_pending_find_data(HCI_CHANNEL_CONTROL, opcode, hdev, data); return mgmt_pending_find_data(HCI_CHANNEL_CONTROL, opcode, hdev, data);
} }
static u8 get_current_adv_instance(struct hci_dev *hdev)
{
/* The "Set Advertising" setting supersedes the "Add Advertising"
* setting. Here we set the advertising data based on which
* setting was set. When neither apply, default to the global settings,
* represented by instance "0".
*/
if (hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE) &&
!hci_dev_test_flag(hdev, HCI_ADVERTISING))
return 0x01;
return 0x00;
}
static u8 create_default_scan_rsp_data(struct hci_dev *hdev, u8 *ptr) static u8 create_default_scan_rsp_data(struct hci_dev *hdev, u8 *ptr)
{ {
u8 ad_len = 0; u8 ad_len = 0;
...@@ -900,21 +914,8 @@ static void update_scan_rsp_data_for_instance(struct hci_request *req, ...@@ -900,21 +914,8 @@ static void update_scan_rsp_data_for_instance(struct hci_request *req,
static void update_scan_rsp_data(struct hci_request *req) static void update_scan_rsp_data(struct hci_request *req)
{ {
struct hci_dev *hdev = req->hdev; update_scan_rsp_data_for_instance(req,
u8 instance; get_current_adv_instance(req->hdev));
/* The "Set Advertising" setting supersedes the "Add Advertising"
* setting. Here we set the scan response data based on which
* setting was set. When neither apply, default to the global settings,
* represented by instance "0".
*/
if (hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE) &&
!hci_dev_test_flag(hdev, HCI_ADVERTISING))
instance = 0x01;
else
instance = 0x00;
update_scan_rsp_data_for_instance(req, instance);
} }
static u8 get_adv_discov_flags(struct hci_dev *hdev) static u8 get_adv_discov_flags(struct hci_dev *hdev)
...@@ -941,20 +942,6 @@ static u8 get_adv_discov_flags(struct hci_dev *hdev) ...@@ -941,20 +942,6 @@ static u8 get_adv_discov_flags(struct hci_dev *hdev)
return 0; return 0;
} }
static u8 get_current_adv_instance(struct hci_dev *hdev)
{
/* The "Set Advertising" setting supersedes the "Add Advertising"
* setting. Here we set the advertising data based on which
* setting was set. When neither apply, default to the global settings,
* represented by instance "0".
*/
if (hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE) &&
!hci_dev_test_flag(hdev, HCI_ADVERTISING))
return 0x01;
return 0x00;
}
static bool get_connectable(struct hci_dev *hdev) static bool get_connectable(struct hci_dev *hdev)
{ {
struct mgmt_pending_cmd *cmd; struct mgmt_pending_cmd *cmd;
...@@ -1093,10 +1080,7 @@ static void update_adv_data_for_instance(struct hci_request *req, u8 instance) ...@@ -1093,10 +1080,7 @@ static void update_adv_data_for_instance(struct hci_request *req, u8 instance)
static void update_adv_data(struct hci_request *req) static void update_adv_data(struct hci_request *req)
{ {
struct hci_dev *hdev = req->hdev; update_adv_data_for_instance(req, get_current_adv_instance(req->hdev));
u8 instance = get_current_adv_instance(hdev);
update_adv_data_for_instance(req, instance);
} }
int mgmt_update_adv_data(struct hci_dev *hdev) int mgmt_update_adv_data(struct hci_dev *hdev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment