Skip to content

Commit

Permalink
Bluetooth: Set supported settings based on enabled HS and/or LE
Browse files Browse the repository at this point in the history
Since neither High Speed (HS) nor Low Energy (LE) are fully implemented
yet, only expose them in supported settings when enabled.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
  • Loading branch information
Marcel Holtmann authored and Johan Hedberg committed Feb 20, 2012
1 parent 801f13b commit d7b7e79
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 12 deletions.
1 change: 1 addition & 0 deletions include/net/bluetooth/hci.h
Original file line number Diff line number Diff line change
Expand Up @@ -1422,5 +1422,6 @@ struct hci_inquiry_req {
#define IREQ_CACHE_FLUSH 0x0001

extern bool enable_hs;
extern bool enable_le;

#endif /* __HCI_H */
5 changes: 0 additions & 5 deletions net/bluetooth/hci_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@

#define AUTO_OFF_TIMEOUT 2000

bool enable_hs;

static void hci_rx_work(struct work_struct *work);
static void hci_cmd_work(struct work_struct *work);
static void hci_tx_work(struct work_struct *work);
Expand Down Expand Up @@ -2913,6 +2911,3 @@ int hci_cancel_inquiry(struct hci_dev *hdev)

return hci_send_cmd(hdev, HCI_OP_INQUIRY_CANCEL, 0, NULL);
}

module_param(enable_hs, bool, 0644);
MODULE_PARM_DESC(enable_hs, "Enable High Speed");
5 changes: 0 additions & 5 deletions net/bluetooth/hci_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@
#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>

static bool enable_le;

/* Handle HCI Event packets */

static void hci_cc_inquiry_cancel(struct hci_dev *hdev, struct sk_buff *skb)
Expand Down Expand Up @@ -3545,6 +3543,3 @@ void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb)
kfree_skb(skb);
hdev->stat.evt_rx++;
}

module_param(enable_le, bool, 0644);
MODULE_PARM_DESC(enable_le, "Enable LE support");
18 changes: 16 additions & 2 deletions net/bluetooth/mgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
#include <net/bluetooth/mgmt.h>
#include <net/bluetooth/smp.h>

bool enable_hs;
bool enable_le;

#define MGMT_VERSION 1
#define MGMT_REVISION 0

Expand Down Expand Up @@ -374,8 +377,13 @@ static u32 get_supported_settings(struct hci_dev *hdev)
settings |= MGMT_SETTING_LINK_SECURITY;
}

if (hdev->features[4] & LMP_LE)
settings |= MGMT_SETTING_LE;
if (enable_hs)
settings |= MGMT_SETTING_HS;

if (enable_le) {
if (hdev->features[4] & LMP_LE)
settings |= MGMT_SETTING_LE;
}

return settings;
}
Expand Down Expand Up @@ -3421,3 +3429,9 @@ int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type)
return mgmt_event(MGMT_EV_DEVICE_UNBLOCKED, hdev, &ev, sizeof(ev),
cmd ? cmd->sk : NULL);
}

module_param(enable_hs, bool, 0644);
MODULE_PARM_DESC(enable_hs, "Enable High Speed support");

module_param(enable_le, bool, 0644);
MODULE_PARM_DESC(enable_le, "Enable Low Energy support");

0 comments on commit d7b7e79

Please sign in to comment.