diff options
| author | John W. Linville <linville@tuxdriver.com> | 2013-06-28 13:18:21 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2013-06-28 13:18:21 -0400 |
| commit | 57ed5cd695d7373b8ae0ae9f10fe945e774d58f0 (patch) | |
| tree | 7ee6244ea7c0be81a541d4e57783f83c4dfd7d66 /include | |
| parent | 5e6700b3bf98fe98d630bf9c939ad4c85ce95592 (diff) | |
| parent | 0f817ed52d07873cd39c9d3f6d87fae962dc742f (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Conflicts:
net/wireless/nl80211.c
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/bcma/bcma.h | 1 | ||||
| -rw-r--r-- | include/linux/bcma/bcma_driver_chipcommon.h | 55 | ||||
| -rw-r--r-- | include/linux/platform_data/brcmfmac-sdio.h | 5 | ||||
| -rw-r--r-- | include/net/bluetooth/hci.h | 1 | ||||
| -rw-r--r-- | include/net/bluetooth/hci_core.h | 29 | ||||
| -rw-r--r-- | include/net/bluetooth/l2cap.h | 2 | ||||
| -rw-r--r-- | include/net/cfg80211.h | 46 | ||||
| -rw-r--r-- | include/net/mac80211.h | 2 | ||||
| -rw-r--r-- | include/uapi/linux/nl80211.h | 4 |
9 files changed, 117 insertions, 28 deletions
diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h index 2e34db82a643..622fc505d3e1 100644 --- a/include/linux/bcma/bcma.h +++ b/include/linux/bcma/bcma.h | |||
| @@ -144,6 +144,7 @@ struct bcma_host_ops { | |||
| 144 | 144 | ||
| 145 | /* Chip IDs of PCIe devices */ | 145 | /* Chip IDs of PCIe devices */ |
| 146 | #define BCMA_CHIP_ID_BCM4313 0x4313 | 146 | #define BCMA_CHIP_ID_BCM4313 0x4313 |
| 147 | #define BCMA_CHIP_ID_BCM43142 43142 | ||
| 147 | #define BCMA_CHIP_ID_BCM43224 43224 | 148 | #define BCMA_CHIP_ID_BCM43224 43224 |
| 148 | #define BCMA_PKG_ID_BCM43224_FAB_CSM 0x8 | 149 | #define BCMA_PKG_ID_BCM43224_FAB_CSM 0x8 |
| 149 | #define BCMA_PKG_ID_BCM43224_FAB_SMIC 0xa | 150 | #define BCMA_PKG_ID_BCM43224_FAB_SMIC 0xa |
diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h index b8b09eac60a4..c49e1a159e6e 100644 --- a/include/linux/bcma/bcma_driver_chipcommon.h +++ b/include/linux/bcma/bcma_driver_chipcommon.h | |||
| @@ -330,6 +330,8 @@ | |||
| 330 | #define BCMA_CC_PMU_CAP 0x0604 /* PMU capabilities */ | 330 | #define BCMA_CC_PMU_CAP 0x0604 /* PMU capabilities */ |
| 331 | #define BCMA_CC_PMU_CAP_REVISION 0x000000FF /* Revision mask */ | 331 | #define BCMA_CC_PMU_CAP_REVISION 0x000000FF /* Revision mask */ |
| 332 | #define BCMA_CC_PMU_STAT 0x0608 /* PMU status */ | 332 | #define BCMA_CC_PMU_STAT 0x0608 /* PMU status */ |
| 333 | #define BCMA_CC_PMU_STAT_EXT_LPO_AVAIL 0x00000100 | ||
| 334 | #define BCMA_CC_PMU_STAT_WDRESET 0x00000080 | ||
| 333 | #define BCMA_CC_PMU_STAT_INTPEND 0x00000040 /* Interrupt pending */ | 335 | #define BCMA_CC_PMU_STAT_INTPEND 0x00000040 /* Interrupt pending */ |
| 334 | #define BCMA_CC_PMU_STAT_SBCLKST 0x00000030 /* Backplane clock status? */ | 336 | #define BCMA_CC_PMU_STAT_SBCLKST 0x00000030 /* Backplane clock status? */ |
| 335 | #define BCMA_CC_PMU_STAT_HAVEALP 0x00000008 /* ALP available */ | 337 | #define BCMA_CC_PMU_STAT_HAVEALP 0x00000008 /* ALP available */ |
| @@ -355,6 +357,11 @@ | |||
| 355 | #define BCMA_CC_REGCTL_DATA 0x065C | 357 | #define BCMA_CC_REGCTL_DATA 0x065C |
| 356 | #define BCMA_CC_PLLCTL_ADDR 0x0660 | 358 | #define BCMA_CC_PLLCTL_ADDR 0x0660 |
| 357 | #define BCMA_CC_PLLCTL_DATA 0x0664 | 359 | #define BCMA_CC_PLLCTL_DATA 0x0664 |
| 360 | #define BCMA_CC_PMU_STRAPOPT 0x0668 /* (corerev >= 28) */ | ||
| 361 | #define BCMA_CC_PMU_XTAL_FREQ 0x066C /* (pmurev >= 10) */ | ||
| 362 | #define BCMA_CC_PMU_XTAL_FREQ_ILPCTL_MASK 0x00001FFF | ||
| 363 | #define BCMA_CC_PMU_XTAL_FREQ_MEASURE_MASK 0x80000000 | ||
| 364 | #define BCMA_CC_PMU_XTAL_FREQ_MEASURE_SHIFT 31 | ||
| 358 | #define BCMA_CC_SPROM 0x0800 /* SPROM beginning */ | 365 | #define BCMA_CC_SPROM 0x0800 /* SPROM beginning */ |
| 359 | /* NAND flash MLC controller registers (corerev >= 38) */ | 366 | /* NAND flash MLC controller registers (corerev >= 38) */ |
| 360 | #define BCMA_CC_NAND_REVISION 0x0C00 | 367 | #define BCMA_CC_NAND_REVISION 0x0C00 |
| @@ -435,6 +442,23 @@ | |||
| 435 | #define BCMA_CC_PMU6_4706_PROC_NDIV_MODE_MASK 0x00000007 | 442 | #define BCMA_CC_PMU6_4706_PROC_NDIV_MODE_MASK 0x00000007 |
| 436 | #define BCMA_CC_PMU6_4706_PROC_NDIV_MODE_SHIFT 0 | 443 | #define BCMA_CC_PMU6_4706_PROC_NDIV_MODE_SHIFT 0 |
| 437 | 444 | ||
| 445 | /* PMU rev 15 */ | ||
| 446 | #define BCMA_CC_PMU15_PLL_PLLCTL0 0 | ||
| 447 | #define BCMA_CC_PMU15_PLL_PC0_CLKSEL_MASK 0x00000003 | ||
| 448 | #define BCMA_CC_PMU15_PLL_PC0_CLKSEL_SHIFT 0 | ||
| 449 | #define BCMA_CC_PMU15_PLL_PC0_FREQTGT_MASK 0x003FFFFC | ||
| 450 | #define BCMA_CC_PMU15_PLL_PC0_FREQTGT_SHIFT 2 | ||
| 451 | #define BCMA_CC_PMU15_PLL_PC0_PRESCALE_MASK 0x00C00000 | ||
| 452 | #define BCMA_CC_PMU15_PLL_PC0_PRESCALE_SHIFT 22 | ||
| 453 | #define BCMA_CC_PMU15_PLL_PC0_KPCTRL_MASK 0x07000000 | ||
| 454 | #define BCMA_CC_PMU15_PLL_PC0_KPCTRL_SHIFT 24 | ||
| 455 | #define BCMA_CC_PMU15_PLL_PC0_FCNTCTRL_MASK 0x38000000 | ||
| 456 | #define BCMA_CC_PMU15_PLL_PC0_FCNTCTRL_SHIFT 27 | ||
| 457 | #define BCMA_CC_PMU15_PLL_PC0_FDCMODE_MASK 0x40000000 | ||
| 458 | #define BCMA_CC_PMU15_PLL_PC0_FDCMODE_SHIFT 30 | ||
| 459 | #define BCMA_CC_PMU15_PLL_PC0_CTRLBIAS_MASK 0x80000000 | ||
| 460 | #define BCMA_CC_PMU15_PLL_PC0_CTRLBIAS_SHIFT 31 | ||
| 461 | |||
| 438 | /* ALP clock on pre-PMU chips */ | 462 | /* ALP clock on pre-PMU chips */ |
| 439 | #define BCMA_CC_PMU_ALP_CLOCK 20000000 | 463 | #define BCMA_CC_PMU_ALP_CLOCK 20000000 |
| 440 | /* HT clock for systems with PMU-enabled chipcommon */ | 464 | /* HT clock for systems with PMU-enabled chipcommon */ |
| @@ -507,6 +531,37 @@ | |||
| 507 | #define BCMA_CHIPCTL_5357_I2S_PINS_ENABLE BIT(18) | 531 | #define BCMA_CHIPCTL_5357_I2S_PINS_ENABLE BIT(18) |
| 508 | #define BCMA_CHIPCTL_5357_I2CSPI_PINS_ENABLE BIT(19) | 532 | #define BCMA_CHIPCTL_5357_I2CSPI_PINS_ENABLE BIT(19) |
| 509 | 533 | ||
| 534 | #define BCMA_RES_4314_LPLDO_PU BIT(0) | ||
| 535 | #define BCMA_RES_4314_PMU_SLEEP_DIS BIT(1) | ||
| 536 | #define BCMA_RES_4314_PMU_BG_PU BIT(2) | ||
| 537 | #define BCMA_RES_4314_CBUCK_LPOM_PU BIT(3) | ||
| 538 | #define BCMA_RES_4314_CBUCK_PFM_PU BIT(4) | ||
| 539 | #define BCMA_RES_4314_CLDO_PU BIT(5) | ||
| 540 | #define BCMA_RES_4314_LPLDO2_LVM BIT(6) | ||
| 541 | #define BCMA_RES_4314_WL_PMU_PU BIT(7) | ||
| 542 | #define BCMA_RES_4314_LNLDO_PU BIT(8) | ||
| 543 | #define BCMA_RES_4314_LDO3P3_PU BIT(9) | ||
| 544 | #define BCMA_RES_4314_OTP_PU BIT(10) | ||
| 545 | #define BCMA_RES_4314_XTAL_PU BIT(11) | ||
| 546 | #define BCMA_RES_4314_WL_PWRSW_PU BIT(12) | ||
| 547 | #define BCMA_RES_4314_LQ_AVAIL BIT(13) | ||
| 548 | #define BCMA_RES_4314_LOGIC_RET BIT(14) | ||
| 549 | #define BCMA_RES_4314_MEM_SLEEP BIT(15) | ||
| 550 | #define BCMA_RES_4314_MACPHY_RET BIT(16) | ||
| 551 | #define BCMA_RES_4314_WL_CORE_READY BIT(17) | ||
| 552 | #define BCMA_RES_4314_ILP_REQ BIT(18) | ||
| 553 | #define BCMA_RES_4314_ALP_AVAIL BIT(19) | ||
| 554 | #define BCMA_RES_4314_MISC_PWRSW_PU BIT(20) | ||
| 555 | #define BCMA_RES_4314_SYNTH_PWRSW_PU BIT(21) | ||
| 556 | #define BCMA_RES_4314_RX_PWRSW_PU BIT(22) | ||
| 557 | #define BCMA_RES_4314_RADIO_PU BIT(23) | ||
| 558 | #define BCMA_RES_4314_VCO_LDO_PU BIT(24) | ||
| 559 | #define BCMA_RES_4314_AFE_LDO_PU BIT(25) | ||
| 560 | #define BCMA_RES_4314_RX_LDO_PU BIT(26) | ||
| 561 | #define BCMA_RES_4314_TX_LDO_PU BIT(27) | ||
| 562 | #define BCMA_RES_4314_HT_AVAIL BIT(28) | ||
| 563 | #define BCMA_RES_4314_MACPHY_CLK_AVAIL BIT(29) | ||
| 564 | |||
| 510 | /* Data for the PMU, if available. | 565 | /* Data for the PMU, if available. |
| 511 | * Check availability with ((struct bcma_chipcommon)->capabilities & BCMA_CC_CAP_PMU) | 566 | * Check availability with ((struct bcma_chipcommon)->capabilities & BCMA_CC_CAP_PMU) |
| 512 | */ | 567 | */ |
diff --git a/include/linux/platform_data/brcmfmac-sdio.h b/include/linux/platform_data/brcmfmac-sdio.h index 1ade657d5fc1..b7174998c24a 100644 --- a/include/linux/platform_data/brcmfmac-sdio.h +++ b/include/linux/platform_data/brcmfmac-sdio.h | |||
| @@ -90,6 +90,10 @@ void __init brcmfmac_init_pdata(void) | |||
| 90 | * oob_irq_nr, oob_irq_flags: the OOB interrupt information. The values are | 90 | * oob_irq_nr, oob_irq_flags: the OOB interrupt information. The values are |
| 91 | * used for registering the irq using request_irq function. | 91 | * used for registering the irq using request_irq function. |
| 92 | * | 92 | * |
| 93 | * broken_sg_support: flag for broken sg list support of SDIO host controller. | ||
| 94 | * Set this to true if the SDIO host controller has higher align requirement | ||
| 95 | * than 32 bytes for each scatterlist item. | ||
| 96 | * | ||
| 93 | * power_on: This function is called by the brcmfmac when the module gets | 97 | * power_on: This function is called by the brcmfmac when the module gets |
| 94 | * loaded. This can be particularly useful for low power devices. The platform | 98 | * loaded. This can be particularly useful for low power devices. The platform |
| 95 | * spcific routine may for example decide to power up the complete device. | 99 | * spcific routine may for example decide to power up the complete device. |
| @@ -116,6 +120,7 @@ struct brcmfmac_sdio_platform_data { | |||
| 116 | bool oob_irq_supported; | 120 | bool oob_irq_supported; |
| 117 | unsigned int oob_irq_nr; | 121 | unsigned int oob_irq_nr; |
| 118 | unsigned long oob_irq_flags; | 122 | unsigned long oob_irq_flags; |
| 123 | bool broken_sg_support; | ||
| 119 | void (*power_on)(void); | 124 | void (*power_on)(void); |
| 120 | void (*power_off)(void); | 125 | void (*power_off)(void); |
| 121 | void (*reset)(void); | 126 | void (*reset)(void); |
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index e0512aaef4b8..3c592cf473da 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h | |||
| @@ -107,7 +107,6 @@ enum { | |||
| 107 | HCI_MGMT, | 107 | HCI_MGMT, |
| 108 | HCI_PAIRABLE, | 108 | HCI_PAIRABLE, |
| 109 | HCI_SERVICE_CACHE, | 109 | HCI_SERVICE_CACHE, |
| 110 | HCI_LINK_KEYS, | ||
| 111 | HCI_DEBUG_KEYS, | 110 | HCI_DEBUG_KEYS, |
| 112 | HCI_UNREGISTER, | 111 | HCI_UNREGISTER, |
| 113 | 112 | ||
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 7cb6d360d147..f77885ea78c2 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
| @@ -117,13 +117,6 @@ struct oob_data { | |||
| 117 | u8 randomizer[16]; | 117 | u8 randomizer[16]; |
| 118 | }; | 118 | }; |
| 119 | 119 | ||
| 120 | struct le_scan_params { | ||
| 121 | u8 type; | ||
| 122 | u16 interval; | ||
| 123 | u16 window; | ||
| 124 | int timeout; | ||
| 125 | }; | ||
| 126 | |||
| 127 | #define HCI_MAX_SHORT_NAME_LENGTH 10 | 120 | #define HCI_MAX_SHORT_NAME_LENGTH 10 |
| 128 | 121 | ||
| 129 | struct amp_assoc { | 122 | struct amp_assoc { |
| @@ -283,9 +276,6 @@ struct hci_dev { | |||
| 283 | 276 | ||
| 284 | struct delayed_work le_scan_disable; | 277 | struct delayed_work le_scan_disable; |
| 285 | 278 | ||
| 286 | struct work_struct le_scan; | ||
| 287 | struct le_scan_params le_scan_params; | ||
| 288 | |||
| 289 | __s8 adv_tx_power; | 279 | __s8 adv_tx_power; |
| 290 | __u8 adv_data[HCI_MAX_AD_LENGTH]; | 280 | __u8 adv_data[HCI_MAX_AD_LENGTH]; |
| 291 | __u8 adv_data_len; | 281 | __u8 adv_data_len; |
| @@ -432,6 +422,7 @@ void hci_inquiry_cache_update_resolve(struct hci_dev *hdev, | |||
| 432 | struct inquiry_entry *ie); | 422 | struct inquiry_entry *ie); |
| 433 | bool hci_inquiry_cache_update(struct hci_dev *hdev, struct inquiry_data *data, | 423 | bool hci_inquiry_cache_update(struct hci_dev *hdev, struct inquiry_data *data, |
| 434 | bool name_known, bool *ssp); | 424 | bool name_known, bool *ssp); |
| 425 | void hci_inquiry_cache_flush(struct hci_dev *hdev); | ||
| 435 | 426 | ||
| 436 | /* ----- HCI Connections ----- */ | 427 | /* ----- HCI Connections ----- */ |
| 437 | enum { | 428 | enum { |
| @@ -1114,6 +1105,16 @@ void hci_sock_dev_event(struct hci_dev *hdev, int event); | |||
| 1114 | BIT(BDADDR_LE_PUBLIC) | \ | 1105 | BIT(BDADDR_LE_PUBLIC) | \ |
| 1115 | BIT(BDADDR_LE_RANDOM)) | 1106 | BIT(BDADDR_LE_RANDOM)) |
| 1116 | 1107 | ||
| 1108 | /* These LE scan and inquiry parameters were chosen according to LE General | ||
| 1109 | * Discovery Procedure specification. | ||
| 1110 | */ | ||
| 1111 | #define DISCOV_LE_SCAN_WIN 0x12 | ||
| 1112 | #define DISCOV_LE_SCAN_INT 0x12 | ||
| 1113 | #define DISCOV_LE_TIMEOUT msecs_to_jiffies(10240) | ||
| 1114 | #define DISCOV_INTERLEAVED_TIMEOUT msecs_to_jiffies(5120) | ||
| 1115 | #define DISCOV_INTERLEAVED_INQUIRY_LEN 0x04 | ||
| 1116 | #define DISCOV_BREDR_INQUIRY_LEN 0x08 | ||
| 1117 | |||
| 1117 | int mgmt_control(struct sock *sk, struct msghdr *msg, size_t len); | 1118 | int mgmt_control(struct sock *sk, struct msghdr *msg, size_t len); |
| 1118 | int mgmt_index_added(struct hci_dev *hdev); | 1119 | int mgmt_index_added(struct hci_dev *hdev); |
| 1119 | int mgmt_index_removed(struct hci_dev *hdev); | 1120 | int mgmt_index_removed(struct hci_dev *hdev); |
| @@ -1169,10 +1170,7 @@ int mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, | |||
| 1169 | u8 ssp, u8 *eir, u16 eir_len); | 1170 | u8 ssp, u8 *eir, u16 eir_len); |
| 1170 | int mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, | 1171 | int mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, |
| 1171 | u8 addr_type, s8 rssi, u8 *name, u8 name_len); | 1172 | u8 addr_type, s8 rssi, u8 *name, u8 name_len); |
| 1172 | int mgmt_start_discovery_failed(struct hci_dev *hdev, u8 status); | ||
| 1173 | int mgmt_stop_discovery_failed(struct hci_dev *hdev, u8 status); | ||
| 1174 | int mgmt_discovering(struct hci_dev *hdev, u8 discovering); | 1173 | int mgmt_discovering(struct hci_dev *hdev, u8 discovering); |
| 1175 | int mgmt_interleaved_discovery(struct hci_dev *hdev); | ||
| 1176 | int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); | 1174 | int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); |
| 1177 | int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); | 1175 | int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); |
| 1178 | bool mgmt_valid_hdev(struct hci_dev *hdev); | 1176 | bool mgmt_valid_hdev(struct hci_dev *hdev); |
| @@ -1212,11 +1210,6 @@ void hci_le_conn_update(struct hci_conn *conn, u16 min, u16 max, | |||
| 1212 | u16 latency, u16 to_multiplier); | 1210 | u16 latency, u16 to_multiplier); |
| 1213 | void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __u8 rand[8], | 1211 | void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __u8 rand[8], |
| 1214 | __u8 ltk[16]); | 1212 | __u8 ltk[16]); |
| 1215 | int hci_do_inquiry(struct hci_dev *hdev, u8 length); | ||
| 1216 | int hci_cancel_inquiry(struct hci_dev *hdev); | ||
| 1217 | int hci_le_scan(struct hci_dev *hdev, u8 type, u16 interval, u16 window, | ||
| 1218 | int timeout); | ||
| 1219 | int hci_cancel_le_scan(struct hci_dev *hdev); | ||
| 1220 | 1213 | ||
| 1221 | u8 bdaddr_to_le(u8 bdaddr_type); | 1214 | u8 bdaddr_to_le(u8 bdaddr_type); |
| 1222 | 1215 | ||
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index fb94cf13c777..1a966afbbfa8 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
| @@ -242,7 +242,7 @@ struct l2cap_conn_rsp { | |||
| 242 | #define L2CAP_CID_SIGNALING 0x0001 | 242 | #define L2CAP_CID_SIGNALING 0x0001 |
| 243 | #define L2CAP_CID_CONN_LESS 0x0002 | 243 | #define L2CAP_CID_CONN_LESS 0x0002 |
| 244 | #define L2CAP_CID_A2MP 0x0003 | 244 | #define L2CAP_CID_A2MP 0x0003 |
| 245 | #define L2CAP_CID_LE_DATA 0x0004 | 245 | #define L2CAP_CID_ATT 0x0004 |
| 246 | #define L2CAP_CID_LE_SIGNALING 0x0005 | 246 | #define L2CAP_CID_LE_SIGNALING 0x0005 |
| 247 | #define L2CAP_CID_SMP 0x0006 | 247 | #define L2CAP_CID_SMP 0x0006 |
| 248 | #define L2CAP_CID_DYN_START 0x0040 | 248 | #define L2CAP_CID_DYN_START 0x0040 |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 6a43c34ce96f..7b0730aeb892 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -188,6 +188,8 @@ struct ieee80211_channel { | |||
| 188 | * when used with 802.11g (on the 2.4 GHz band); filled by the | 188 | * when used with 802.11g (on the 2.4 GHz band); filled by the |
| 189 | * core code when registering the wiphy. | 189 | * core code when registering the wiphy. |
| 190 | * @IEEE80211_RATE_ERP_G: This is an ERP rate in 802.11g mode. | 190 | * @IEEE80211_RATE_ERP_G: This is an ERP rate in 802.11g mode. |
| 191 | * @IEEE80211_RATE_SUPPORTS_5MHZ: Rate can be used in 5 MHz mode | ||
| 192 | * @IEEE80211_RATE_SUPPORTS_10MHZ: Rate can be used in 10 MHz mode | ||
| 191 | */ | 193 | */ |
| 192 | enum ieee80211_rate_flags { | 194 | enum ieee80211_rate_flags { |
| 193 | IEEE80211_RATE_SHORT_PREAMBLE = 1<<0, | 195 | IEEE80211_RATE_SHORT_PREAMBLE = 1<<0, |
| @@ -195,6 +197,8 @@ enum ieee80211_rate_flags { | |||
| 195 | IEEE80211_RATE_MANDATORY_B = 1<<2, | 197 | IEEE80211_RATE_MANDATORY_B = 1<<2, |
| 196 | IEEE80211_RATE_MANDATORY_G = 1<<3, | 198 | IEEE80211_RATE_MANDATORY_G = 1<<3, |
| 197 | IEEE80211_RATE_ERP_G = 1<<4, | 199 | IEEE80211_RATE_ERP_G = 1<<4, |
| 200 | IEEE80211_RATE_SUPPORTS_5MHZ = 1<<5, | ||
| 201 | IEEE80211_RATE_SUPPORTS_10MHZ = 1<<6, | ||
| 198 | }; | 202 | }; |
| 199 | 203 | ||
| 200 | /** | 204 | /** |
| @@ -433,6 +437,30 @@ bool cfg80211_chandef_usable(struct wiphy *wiphy, | |||
| 433 | u32 prohibited_flags); | 437 | u32 prohibited_flags); |
| 434 | 438 | ||
| 435 | /** | 439 | /** |
| 440 | * ieee80211_chandef_rate_flags - returns rate flags for a channel | ||
| 441 | * | ||
| 442 | * In some channel types, not all rates may be used - for example CCK | ||
| 443 | * rates may not be used in 5/10 MHz channels. | ||
| 444 | * | ||
| 445 | * @chandef: channel definition for the channel | ||
| 446 | * | ||
| 447 | * Returns: rate flags which apply for this channel | ||
| 448 | */ | ||
| 449 | static inline enum ieee80211_rate_flags | ||
| 450 | ieee80211_chandef_rate_flags(struct cfg80211_chan_def *chandef) | ||
| 451 | { | ||
| 452 | switch (chandef->width) { | ||
| 453 | case NL80211_CHAN_WIDTH_5: | ||
| 454 | return IEEE80211_RATE_SUPPORTS_5MHZ; | ||
| 455 | case NL80211_CHAN_WIDTH_10: | ||
| 456 | return IEEE80211_RATE_SUPPORTS_10MHZ; | ||
| 457 | default: | ||
| 458 | break; | ||
| 459 | } | ||
| 460 | return 0; | ||
| 461 | } | ||
| 462 | |||
| 463 | /** | ||
| 436 | * enum survey_info_flags - survey information flags | 464 | * enum survey_info_flags - survey information flags |
| 437 | * | 465 | * |
| 438 | * @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in | 466 | * @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in |
| @@ -1431,7 +1459,8 @@ const u8 *ieee80211_bss_get_ie(struct cfg80211_bss *bss, u8 ie); | |||
| 1431 | * This structure provides information needed to complete IEEE 802.11 | 1459 | * This structure provides information needed to complete IEEE 802.11 |
| 1432 | * authentication. | 1460 | * authentication. |
| 1433 | * | 1461 | * |
| 1434 | * @bss: The BSS to authenticate with. | 1462 | * @bss: The BSS to authenticate with, the callee must obtain a reference |
| 1463 | * to it if it needs to keep it. | ||
| 1435 | * @auth_type: Authentication type (algorithm) | 1464 | * @auth_type: Authentication type (algorithm) |
| 1436 | * @ie: Extra IEs to add to Authentication frame or %NULL | 1465 | * @ie: Extra IEs to add to Authentication frame or %NULL |
| 1437 | * @ie_len: Length of ie buffer in octets | 1466 | * @ie_len: Length of ie buffer in octets |
| @@ -1469,11 +1498,10 @@ enum cfg80211_assoc_req_flags { | |||
| 1469 | * | 1498 | * |
| 1470 | * This structure provides information needed to complete IEEE 802.11 | 1499 | * This structure provides information needed to complete IEEE 802.11 |
| 1471 | * (re)association. | 1500 | * (re)association. |
| 1472 | * @bss: The BSS to associate with. If the call is successful the driver | 1501 | * @bss: The BSS to associate with. If the call is successful the driver is |
| 1473 | * is given a reference that it must release, normally via a call to | 1502 | * given a reference that it must give back to cfg80211_send_rx_assoc() |
| 1474 | * cfg80211_send_rx_assoc(), or, if association timed out, with a | 1503 | * or to cfg80211_assoc_timeout(). To ensure proper refcounting, new |
| 1475 | * call to cfg80211_put_bss() (in addition to calling | 1504 | * association requests while already associating must be rejected. |
| 1476 | * cfg80211_send_assoc_timeout()) | ||
| 1477 | * @ie: Extra IEs to add to (Re)Association Request frame or %NULL | 1505 | * @ie: Extra IEs to add to (Re)Association Request frame or %NULL |
| 1478 | * @ie_len: Length of ie buffer in octets | 1506 | * @ie_len: Length of ie buffer in octets |
| 1479 | * @use_mfp: Use management frame protection (IEEE 802.11w) in this association | 1507 | * @use_mfp: Use management frame protection (IEEE 802.11w) in this association |
| @@ -2342,6 +2370,7 @@ struct cfg80211_ops { | |||
| 2342 | * responds to probe-requests in hardware. | 2370 | * responds to probe-requests in hardware. |
| 2343 | * @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX. | 2371 | * @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX. |
| 2344 | * @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call. | 2372 | * @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call. |
| 2373 | * @WIPHY_FLAG_SUPPORTS_5_10_MHZ: Device supports 5 MHz and 10 MHz channels. | ||
| 2345 | */ | 2374 | */ |
| 2346 | enum wiphy_flags { | 2375 | enum wiphy_flags { |
| 2347 | WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), | 2376 | WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0), |
| @@ -2365,6 +2394,7 @@ enum wiphy_flags { | |||
| 2365 | WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = BIT(19), | 2394 | WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = BIT(19), |
| 2366 | WIPHY_FLAG_OFFCHAN_TX = BIT(20), | 2395 | WIPHY_FLAG_OFFCHAN_TX = BIT(20), |
| 2367 | WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = BIT(21), | 2396 | WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = BIT(21), |
| 2397 | WIPHY_FLAG_SUPPORTS_5_10_MHZ = BIT(22), | ||
| 2368 | }; | 2398 | }; |
| 2369 | 2399 | ||
| 2370 | /** | 2400 | /** |
| @@ -3492,11 +3522,11 @@ void cfg80211_rx_assoc_resp(struct net_device *dev, | |||
| 3492 | /** | 3522 | /** |
| 3493 | * cfg80211_assoc_timeout - notification of timed out association | 3523 | * cfg80211_assoc_timeout - notification of timed out association |
| 3494 | * @dev: network device | 3524 | * @dev: network device |
| 3495 | * @addr: The MAC address of the device with which the association timed out | 3525 | * @bss: The BSS entry with which association timed out. |
| 3496 | * | 3526 | * |
| 3497 | * This function may sleep. The caller must hold the corresponding wdev's mutex. | 3527 | * This function may sleep. The caller must hold the corresponding wdev's mutex. |
| 3498 | */ | 3528 | */ |
| 3499 | void cfg80211_assoc_timeout(struct net_device *dev, const u8 *addr); | 3529 | void cfg80211_assoc_timeout(struct net_device *dev, struct cfg80211_bss *bss); |
| 3500 | 3530 | ||
| 3501 | /** | 3531 | /** |
| 3502 | * cfg80211_tx_mlme_mgmt - notification of transmitted deauth/disassoc frame | 3532 | * cfg80211_tx_mlme_mgmt - notification of transmitted deauth/disassoc frame |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index a405a7a9775c..5b7a3dadadde 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -305,6 +305,7 @@ enum ieee80211_rssi_event { | |||
| 305 | * @basic_rates: bitmap of basic rates, each bit stands for an | 305 | * @basic_rates: bitmap of basic rates, each bit stands for an |
| 306 | * index into the rate table configured by the driver in | 306 | * index into the rate table configured by the driver in |
| 307 | * the current band. | 307 | * the current band. |
| 308 | * @beacon_rate: associated AP's beacon TX rate | ||
| 308 | * @mcast_rate: per-band multicast rate index + 1 (0: disabled) | 309 | * @mcast_rate: per-band multicast rate index + 1 (0: disabled) |
| 309 | * @bssid: The BSSID for this BSS | 310 | * @bssid: The BSSID for this BSS |
| 310 | * @enable_beacon: whether beaconing should be enabled or not | 311 | * @enable_beacon: whether beaconing should be enabled or not |
| @@ -352,6 +353,7 @@ struct ieee80211_bss_conf { | |||
| 352 | u32 sync_device_ts; | 353 | u32 sync_device_ts; |
| 353 | u8 sync_dtim_count; | 354 | u8 sync_dtim_count; |
| 354 | u32 basic_rates; | 355 | u32 basic_rates; |
| 356 | struct ieee80211_rate *beacon_rate; | ||
| 355 | int mcast_rate[IEEE80211_NUM_BANDS]; | 357 | int mcast_rate[IEEE80211_NUM_BANDS]; |
| 356 | u16 ht_operation_mode; | 358 | u16 ht_operation_mode; |
| 357 | s32 cqm_rssi_thold; | 359 | s32 cqm_rssi_thold; |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index ca6facf4df0c..861e5eba3953 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
| @@ -2758,6 +2758,8 @@ enum nl80211_channel_type { | |||
| 2758 | * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well | 2758 | * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well |
| 2759 | * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | 2759 | * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 |
| 2760 | * attribute must be provided as well | 2760 | * attribute must be provided as well |
| 2761 | * @NL80211_CHAN_WIDTH_5: 5 MHz OFDM channel | ||
| 2762 | * @NL80211_CHAN_WIDTH_10: 10 MHz OFDM channel | ||
| 2761 | */ | 2763 | */ |
| 2762 | enum nl80211_chan_width { | 2764 | enum nl80211_chan_width { |
| 2763 | NL80211_CHAN_WIDTH_20_NOHT, | 2765 | NL80211_CHAN_WIDTH_20_NOHT, |
| @@ -2766,6 +2768,8 @@ enum nl80211_chan_width { | |||
| 2766 | NL80211_CHAN_WIDTH_80, | 2768 | NL80211_CHAN_WIDTH_80, |
| 2767 | NL80211_CHAN_WIDTH_80P80, | 2769 | NL80211_CHAN_WIDTH_80P80, |
| 2768 | NL80211_CHAN_WIDTH_160, | 2770 | NL80211_CHAN_WIDTH_160, |
| 2771 | NL80211_CHAN_WIDTH_5, | ||
| 2772 | NL80211_CHAN_WIDTH_10, | ||
| 2769 | }; | 2773 | }; |
| 2770 | 2774 | ||
| 2771 | /** | 2775 | /** |
