diff options
| author | David S. Miller <davem@davemloft.net> | 2011-05-05 17:09:28 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-05-05 17:09:28 -0400 |
| commit | 90864fbc7639d7a2300c67a18c9fb9fbcf7d51d2 (patch) | |
| tree | 6951c8d0e529dbfc7c4cec75d4cec63350e39b7c /include | |
| parent | 228e548e602061b08ee8e8966f567c12aa079682 (diff) | |
| parent | a70171dce9cd44cb06c7d299eba9fa87a8933045 (diff) | |
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ath9k_platform.h | 2 | ||||
| -rw-r--r-- | include/linux/ssb/ssb_driver_chipcommon.h | 11 | ||||
| -rw-r--r-- | include/linux/ssb/ssb_regs.h | 2 | ||||
| -rw-r--r-- | include/linux/wl12xx.h | 29 | ||||
| -rw-r--r-- | include/net/bluetooth/hci.h | 9 | ||||
| -rw-r--r-- | include/net/bluetooth/hci_core.h | 16 | ||||
| -rw-r--r-- | include/net/bluetooth/l2cap.h | 69 | ||||
| -rw-r--r-- | include/net/bluetooth/mgmt.h | 10 | ||||
| -rw-r--r-- | include/net/mac80211.h | 17 |
9 files changed, 118 insertions, 47 deletions
diff --git a/include/linux/ath9k_platform.h b/include/linux/ath9k_platform.h index 020387a114e3..60a7c49dcb49 100644 --- a/include/linux/ath9k_platform.h +++ b/include/linux/ath9k_platform.h | |||
| @@ -28,6 +28,8 @@ struct ath9k_platform_data { | |||
| 28 | int led_pin; | 28 | int led_pin; |
| 29 | u32 gpio_mask; | 29 | u32 gpio_mask; |
| 30 | u32 gpio_val; | 30 | u32 gpio_val; |
| 31 | |||
| 32 | bool is_clk_25mhz; | ||
| 31 | }; | 33 | }; |
| 32 | 34 | ||
| 33 | #endif /* _LINUX_ATH9K_PLATFORM_H */ | 35 | #endif /* _LINUX_ATH9K_PLATFORM_H */ |
diff --git a/include/linux/ssb/ssb_driver_chipcommon.h b/include/linux/ssb/ssb_driver_chipcommon.h index 2cdf249b4e5f..a08d693d8324 100644 --- a/include/linux/ssb/ssb_driver_chipcommon.h +++ b/include/linux/ssb/ssb_driver_chipcommon.h | |||
| @@ -123,6 +123,8 @@ | |||
| 123 | #define SSB_CHIPCO_FLASHDATA 0x0048 | 123 | #define SSB_CHIPCO_FLASHDATA 0x0048 |
| 124 | #define SSB_CHIPCO_BCAST_ADDR 0x0050 | 124 | #define SSB_CHIPCO_BCAST_ADDR 0x0050 |
| 125 | #define SSB_CHIPCO_BCAST_DATA 0x0054 | 125 | #define SSB_CHIPCO_BCAST_DATA 0x0054 |
| 126 | #define SSB_CHIPCO_GPIOPULLUP 0x0058 /* Rev >= 20 only */ | ||
| 127 | #define SSB_CHIPCO_GPIOPULLDOWN 0x005C /* Rev >= 20 only */ | ||
| 126 | #define SSB_CHIPCO_GPIOIN 0x0060 | 128 | #define SSB_CHIPCO_GPIOIN 0x0060 |
| 127 | #define SSB_CHIPCO_GPIOOUT 0x0064 | 129 | #define SSB_CHIPCO_GPIOOUT 0x0064 |
| 128 | #define SSB_CHIPCO_GPIOOUTEN 0x0068 | 130 | #define SSB_CHIPCO_GPIOOUTEN 0x0068 |
| @@ -131,6 +133,9 @@ | |||
| 131 | #define SSB_CHIPCO_GPIOIRQ 0x0074 | 133 | #define SSB_CHIPCO_GPIOIRQ 0x0074 |
| 132 | #define SSB_CHIPCO_WATCHDOG 0x0080 | 134 | #define SSB_CHIPCO_WATCHDOG 0x0080 |
| 133 | #define SSB_CHIPCO_GPIOTIMER 0x0088 /* LED powersave (corerev >= 16) */ | 135 | #define SSB_CHIPCO_GPIOTIMER 0x0088 /* LED powersave (corerev >= 16) */ |
| 136 | #define SSB_CHIPCO_GPIOTIMER_OFFTIME 0x0000FFFF | ||
| 137 | #define SSB_CHIPCO_GPIOTIMER_OFFTIME_SHIFT 0 | ||
| 138 | #define SSB_CHIPCO_GPIOTIMER_ONTIME 0xFFFF0000 | ||
| 134 | #define SSB_CHIPCO_GPIOTIMER_ONTIME_SHIFT 16 | 139 | #define SSB_CHIPCO_GPIOTIMER_ONTIME_SHIFT 16 |
| 135 | #define SSB_CHIPCO_GPIOTOUTM 0x008C /* LED powersave (corerev >= 16) */ | 140 | #define SSB_CHIPCO_GPIOTOUTM 0x008C /* LED powersave (corerev >= 16) */ |
| 136 | #define SSB_CHIPCO_CLOCK_N 0x0090 | 141 | #define SSB_CHIPCO_CLOCK_N 0x0090 |
| @@ -189,8 +194,10 @@ | |||
| 189 | #define SSB_CHIPCO_CLKCTLST_HAVEALPREQ 0x00000008 /* ALP available request */ | 194 | #define SSB_CHIPCO_CLKCTLST_HAVEALPREQ 0x00000008 /* ALP available request */ |
| 190 | #define SSB_CHIPCO_CLKCTLST_HAVEHTREQ 0x00000010 /* HT available request */ | 195 | #define SSB_CHIPCO_CLKCTLST_HAVEHTREQ 0x00000010 /* HT available request */ |
| 191 | #define SSB_CHIPCO_CLKCTLST_HWCROFF 0x00000020 /* Force HW clock request off */ | 196 | #define SSB_CHIPCO_CLKCTLST_HWCROFF 0x00000020 /* Force HW clock request off */ |
| 192 | #define SSB_CHIPCO_CLKCTLST_HAVEHT 0x00010000 /* HT available */ | 197 | #define SSB_CHIPCO_CLKCTLST_HAVEALP 0x00010000 /* ALP available */ |
| 193 | #define SSB_CHIPCO_CLKCTLST_HAVEALP 0x00020000 /* APL available */ | 198 | #define SSB_CHIPCO_CLKCTLST_HAVEHT 0x00020000 /* HT available */ |
| 199 | #define SSB_CHIPCO_CLKCTLST_4328A0_HAVEHT 0x00010000 /* 4328a0 has reversed bits */ | ||
| 200 | #define SSB_CHIPCO_CLKCTLST_4328A0_HAVEALP 0x00020000 /* 4328a0 has reversed bits */ | ||
| 194 | #define SSB_CHIPCO_HW_WORKAROUND 0x01E4 /* Hardware workaround (rev >= 20) */ | 201 | #define SSB_CHIPCO_HW_WORKAROUND 0x01E4 /* Hardware workaround (rev >= 20) */ |
| 195 | #define SSB_CHIPCO_UART0_DATA 0x0300 | 202 | #define SSB_CHIPCO_UART0_DATA 0x0300 |
| 196 | #define SSB_CHIPCO_UART0_IMR 0x0304 | 203 | #define SSB_CHIPCO_UART0_IMR 0x0304 |
diff --git a/include/linux/ssb/ssb_regs.h b/include/linux/ssb/ssb_regs.h index 402955ae48ce..efbf459d571c 100644 --- a/include/linux/ssb/ssb_regs.h +++ b/include/linux/ssb/ssb_regs.h | |||
| @@ -97,7 +97,7 @@ | |||
| 97 | #define SSB_INTVEC_ENET1 0x00000040 /* Enable interrupts for enet 1 */ | 97 | #define SSB_INTVEC_ENET1 0x00000040 /* Enable interrupts for enet 1 */ |
| 98 | #define SSB_TMSLOW 0x0F98 /* SB Target State Low */ | 98 | #define SSB_TMSLOW 0x0F98 /* SB Target State Low */ |
| 99 | #define SSB_TMSLOW_RESET 0x00000001 /* Reset */ | 99 | #define SSB_TMSLOW_RESET 0x00000001 /* Reset */ |
| 100 | #define SSB_TMSLOW_REJECT_22 0x00000002 /* Reject (Backplane rev 2.2) */ | 100 | #define SSB_TMSLOW_REJECT 0x00000002 /* Reject (Standard Backplane) */ |
| 101 | #define SSB_TMSLOW_REJECT_23 0x00000004 /* Reject (Backplane rev 2.3) */ | 101 | #define SSB_TMSLOW_REJECT_23 0x00000004 /* Reject (Backplane rev 2.3) */ |
| 102 | #define SSB_TMSLOW_CLOCK 0x00010000 /* Clock Enable */ | 102 | #define SSB_TMSLOW_CLOCK 0x00010000 /* Clock Enable */ |
| 103 | #define SSB_TMSLOW_FGC 0x00020000 /* Force Gated Clocks On */ | 103 | #define SSB_TMSLOW_FGC 0x00020000 /* Force Gated Clocks On */ |
diff --git a/include/linux/wl12xx.h b/include/linux/wl12xx.h index bebb8efea0a6..4b697395326e 100644 --- a/include/linux/wl12xx.h +++ b/include/linux/wl12xx.h | |||
| @@ -24,12 +24,26 @@ | |||
| 24 | #ifndef _LINUX_WL12XX_H | 24 | #ifndef _LINUX_WL12XX_H |
| 25 | #define _LINUX_WL12XX_H | 25 | #define _LINUX_WL12XX_H |
| 26 | 26 | ||
| 27 | /* The board reference clock values */ | 27 | /* Reference clock values */ |
| 28 | enum { | 28 | enum { |
| 29 | WL12XX_REFCLOCK_19 = 0, /* 19.2 MHz */ | 29 | WL12XX_REFCLOCK_19 = 0, /* 19.2 MHz */ |
| 30 | WL12XX_REFCLOCK_26 = 1, /* 26 MHz */ | 30 | WL12XX_REFCLOCK_26 = 1, /* 26 MHz */ |
| 31 | WL12XX_REFCLOCK_38 = 2, /* 38.4 MHz */ | 31 | WL12XX_REFCLOCK_38 = 2, /* 38.4 MHz */ |
| 32 | WL12XX_REFCLOCK_54 = 3, /* 54 MHz */ | 32 | WL12XX_REFCLOCK_52 = 3, /* 52 MHz */ |
| 33 | WL12XX_REFCLOCK_38_XTAL = 4, /* 38.4 MHz, XTAL */ | ||
| 34 | WL12XX_REFCLOCK_26_XTAL = 5, /* 26 MHz, XTAL */ | ||
| 35 | }; | ||
| 36 | |||
| 37 | /* TCXO clock values */ | ||
| 38 | enum { | ||
| 39 | WL12XX_TCXOCLOCK_19_2 = 0, /* 19.2MHz */ | ||
| 40 | WL12XX_TCXOCLOCK_26 = 1, /* 26 MHz */ | ||
| 41 | WL12XX_TCXOCLOCK_38_4 = 2, /* 38.4MHz */ | ||
| 42 | WL12XX_TCXOCLOCK_52 = 3, /* 52 MHz */ | ||
| 43 | WL12XX_TCXOCLOCK_16_368 = 4, /* 16.368 MHz */ | ||
| 44 | WL12XX_TCXOCLOCK_32_736 = 5, /* 32.736 MHz */ | ||
| 45 | WL12XX_TCXOCLOCK_16_8 = 6, /* 16.8 MHz */ | ||
| 46 | WL12XX_TCXOCLOCK_33_6 = 7, /* 33.6 MHz */ | ||
| 33 | }; | 47 | }; |
| 34 | 48 | ||
| 35 | struct wl12xx_platform_data { | 49 | struct wl12xx_platform_data { |
| @@ -38,8 +52,13 @@ struct wl12xx_platform_data { | |||
| 38 | int irq; | 52 | int irq; |
| 39 | bool use_eeprom; | 53 | bool use_eeprom; |
| 40 | int board_ref_clock; | 54 | int board_ref_clock; |
| 55 | int board_tcxo_clock; | ||
| 56 | unsigned long platform_quirks; | ||
| 41 | }; | 57 | }; |
| 42 | 58 | ||
| 59 | /* Platform does not support level trigger interrupts */ | ||
| 60 | #define WL12XX_PLATFORM_QUIRK_EDGE_IRQ BIT(0) | ||
| 61 | |||
| 43 | #ifdef CONFIG_WL12XX_PLATFORM_DATA | 62 | #ifdef CONFIG_WL12XX_PLATFORM_DATA |
| 44 | 63 | ||
| 45 | int wl12xx_set_platform_data(const struct wl12xx_platform_data *data); | 64 | int wl12xx_set_platform_data(const struct wl12xx_platform_data *data); |
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 499b7b7c7c9a..0c20227e57f6 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h | |||
| @@ -246,6 +246,15 @@ enum { | |||
| 246 | #define HCI_AT_GENERAL_BONDING 0x04 | 246 | #define HCI_AT_GENERAL_BONDING 0x04 |
| 247 | #define HCI_AT_GENERAL_BONDING_MITM 0x05 | 247 | #define HCI_AT_GENERAL_BONDING_MITM 0x05 |
| 248 | 248 | ||
| 249 | /* Link Key types */ | ||
| 250 | #define HCI_LK_COMBINATION 0x00 | ||
| 251 | #define HCI_LK_LOCAL_UNIT 0x01 | ||
| 252 | #define HCI_LK_REMOTE_UNIT 0x02 | ||
| 253 | #define HCI_LK_DEBUG_COMBINATION 0x03 | ||
| 254 | #define HCI_LK_UNAUTH_COMBINATION 0x04 | ||
| 255 | #define HCI_LK_AUTH_COMBINATION 0x05 | ||
| 256 | #define HCI_LK_CHANGED_COMBINATION 0x06 | ||
| 257 | |||
| 249 | /* ----- HCI Commands ---- */ | 258 | /* ----- HCI Commands ---- */ |
| 250 | #define HCI_OP_NOP 0x0000 | 259 | #define HCI_OP_NOP 0x0000 |
| 251 | 260 | ||
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 4093133c1283..14cc3249c1eb 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
| @@ -126,6 +126,8 @@ struct hci_dev { | |||
| 126 | __u16 sniff_min_interval; | 126 | __u16 sniff_min_interval; |
| 127 | __u16 sniff_max_interval; | 127 | __u16 sniff_max_interval; |
| 128 | 128 | ||
| 129 | unsigned int auto_accept_delay; | ||
| 130 | |||
| 129 | unsigned long quirks; | 131 | unsigned long quirks; |
| 130 | 132 | ||
| 131 | atomic_t cmd_cnt; | 133 | atomic_t cmd_cnt; |
| @@ -226,6 +228,7 @@ struct hci_conn { | |||
| 226 | __u16 pkt_type; | 228 | __u16 pkt_type; |
| 227 | __u16 link_policy; | 229 | __u16 link_policy; |
| 228 | __u32 link_mode; | 230 | __u32 link_mode; |
| 231 | __u8 key_type; | ||
| 229 | __u8 auth_type; | 232 | __u8 auth_type; |
| 230 | __u8 sec_level; | 233 | __u8 sec_level; |
| 231 | __u8 pending_sec_level; | 234 | __u8 pending_sec_level; |
| @@ -245,6 +248,7 @@ struct hci_conn { | |||
| 245 | 248 | ||
| 246 | struct timer_list disc_timer; | 249 | struct timer_list disc_timer; |
| 247 | struct timer_list idle_timer; | 250 | struct timer_list idle_timer; |
| 251 | struct timer_list auto_accept_timer; | ||
| 248 | 252 | ||
| 249 | struct work_struct work_add; | 253 | struct work_struct work_add; |
| 250 | struct work_struct work_del; | 254 | struct work_struct work_del; |
| @@ -511,8 +515,8 @@ int hci_uuids_clear(struct hci_dev *hdev); | |||
| 511 | 515 | ||
| 512 | int hci_link_keys_clear(struct hci_dev *hdev); | 516 | int hci_link_keys_clear(struct hci_dev *hdev); |
| 513 | struct link_key *hci_find_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); | 517 | struct link_key *hci_find_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); |
| 514 | int hci_add_link_key(struct hci_dev *hdev, int new_key, bdaddr_t *bdaddr, | 518 | int hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn, int new_key, |
| 515 | u8 *key, u8 type, u8 pin_len); | 519 | bdaddr_t *bdaddr, u8 *val, u8 type, u8 pin_len); |
| 516 | int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); | 520 | int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); |
| 517 | 521 | ||
| 518 | int hci_remote_oob_data_clear(struct hci_dev *hdev); | 522 | int hci_remote_oob_data_clear(struct hci_dev *hdev); |
| @@ -771,15 +775,16 @@ int mgmt_index_removed(u16 index); | |||
| 771 | int mgmt_powered(u16 index, u8 powered); | 775 | int mgmt_powered(u16 index, u8 powered); |
| 772 | int mgmt_discoverable(u16 index, u8 discoverable); | 776 | int mgmt_discoverable(u16 index, u8 discoverable); |
| 773 | int mgmt_connectable(u16 index, u8 connectable); | 777 | int mgmt_connectable(u16 index, u8 connectable); |
| 774 | int mgmt_new_key(u16 index, struct link_key *key, u8 old_key_type); | 778 | int mgmt_new_key(u16 index, struct link_key *key, u8 persistent); |
| 775 | int mgmt_connected(u16 index, bdaddr_t *bdaddr); | 779 | int mgmt_connected(u16 index, bdaddr_t *bdaddr); |
| 776 | int mgmt_disconnected(u16 index, bdaddr_t *bdaddr); | 780 | int mgmt_disconnected(u16 index, bdaddr_t *bdaddr); |
| 777 | int mgmt_disconnect_failed(u16 index); | 781 | int mgmt_disconnect_failed(u16 index); |
| 778 | int mgmt_connect_failed(u16 index, bdaddr_t *bdaddr, u8 status); | 782 | int mgmt_connect_failed(u16 index, bdaddr_t *bdaddr, u8 status); |
| 779 | int mgmt_pin_code_request(u16 index, bdaddr_t *bdaddr); | 783 | int mgmt_pin_code_request(u16 index, bdaddr_t *bdaddr, u8 secure); |
| 780 | int mgmt_pin_code_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); | 784 | int mgmt_pin_code_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); |
| 781 | int mgmt_pin_code_neg_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); | 785 | int mgmt_pin_code_neg_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); |
| 782 | int mgmt_user_confirm_request(u16 index, bdaddr_t *bdaddr, __le32 value); | 786 | int mgmt_user_confirm_request(u16 index, bdaddr_t *bdaddr, __le32 value, |
| 787 | u8 confirm_hint); | ||
| 783 | int mgmt_user_confirm_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); | 788 | int mgmt_user_confirm_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); |
| 784 | int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr, | 789 | int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr, |
| 785 | u8 status); | 790 | u8 status); |
| @@ -790,6 +795,7 @@ int mgmt_read_local_oob_data_reply_complete(u16 index, u8 *hash, u8 *randomizer, | |||
| 790 | int mgmt_device_found(u16 index, bdaddr_t *bdaddr, u8 *dev_class, s8 rssi, | 795 | int mgmt_device_found(u16 index, bdaddr_t *bdaddr, u8 *dev_class, s8 rssi, |
| 791 | u8 *eir); | 796 | u8 *eir); |
| 792 | int mgmt_remote_name(u16 index, bdaddr_t *bdaddr, u8 *name); | 797 | int mgmt_remote_name(u16 index, bdaddr_t *bdaddr, u8 *name); |
| 798 | int mgmt_discovering(u16 index, u8 discovering); | ||
| 793 | 799 | ||
| 794 | /* HCI info for socket */ | 800 | /* HCI info for socket */ |
| 795 | #define hci_pi(sk) ((struct hci_pinfo *) sk) | 801 | #define hci_pi(sk) ((struct hci_pinfo *) sk) |
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 7a215a7f9e39..c34b1c126363 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
| @@ -284,6 +284,25 @@ struct srej_list { | |||
| 284 | 284 | ||
| 285 | struct l2cap_chan { | 285 | struct l2cap_chan { |
| 286 | struct sock *sk; | 286 | struct sock *sk; |
| 287 | |||
| 288 | struct l2cap_conn *conn; | ||
| 289 | |||
| 290 | __le16 psm; | ||
| 291 | __u16 dcid; | ||
| 292 | __u16 scid; | ||
| 293 | |||
| 294 | __u16 imtu; | ||
| 295 | __u16 omtu; | ||
| 296 | __u16 flush_to; | ||
| 297 | __u8 mode; | ||
| 298 | |||
| 299 | __le16 sport; | ||
| 300 | |||
| 301 | __u8 sec_level; | ||
| 302 | __u8 role_switch; | ||
| 303 | __u8 force_reliable; | ||
| 304 | __u8 flushable; | ||
| 305 | |||
| 287 | __u8 ident; | 306 | __u8 ident; |
| 288 | 307 | ||
| 289 | __u8 conf_req[64]; | 308 | __u8 conf_req[64]; |
| @@ -291,6 +310,15 @@ struct l2cap_chan { | |||
| 291 | __u8 num_conf_req; | 310 | __u8 num_conf_req; |
| 292 | __u8 num_conf_rsp; | 311 | __u8 num_conf_rsp; |
| 293 | 312 | ||
| 313 | __u8 fcs; | ||
| 314 | |||
| 315 | __u8 tx_win; | ||
| 316 | __u8 max_tx; | ||
| 317 | __u16 retrans_timeout; | ||
| 318 | __u16 monitor_timeout; | ||
| 319 | __u16 mps; | ||
| 320 | |||
| 321 | __u8 conf_state; | ||
| 294 | __u16 conn_state; | 322 | __u16 conn_state; |
| 295 | 323 | ||
| 296 | __u8 next_tx_seq; | 324 | __u8 next_tx_seq; |
| @@ -360,32 +388,6 @@ struct l2cap_conn { | |||
| 360 | 388 | ||
| 361 | struct l2cap_pinfo { | 389 | struct l2cap_pinfo { |
| 362 | struct bt_sock bt; | 390 | struct bt_sock bt; |
| 363 | __le16 psm; | ||
| 364 | __u16 dcid; | ||
| 365 | __u16 scid; | ||
| 366 | |||
| 367 | __u16 imtu; | ||
| 368 | __u16 omtu; | ||
| 369 | __u16 flush_to; | ||
| 370 | __u8 mode; | ||
| 371 | |||
| 372 | __u8 fcs; | ||
| 373 | __u8 sec_level; | ||
| 374 | __u8 role_switch; | ||
| 375 | __u8 force_reliable; | ||
| 376 | __u8 flushable; | ||
| 377 | |||
| 378 | __u8 conf_state; | ||
| 379 | |||
| 380 | __u8 tx_win; | ||
| 381 | __u8 max_tx; | ||
| 382 | __u16 retrans_timeout; | ||
| 383 | __u16 monitor_timeout; | ||
| 384 | __u16 mps; | ||
| 385 | |||
| 386 | __le16 sport; | ||
| 387 | |||
| 388 | struct l2cap_conn *conn; | ||
| 389 | struct l2cap_chan *chan; | 391 | struct l2cap_chan *chan; |
| 390 | }; | 392 | }; |
| 391 | 393 | ||
| @@ -439,21 +441,20 @@ static inline int l2cap_tx_window_full(struct l2cap_chan *ch) | |||
| 439 | #define __is_sar_start(ctrl) (((ctrl) & L2CAP_CTRL_SAR) == L2CAP_SDU_START) | 441 | #define __is_sar_start(ctrl) (((ctrl) & L2CAP_CTRL_SAR) == L2CAP_SDU_START) |
| 440 | 442 | ||
| 441 | extern int disable_ertm; | 443 | extern int disable_ertm; |
| 442 | extern const struct proto_ops l2cap_sock_ops; | ||
| 443 | extern struct bt_sock_list l2cap_sk_list; | 444 | extern struct bt_sock_list l2cap_sk_list; |
| 444 | 445 | ||
| 445 | int l2cap_init_sockets(void); | 446 | int l2cap_init_sockets(void); |
| 446 | void l2cap_cleanup_sockets(void); | 447 | void l2cap_cleanup_sockets(void); |
| 447 | 448 | ||
| 448 | void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len, void *data); | 449 | void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len, void *data); |
| 449 | void __l2cap_connect_rsp_defer(struct sock *sk); | 450 | void __l2cap_connect_rsp_defer(struct l2cap_chan *chan); |
| 450 | int __l2cap_wait_ack(struct sock *sk); | 451 | int __l2cap_wait_ack(struct sock *sk); |
| 451 | 452 | ||
| 452 | struct sk_buff *l2cap_create_connless_pdu(struct sock *sk, struct msghdr *msg, size_t len); | 453 | struct sk_buff *l2cap_create_connless_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len); |
| 453 | struct sk_buff *l2cap_create_basic_pdu(struct sock *sk, struct msghdr *msg, size_t len); | 454 | struct sk_buff *l2cap_create_basic_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len); |
| 454 | struct sk_buff *l2cap_create_iframe_pdu(struct sock *sk, struct msghdr *msg, size_t len, u16 control, u16 sdulen); | 455 | struct sk_buff *l2cap_create_iframe_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len, u16 control, u16 sdulen); |
| 455 | int l2cap_sar_segment_sdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len); | 456 | int l2cap_sar_segment_sdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len); |
| 456 | void l2cap_do_send(struct sock *sk, struct sk_buff *skb); | 457 | void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb); |
| 457 | void l2cap_streaming_send(struct l2cap_chan *chan); | 458 | void l2cap_streaming_send(struct l2cap_chan *chan); |
| 458 | int l2cap_ertm_send(struct l2cap_chan *chan); | 459 | int l2cap_ertm_send(struct l2cap_chan *chan); |
| 459 | 460 | ||
| @@ -465,7 +466,9 @@ void l2cap_sock_init(struct sock *sk, struct sock *parent); | |||
| 465 | struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock, | 466 | struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock, |
| 466 | int proto, gfp_t prio); | 467 | int proto, gfp_t prio); |
| 467 | void l2cap_send_disconn_req(struct l2cap_conn *conn, struct l2cap_chan *chan, int err); | 468 | void l2cap_send_disconn_req(struct l2cap_conn *conn, struct l2cap_chan *chan, int err); |
| 469 | struct l2cap_chan *l2cap_chan_alloc(struct sock *sk); | ||
| 468 | void l2cap_chan_del(struct l2cap_chan *chan, int err); | 470 | void l2cap_chan_del(struct l2cap_chan *chan, int err); |
| 469 | int l2cap_do_connect(struct sock *sk); | 471 | void l2cap_chan_free(struct l2cap_chan *chan); |
| 472 | int l2cap_chan_connect(struct l2cap_chan *chan); | ||
| 470 | 473 | ||
| 471 | #endif /* __L2CAP_H */ | 474 | #endif /* __L2CAP_H */ |
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 6b6ff92ab499..4899286ed4e4 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h | |||
| @@ -195,6 +195,10 @@ struct mgmt_cp_remove_remote_oob_data { | |||
| 195 | bdaddr_t bdaddr; | 195 | bdaddr_t bdaddr; |
| 196 | } __packed; | 196 | } __packed; |
| 197 | 197 | ||
| 198 | #define MGMT_OP_START_DISCOVERY 0x001B | ||
| 199 | |||
| 200 | #define MGMT_OP_STOP_DISCOVERY 0x001C | ||
| 201 | |||
| 198 | #define MGMT_EV_CMD_COMPLETE 0x0001 | 202 | #define MGMT_EV_CMD_COMPLETE 0x0001 |
| 199 | struct mgmt_ev_cmd_complete { | 203 | struct mgmt_ev_cmd_complete { |
| 200 | __le16 opcode; | 204 | __le16 opcode; |
| @@ -226,8 +230,8 @@ struct mgmt_ev_controller_error { | |||
| 226 | 230 | ||
| 227 | #define MGMT_EV_NEW_KEY 0x000A | 231 | #define MGMT_EV_NEW_KEY 0x000A |
| 228 | struct mgmt_ev_new_key { | 232 | struct mgmt_ev_new_key { |
| 233 | __u8 store_hint; | ||
| 229 | struct mgmt_key_info key; | 234 | struct mgmt_key_info key; |
| 230 | __u8 old_key_type; | ||
| 231 | } __packed; | 235 | } __packed; |
| 232 | 236 | ||
| 233 | #define MGMT_EV_CONNECTED 0x000B | 237 | #define MGMT_EV_CONNECTED 0x000B |
| @@ -249,11 +253,13 @@ struct mgmt_ev_connect_failed { | |||
| 249 | #define MGMT_EV_PIN_CODE_REQUEST 0x000E | 253 | #define MGMT_EV_PIN_CODE_REQUEST 0x000E |
| 250 | struct mgmt_ev_pin_code_request { | 254 | struct mgmt_ev_pin_code_request { |
| 251 | bdaddr_t bdaddr; | 255 | bdaddr_t bdaddr; |
| 256 | __u8 secure; | ||
| 252 | } __packed; | 257 | } __packed; |
| 253 | 258 | ||
| 254 | #define MGMT_EV_USER_CONFIRM_REQUEST 0x000F | 259 | #define MGMT_EV_USER_CONFIRM_REQUEST 0x000F |
| 255 | struct mgmt_ev_user_confirm_request { | 260 | struct mgmt_ev_user_confirm_request { |
| 256 | bdaddr_t bdaddr; | 261 | bdaddr_t bdaddr; |
| 262 | __u8 confirm_hint; | ||
| 257 | __le32 value; | 263 | __le32 value; |
| 258 | } __packed; | 264 | } __packed; |
| 259 | 265 | ||
| @@ -281,3 +287,5 @@ struct mgmt_ev_remote_name { | |||
| 281 | bdaddr_t bdaddr; | 287 | bdaddr_t bdaddr; |
| 282 | __u8 name[MGMT_MAX_NAME_LENGTH]; | 288 | __u8 name[MGMT_MAX_NAME_LENGTH]; |
| 283 | } __packed; | 289 | } __packed; |
| 290 | |||
| 291 | #define MGMT_EV_DISCOVERING 0x0014 | ||
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index d23dd6c1329c..db4b6b9f3977 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -1822,6 +1822,10 @@ enum ieee80211_ampdu_mlme_action { | |||
| 1822 | * | 1822 | * |
| 1823 | * @tx_frames_pending: Check if there is any pending frame in the hardware | 1823 | * @tx_frames_pending: Check if there is any pending frame in the hardware |
| 1824 | * queues before entering power save. | 1824 | * queues before entering power save. |
| 1825 | * | ||
| 1826 | * @set_bitrate_mask: Set a mask of rates to be used for rate control selection | ||
| 1827 | * when transmitting a frame. Currently only legacy rates are handled. | ||
| 1828 | * The callback can sleep. | ||
| 1825 | */ | 1829 | */ |
| 1826 | struct ieee80211_ops { | 1830 | struct ieee80211_ops { |
| 1827 | void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); | 1831 | void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); |
| @@ -1910,6 +1914,8 @@ struct ieee80211_ops { | |||
| 1910 | void (*get_ringparam)(struct ieee80211_hw *hw, | 1914 | void (*get_ringparam)(struct ieee80211_hw *hw, |
| 1911 | u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max); | 1915 | u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max); |
| 1912 | bool (*tx_frames_pending)(struct ieee80211_hw *hw); | 1916 | bool (*tx_frames_pending)(struct ieee80211_hw *hw); |
| 1917 | int (*set_bitrate_mask)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | ||
| 1918 | const struct cfg80211_bitrate_mask *mask); | ||
| 1913 | }; | 1919 | }; |
| 1914 | 1920 | ||
| 1915 | /** | 1921 | /** |
| @@ -2292,6 +2298,17 @@ void ieee80211_tx_status_irqsafe(struct ieee80211_hw *hw, | |||
| 2292 | struct sk_buff *skb); | 2298 | struct sk_buff *skb); |
| 2293 | 2299 | ||
| 2294 | /** | 2300 | /** |
| 2301 | * ieee80211_report_low_ack - report non-responding station | ||
| 2302 | * | ||
| 2303 | * When operating in AP-mode, call this function to report a non-responding | ||
| 2304 | * connected STA. | ||
| 2305 | * | ||
| 2306 | * @sta: the non-responding connected sta | ||
| 2307 | * @num_packets: number of packets sent to @sta without a response | ||
| 2308 | */ | ||
| 2309 | void ieee80211_report_low_ack(struct ieee80211_sta *sta, u32 num_packets); | ||
| 2310 | |||
| 2311 | /** | ||
| 2295 | * ieee80211_beacon_get_tim - beacon generation function | 2312 | * ieee80211_beacon_get_tim - beacon generation function |
| 2296 | * @hw: pointer obtained from ieee80211_alloc_hw(). | 2313 | * @hw: pointer obtained from ieee80211_alloc_hw(). |
| 2297 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. | 2314 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
