|
@@ -408,7 +408,7 @@ static u32 get_current_settings(struct hci_dev *hdev)
|
|
|
if (test_bit(HCI_PAIRABLE, &hdev->dev_flags))
|
|
|
settings |= MGMT_SETTING_PAIRABLE;
|
|
|
|
|
|
- if (lmp_bredr_capable(hdev))
|
|
|
+ if (test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
|
|
|
settings |= MGMT_SETTING_BREDR;
|
|
|
|
|
|
if (test_bit(HCI_LE_ENABLED, &hdev->dev_flags))
|
|
@@ -929,7 +929,7 @@ static int set_discoverable(struct sock *sk, struct hci_dev *hdev, void *data,
|
|
|
|
|
|
BT_DBG("request for %s", hdev->name);
|
|
|
|
|
|
- if (!lmp_bredr_capable(hdev))
|
|
|
+ if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
|
|
|
return cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE,
|
|
|
MGMT_STATUS_NOT_SUPPORTED);
|
|
|
|
|
@@ -1085,7 +1085,7 @@ static int set_connectable(struct sock *sk, struct hci_dev *hdev, void *data,
|
|
|
|
|
|
BT_DBG("request for %s", hdev->name);
|
|
|
|
|
|
- if (!lmp_bredr_capable(hdev))
|
|
|
+ if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
|
|
|
return cmd_status(sk, hdev->id, MGMT_OP_SET_CONNECTABLE,
|
|
|
MGMT_STATUS_NOT_SUPPORTED);
|
|
|
|
|
@@ -1208,7 +1208,7 @@ static int set_link_security(struct sock *sk, struct hci_dev *hdev, void *data,
|
|
|
|
|
|
BT_DBG("request for %s", hdev->name);
|
|
|
|
|
|
- if (!lmp_bredr_capable(hdev))
|
|
|
+ if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
|
|
|
return cmd_status(sk, hdev->id, MGMT_OP_SET_LINK_SECURITY,
|
|
|
MGMT_STATUS_NOT_SUPPORTED);
|
|
|
|
|
@@ -1342,7 +1342,7 @@ static int set_hs(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
|
|
|
|
|
|
BT_DBG("request for %s", hdev->name);
|
|
|
|
|
|
- if (!lmp_bredr_capable(hdev))
|
|
|
+ if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
|
|
|
return cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
|
|
|
MGMT_STATUS_NOT_SUPPORTED);
|
|
|
|
|
@@ -1409,7 +1409,7 @@ static int set_le(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
|
|
|
MGMT_STATUS_INVALID_PARAMS);
|
|
|
|
|
|
/* LE-only devices do not allow toggling LE on/off */
|
|
|
- if (!lmp_bredr_capable(hdev))
|
|
|
+ if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
|
|
|
return cmd_status(sk, hdev->id, MGMT_OP_SET_LE,
|
|
|
MGMT_STATUS_REJECTED);
|
|
|
|
|
@@ -1720,7 +1720,7 @@ static int set_dev_class(struct sock *sk, struct hci_dev *hdev, void *data,
|
|
|
|
|
|
BT_DBG("request for %s", hdev->name);
|
|
|
|
|
|
- if (!lmp_bredr_capable(hdev))
|
|
|
+ if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
|
|
|
return cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS,
|
|
|
MGMT_STATUS_NOT_SUPPORTED);
|
|
|
|
|
@@ -2803,7 +2803,7 @@ static int start_discovery(struct sock *sk, struct hci_dev *hdev,
|
|
|
|
|
|
switch (hdev->discovery.type) {
|
|
|
case DISCOV_TYPE_BREDR:
|
|
|
- if (!lmp_bredr_capable(hdev)) {
|
|
|
+ if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) {
|
|
|
err = cmd_status(sk, hdev->id, MGMT_OP_START_DISCOVERY,
|
|
|
MGMT_STATUS_NOT_SUPPORTED);
|
|
|
mgmt_pending_remove(cmd);
|
|
@@ -2835,7 +2835,7 @@ static int start_discovery(struct sock *sk, struct hci_dev *hdev,
|
|
|
}
|
|
|
|
|
|
if (hdev->discovery.type == DISCOV_TYPE_INTERLEAVED &&
|
|
|
- !lmp_bredr_capable(hdev)) {
|
|
|
+ !test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) {
|
|
|
err = cmd_status(sk, hdev->id, MGMT_OP_START_DISCOVERY,
|
|
|
MGMT_STATUS_NOT_SUPPORTED);
|
|
|
mgmt_pending_remove(cmd);
|
|
@@ -3282,7 +3282,8 @@ static int set_fast_connectable(struct sock *sk, struct hci_dev *hdev,
|
|
|
|
|
|
BT_DBG("%s", hdev->name);
|
|
|
|
|
|
- if (!lmp_bredr_capable(hdev) || hdev->hci_ver < BLUETOOTH_VER_1_2)
|
|
|
+ if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags) ||
|
|
|
+ hdev->hci_ver < BLUETOOTH_VER_1_2)
|
|
|
return cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE,
|
|
|
MGMT_STATUS_NOT_SUPPORTED);
|
|
|
|
|
@@ -3646,7 +3647,8 @@ static int powered_update_hci(struct hci_dev *hdev)
|
|
|
sizeof(link_sec), &link_sec);
|
|
|
|
|
|
if (lmp_bredr_capable(hdev)) {
|
|
|
- set_bredr_scan(&req);
|
|
|
+ if (test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags))
|
|
|
+ set_bredr_scan(&req);
|
|
|
update_class(&req);
|
|
|
update_name(&req);
|
|
|
update_eir(&req);
|