Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts: drivers/net/wireless/libertas/if_cs.c drivers/net/wireless/rtlwifi/pci.c net/bluetooth/l2cap_sock.c
This commit is contained in:
@@ -246,6 +246,15 @@ enum {
|
||||
#define HCI_AT_GENERAL_BONDING 0x04
|
||||
#define HCI_AT_GENERAL_BONDING_MITM 0x05
|
||||
|
||||
/* Link Key types */
|
||||
#define HCI_LK_COMBINATION 0x00
|
||||
#define HCI_LK_LOCAL_UNIT 0x01
|
||||
#define HCI_LK_REMOTE_UNIT 0x02
|
||||
#define HCI_LK_DEBUG_COMBINATION 0x03
|
||||
#define HCI_LK_UNAUTH_COMBINATION 0x04
|
||||
#define HCI_LK_AUTH_COMBINATION 0x05
|
||||
#define HCI_LK_CHANGED_COMBINATION 0x06
|
||||
|
||||
/* ----- HCI Commands ---- */
|
||||
#define HCI_OP_NOP 0x0000
|
||||
|
||||
|
||||
@@ -126,6 +126,8 @@ struct hci_dev {
|
||||
__u16 sniff_min_interval;
|
||||
__u16 sniff_max_interval;
|
||||
|
||||
unsigned int auto_accept_delay;
|
||||
|
||||
unsigned long quirks;
|
||||
|
||||
atomic_t cmd_cnt;
|
||||
@@ -226,6 +228,7 @@ struct hci_conn {
|
||||
__u16 pkt_type;
|
||||
__u16 link_policy;
|
||||
__u32 link_mode;
|
||||
__u8 key_type;
|
||||
__u8 auth_type;
|
||||
__u8 sec_level;
|
||||
__u8 pending_sec_level;
|
||||
@@ -245,6 +248,7 @@ struct hci_conn {
|
||||
|
||||
struct timer_list disc_timer;
|
||||
struct timer_list idle_timer;
|
||||
struct timer_list auto_accept_timer;
|
||||
|
||||
struct work_struct work_add;
|
||||
struct work_struct work_del;
|
||||
@@ -511,8 +515,8 @@ int hci_uuids_clear(struct hci_dev *hdev);
|
||||
|
||||
int hci_link_keys_clear(struct hci_dev *hdev);
|
||||
struct link_key *hci_find_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr);
|
||||
int hci_add_link_key(struct hci_dev *hdev, int new_key, bdaddr_t *bdaddr,
|
||||
u8 *key, u8 type, u8 pin_len);
|
||||
int hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn, int new_key,
|
||||
bdaddr_t *bdaddr, u8 *val, u8 type, u8 pin_len);
|
||||
int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr);
|
||||
|
||||
int hci_remote_oob_data_clear(struct hci_dev *hdev);
|
||||
@@ -771,15 +775,16 @@ int mgmt_index_removed(u16 index);
|
||||
int mgmt_powered(u16 index, u8 powered);
|
||||
int mgmt_discoverable(u16 index, u8 discoverable);
|
||||
int mgmt_connectable(u16 index, u8 connectable);
|
||||
int mgmt_new_key(u16 index, struct link_key *key, u8 old_key_type);
|
||||
int mgmt_new_key(u16 index, struct link_key *key, u8 persistent);
|
||||
int mgmt_connected(u16 index, bdaddr_t *bdaddr);
|
||||
int mgmt_disconnected(u16 index, bdaddr_t *bdaddr);
|
||||
int mgmt_disconnect_failed(u16 index);
|
||||
int mgmt_connect_failed(u16 index, bdaddr_t *bdaddr, u8 status);
|
||||
int mgmt_pin_code_request(u16 index, bdaddr_t *bdaddr);
|
||||
int mgmt_pin_code_request(u16 index, bdaddr_t *bdaddr, u8 secure);
|
||||
int mgmt_pin_code_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status);
|
||||
int mgmt_pin_code_neg_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status);
|
||||
int mgmt_user_confirm_request(u16 index, bdaddr_t *bdaddr, __le32 value);
|
||||
int mgmt_user_confirm_request(u16 index, bdaddr_t *bdaddr, __le32 value,
|
||||
u8 confirm_hint);
|
||||
int mgmt_user_confirm_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status);
|
||||
int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr,
|
||||
u8 status);
|
||||
@@ -790,6 +795,7 @@ int mgmt_read_local_oob_data_reply_complete(u16 index, u8 *hash, u8 *randomizer,
|
||||
int mgmt_device_found(u16 index, bdaddr_t *bdaddr, u8 *dev_class, s8 rssi,
|
||||
u8 *eir);
|
||||
int mgmt_remote_name(u16 index, bdaddr_t *bdaddr, u8 *name);
|
||||
int mgmt_discovering(u16 index, u8 discovering);
|
||||
|
||||
/* HCI info for socket */
|
||||
#define hci_pi(sk) ((struct hci_pinfo *) sk)
|
||||
|
||||
@@ -284,6 +284,25 @@ struct srej_list {
|
||||
|
||||
struct l2cap_chan {
|
||||
struct sock *sk;
|
||||
|
||||
struct l2cap_conn *conn;
|
||||
|
||||
__le16 psm;
|
||||
__u16 dcid;
|
||||
__u16 scid;
|
||||
|
||||
__u16 imtu;
|
||||
__u16 omtu;
|
||||
__u16 flush_to;
|
||||
__u8 mode;
|
||||
|
||||
__le16 sport;
|
||||
|
||||
__u8 sec_level;
|
||||
__u8 role_switch;
|
||||
__u8 force_reliable;
|
||||
__u8 flushable;
|
||||
|
||||
__u8 ident;
|
||||
|
||||
__u8 conf_req[64];
|
||||
@@ -291,6 +310,15 @@ struct l2cap_chan {
|
||||
__u8 num_conf_req;
|
||||
__u8 num_conf_rsp;
|
||||
|
||||
__u8 fcs;
|
||||
|
||||
__u8 tx_win;
|
||||
__u8 max_tx;
|
||||
__u16 retrans_timeout;
|
||||
__u16 monitor_timeout;
|
||||
__u16 mps;
|
||||
|
||||
__u8 conf_state;
|
||||
__u16 conn_state;
|
||||
|
||||
__u8 next_tx_seq;
|
||||
@@ -360,32 +388,6 @@ struct l2cap_conn {
|
||||
|
||||
struct l2cap_pinfo {
|
||||
struct bt_sock bt;
|
||||
__le16 psm;
|
||||
__u16 dcid;
|
||||
__u16 scid;
|
||||
|
||||
__u16 imtu;
|
||||
__u16 omtu;
|
||||
__u16 flush_to;
|
||||
__u8 mode;
|
||||
|
||||
__u8 fcs;
|
||||
__u8 sec_level;
|
||||
__u8 role_switch;
|
||||
__u8 force_reliable;
|
||||
__u8 flushable;
|
||||
|
||||
__u8 conf_state;
|
||||
|
||||
__u8 tx_win;
|
||||
__u8 max_tx;
|
||||
__u16 retrans_timeout;
|
||||
__u16 monitor_timeout;
|
||||
__u16 mps;
|
||||
|
||||
__le16 sport;
|
||||
|
||||
struct l2cap_conn *conn;
|
||||
struct l2cap_chan *chan;
|
||||
};
|
||||
|
||||
@@ -439,21 +441,20 @@ static inline int l2cap_tx_window_full(struct l2cap_chan *ch)
|
||||
#define __is_sar_start(ctrl) (((ctrl) & L2CAP_CTRL_SAR) == L2CAP_SDU_START)
|
||||
|
||||
extern int disable_ertm;
|
||||
extern const struct proto_ops l2cap_sock_ops;
|
||||
extern struct bt_sock_list l2cap_sk_list;
|
||||
|
||||
int l2cap_init_sockets(void);
|
||||
void l2cap_cleanup_sockets(void);
|
||||
|
||||
void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len, void *data);
|
||||
void __l2cap_connect_rsp_defer(struct sock *sk);
|
||||
void __l2cap_connect_rsp_defer(struct l2cap_chan *chan);
|
||||
int __l2cap_wait_ack(struct sock *sk);
|
||||
|
||||
struct sk_buff *l2cap_create_connless_pdu(struct sock *sk, struct msghdr *msg, size_t len);
|
||||
struct sk_buff *l2cap_create_basic_pdu(struct sock *sk, struct msghdr *msg, size_t len);
|
||||
struct sk_buff *l2cap_create_iframe_pdu(struct sock *sk, struct msghdr *msg, size_t len, u16 control, u16 sdulen);
|
||||
struct sk_buff *l2cap_create_connless_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len);
|
||||
struct sk_buff *l2cap_create_basic_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len);
|
||||
struct sk_buff *l2cap_create_iframe_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len, u16 control, u16 sdulen);
|
||||
int l2cap_sar_segment_sdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len);
|
||||
void l2cap_do_send(struct sock *sk, struct sk_buff *skb);
|
||||
void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb);
|
||||
void l2cap_streaming_send(struct l2cap_chan *chan);
|
||||
int l2cap_ertm_send(struct l2cap_chan *chan);
|
||||
|
||||
@@ -465,7 +466,9 @@ void l2cap_sock_init(struct sock *sk, struct sock *parent);
|
||||
struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock,
|
||||
int proto, gfp_t prio);
|
||||
void l2cap_send_disconn_req(struct l2cap_conn *conn, struct l2cap_chan *chan, int err);
|
||||
struct l2cap_chan *l2cap_chan_alloc(struct sock *sk);
|
||||
void l2cap_chan_del(struct l2cap_chan *chan, int err);
|
||||
int l2cap_do_connect(struct sock *sk);
|
||||
void l2cap_chan_free(struct l2cap_chan *chan);
|
||||
int l2cap_chan_connect(struct l2cap_chan *chan);
|
||||
|
||||
#endif /* __L2CAP_H */
|
||||
|
||||
@@ -195,6 +195,10 @@ struct mgmt_cp_remove_remote_oob_data {
|
||||
bdaddr_t bdaddr;
|
||||
} __packed;
|
||||
|
||||
#define MGMT_OP_START_DISCOVERY 0x001B
|
||||
|
||||
#define MGMT_OP_STOP_DISCOVERY 0x001C
|
||||
|
||||
#define MGMT_EV_CMD_COMPLETE 0x0001
|
||||
struct mgmt_ev_cmd_complete {
|
||||
__le16 opcode;
|
||||
@@ -226,8 +230,8 @@ struct mgmt_ev_controller_error {
|
||||
|
||||
#define MGMT_EV_NEW_KEY 0x000A
|
||||
struct mgmt_ev_new_key {
|
||||
__u8 store_hint;
|
||||
struct mgmt_key_info key;
|
||||
__u8 old_key_type;
|
||||
} __packed;
|
||||
|
||||
#define MGMT_EV_CONNECTED 0x000B
|
||||
@@ -249,11 +253,13 @@ struct mgmt_ev_connect_failed {
|
||||
#define MGMT_EV_PIN_CODE_REQUEST 0x000E
|
||||
struct mgmt_ev_pin_code_request {
|
||||
bdaddr_t bdaddr;
|
||||
__u8 secure;
|
||||
} __packed;
|
||||
|
||||
#define MGMT_EV_USER_CONFIRM_REQUEST 0x000F
|
||||
struct mgmt_ev_user_confirm_request {
|
||||
bdaddr_t bdaddr;
|
||||
__u8 confirm_hint;
|
||||
__le32 value;
|
||||
} __packed;
|
||||
|
||||
@@ -281,3 +287,5 @@ struct mgmt_ev_remote_name {
|
||||
bdaddr_t bdaddr;
|
||||
__u8 name[MGMT_MAX_NAME_LENGTH];
|
||||
} __packed;
|
||||
|
||||
#define MGMT_EV_DISCOVERING 0x0014
|
||||
|
||||
@@ -1822,6 +1822,10 @@ enum ieee80211_ampdu_mlme_action {
|
||||
*
|
||||
* @tx_frames_pending: Check if there is any pending frame in the hardware
|
||||
* queues before entering power save.
|
||||
*
|
||||
* @set_bitrate_mask: Set a mask of rates to be used for rate control selection
|
||||
* when transmitting a frame. Currently only legacy rates are handled.
|
||||
* The callback can sleep.
|
||||
*/
|
||||
struct ieee80211_ops {
|
||||
void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb);
|
||||
@@ -1910,6 +1914,8 @@ struct ieee80211_ops {
|
||||
void (*get_ringparam)(struct ieee80211_hw *hw,
|
||||
u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max);
|
||||
bool (*tx_frames_pending)(struct ieee80211_hw *hw);
|
||||
int (*set_bitrate_mask)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
const struct cfg80211_bitrate_mask *mask);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -2291,6 +2297,17 @@ static inline void ieee80211_tx_status_ni(struct ieee80211_hw *hw,
|
||||
void ieee80211_tx_status_irqsafe(struct ieee80211_hw *hw,
|
||||
struct sk_buff *skb);
|
||||
|
||||
/**
|
||||
* ieee80211_report_low_ack - report non-responding station
|
||||
*
|
||||
* When operating in AP-mode, call this function to report a non-responding
|
||||
* connected STA.
|
||||
*
|
||||
* @sta: the non-responding connected sta
|
||||
* @num_packets: number of packets sent to @sta without a response
|
||||
*/
|
||||
void ieee80211_report_low_ack(struct ieee80211_sta *sta, u32 num_packets);
|
||||
|
||||
/**
|
||||
* ieee80211_beacon_get_tim - beacon generation function
|
||||
* @hw: pointer obtained from ieee80211_alloc_hw().
|
||||
|
||||
Reference in New Issue
Block a user