diff options
| author | John W. Linville <linville@tuxdriver.com> | 2010-09-21 15:49:14 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2010-09-21 15:49:14 -0400 |
| commit | b618f6f885579a6237e5bf4582fa6167972ddef4 (patch) | |
| tree | b11508178570b98ce9cb2d76ecebd046a6f0e77c /include | |
| parent | 462fb2af9788a82a534f8184abfde31574e1cfa0 (diff) | |
| parent | 6e5c2b4e8addfaab8ef54dedaf7b607e1585c35b (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts:
arch/arm/mach-omap2/board-omap3pandora.c
drivers/net/wireless/ath/ath5k/base.c
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/nl80211.h | 4 | ||||
| -rw-r--r-- | include/linux/wl12xx.h (renamed from include/linux/spi/wl12xx.h) | 8 | ||||
| -rw-r--r-- | include/net/cfg80211.h | 37 | ||||
| -rw-r--r-- | include/net/mac80211.h | 29 |
4 files changed, 50 insertions, 28 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 31603e8b5581..f0518b0278a9 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
| @@ -1020,6 +1020,8 @@ enum nl80211_attrs { | |||
| 1020 | * @NL80211_IFTYPE_WDS: wireless distribution interface | 1020 | * @NL80211_IFTYPE_WDS: wireless distribution interface |
| 1021 | * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames | 1021 | * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames |
| 1022 | * @NL80211_IFTYPE_MESH_POINT: mesh point | 1022 | * @NL80211_IFTYPE_MESH_POINT: mesh point |
| 1023 | * @NL80211_IFTYPE_P2P_CLIENT: P2P client | ||
| 1024 | * @NL80211_IFTYPE_P2P_GO: P2P group owner | ||
| 1023 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined | 1025 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined |
| 1024 | * @NUM_NL80211_IFTYPES: number of defined interface types | 1026 | * @NUM_NL80211_IFTYPES: number of defined interface types |
| 1025 | * | 1027 | * |
| @@ -1036,6 +1038,8 @@ enum nl80211_iftype { | |||
| 1036 | NL80211_IFTYPE_WDS, | 1038 | NL80211_IFTYPE_WDS, |
| 1037 | NL80211_IFTYPE_MONITOR, | 1039 | NL80211_IFTYPE_MONITOR, |
| 1038 | NL80211_IFTYPE_MESH_POINT, | 1040 | NL80211_IFTYPE_MESH_POINT, |
| 1041 | NL80211_IFTYPE_P2P_CLIENT, | ||
| 1042 | NL80211_IFTYPE_P2P_GO, | ||
| 1039 | 1043 | ||
| 1040 | /* keep last */ | 1044 | /* keep last */ |
| 1041 | NUM_NL80211_IFTYPES, | 1045 | NUM_NL80211_IFTYPES, |
diff --git a/include/linux/spi/wl12xx.h b/include/linux/wl12xx.h index a20bccf0b5c2..95deae3968f4 100644 --- a/include/linux/spi/wl12xx.h +++ b/include/linux/wl12xx.h | |||
| @@ -21,14 +21,18 @@ | |||
| 21 | * | 21 | * |
| 22 | */ | 22 | */ |
| 23 | 23 | ||
| 24 | #ifndef _LINUX_SPI_WL12XX_H | 24 | #ifndef _LINUX_WL12XX_H |
| 25 | #define _LINUX_SPI_WL12XX_H | 25 | #define _LINUX_WL12XX_H |
| 26 | 26 | ||
| 27 | struct wl12xx_platform_data { | 27 | struct wl12xx_platform_data { |
| 28 | void (*set_power)(bool enable); | 28 | void (*set_power)(bool enable); |
| 29 | /* SDIO only: IRQ number if WLAN_IRQ line is used, 0 for SDIO IRQs */ | 29 | /* SDIO only: IRQ number if WLAN_IRQ line is used, 0 for SDIO IRQs */ |
| 30 | int irq; | 30 | int irq; |
| 31 | bool use_eeprom; | 31 | bool use_eeprom; |
| 32 | int board_ref_clock; | ||
| 32 | }; | 33 | }; |
| 33 | 34 | ||
| 35 | int wl12xx_set_platform_data(const struct wl12xx_platform_data *data); | ||
| 36 | const struct wl12xx_platform_data *wl12xx_get_platform_data(void); | ||
| 37 | |||
| 34 | #endif | 38 | #endif |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 4c8c727d0cca..a0613ff62c97 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -2558,49 +2558,36 @@ void cfg80211_cqm_rssi_notify(struct net_device *dev, | |||
| 2558 | /* wiphy_printk helpers, similar to dev_printk */ | 2558 | /* wiphy_printk helpers, similar to dev_printk */ |
| 2559 | 2559 | ||
| 2560 | #define wiphy_printk(level, wiphy, format, args...) \ | 2560 | #define wiphy_printk(level, wiphy, format, args...) \ |
| 2561 | printk(level "%s: " format, wiphy_name(wiphy), ##args) | 2561 | dev_printk(level, &(wiphy)->dev, format, ##args) |
| 2562 | #define wiphy_emerg(wiphy, format, args...) \ | 2562 | #define wiphy_emerg(wiphy, format, args...) \ |
| 2563 | wiphy_printk(KERN_EMERG, wiphy, format, ##args) | 2563 | dev_emerg(&(wiphy)->dev, format, ##args) |
| 2564 | #define wiphy_alert(wiphy, format, args...) \ | 2564 | #define wiphy_alert(wiphy, format, args...) \ |
| 2565 | wiphy_printk(KERN_ALERT, wiphy, format, ##args) | 2565 | dev_alert(&(wiphy)->dev, format, ##args) |
| 2566 | #define wiphy_crit(wiphy, format, args...) \ | 2566 | #define wiphy_crit(wiphy, format, args...) \ |
| 2567 | wiphy_printk(KERN_CRIT, wiphy, format, ##args) | 2567 | dev_crit(&(wiphy)->dev, format, ##args) |
| 2568 | #define wiphy_err(wiphy, format, args...) \ | 2568 | #define wiphy_err(wiphy, format, args...) \ |
| 2569 | wiphy_printk(KERN_ERR, wiphy, format, ##args) | 2569 | dev_err(&(wiphy)->dev, format, ##args) |
| 2570 | #define wiphy_warn(wiphy, format, args...) \ | 2570 | #define wiphy_warn(wiphy, format, args...) \ |
| 2571 | wiphy_printk(KERN_WARNING, wiphy, format, ##args) | 2571 | dev_warn(&(wiphy)->dev, format, ##args) |
| 2572 | #define wiphy_notice(wiphy, format, args...) \ | 2572 | #define wiphy_notice(wiphy, format, args...) \ |
| 2573 | wiphy_printk(KERN_NOTICE, wiphy, format, ##args) | 2573 | dev_notice(&(wiphy)->dev, format, ##args) |
| 2574 | #define wiphy_info(wiphy, format, args...) \ | 2574 | #define wiphy_info(wiphy, format, args...) \ |
| 2575 | wiphy_printk(KERN_INFO, wiphy, format, ##args) | 2575 | dev_info(&(wiphy)->dev, format, ##args) |
| 2576 | 2576 | ||
| 2577 | int wiphy_debug(const struct wiphy *wiphy, const char *format, ...) | 2577 | #define wiphy_debug(wiphy, format, args...) \ |
| 2578 | __attribute__ ((format (printf, 2, 3))); | ||
| 2579 | |||
| 2580 | #if defined(DEBUG) | ||
| 2581 | #define wiphy_dbg(wiphy, format, args...) \ | ||
| 2582 | wiphy_printk(KERN_DEBUG, wiphy, format, ##args) | 2578 | wiphy_printk(KERN_DEBUG, wiphy, format, ##args) |
| 2583 | #elif defined(CONFIG_DYNAMIC_DEBUG) | 2579 | |
| 2584 | #define wiphy_dbg(wiphy, format, args...) \ | 2580 | #define wiphy_dbg(wiphy, format, args...) \ |
| 2585 | dynamic_pr_debug("%s: " format, wiphy_name(wiphy), ##args) | 2581 | dev_dbg(&(wiphy)->dev, format, ##args) |
| 2586 | #else | ||
| 2587 | #define wiphy_dbg(wiphy, format, args...) \ | ||
| 2588 | ({ \ | ||
| 2589 | if (0) \ | ||
| 2590 | wiphy_printk(KERN_DEBUG, wiphy, format, ##args); \ | ||
| 2591 | 0; \ | ||
| 2592 | }) | ||
| 2593 | #endif | ||
| 2594 | 2582 | ||
| 2595 | #if defined(VERBOSE_DEBUG) | 2583 | #if defined(VERBOSE_DEBUG) |
| 2596 | #define wiphy_vdbg wiphy_dbg | 2584 | #define wiphy_vdbg wiphy_dbg |
| 2597 | #else | 2585 | #else |
| 2598 | |||
| 2599 | #define wiphy_vdbg(wiphy, format, args...) \ | 2586 | #define wiphy_vdbg(wiphy, format, args...) \ |
| 2600 | ({ \ | 2587 | ({ \ |
| 2601 | if (0) \ | 2588 | if (0) \ |
| 2602 | wiphy_printk(KERN_DEBUG, wiphy, format, ##args); \ | 2589 | wiphy_printk(KERN_DEBUG, wiphy, format, ##args); \ |
| 2603 | 0; \ | 2590 | 0; \ |
| 2604 | }) | 2591 | }) |
| 2605 | #endif | 2592 | #endif |
| 2606 | 2593 | ||
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index f91fc331369b..12a49f0ba32c 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -769,6 +769,8 @@ struct ieee80211_channel_switch { | |||
| 769 | * @bss_conf: BSS configuration for this interface, either our own | 769 | * @bss_conf: BSS configuration for this interface, either our own |
| 770 | * or the BSS we're associated to | 770 | * or the BSS we're associated to |
| 771 | * @addr: address of this interface | 771 | * @addr: address of this interface |
| 772 | * @p2p: indicates whether this AP or STA interface is a p2p | ||
| 773 | * interface, i.e. a GO or p2p-sta respectively | ||
| 772 | * @drv_priv: data area for driver use, will always be aligned to | 774 | * @drv_priv: data area for driver use, will always be aligned to |
| 773 | * sizeof(void *). | 775 | * sizeof(void *). |
| 774 | */ | 776 | */ |
| @@ -776,6 +778,7 @@ struct ieee80211_vif { | |||
| 776 | enum nl80211_iftype type; | 778 | enum nl80211_iftype type; |
| 777 | struct ieee80211_bss_conf bss_conf; | 779 | struct ieee80211_bss_conf bss_conf; |
| 778 | u8 addr[ETH_ALEN]; | 780 | u8 addr[ETH_ALEN]; |
| 781 | bool p2p; | ||
| 779 | /* must be last */ | 782 | /* must be last */ |
| 780 | u8 drv_priv[0] __attribute__((__aligned__(sizeof(void *)))); | 783 | u8 drv_priv[0] __attribute__((__aligned__(sizeof(void *)))); |
| 781 | }; | 784 | }; |
| @@ -1701,7 +1704,7 @@ struct ieee80211_ops { | |||
| 1701 | struct ieee80211_vif *vif); | 1704 | struct ieee80211_vif *vif); |
| 1702 | int (*change_interface)(struct ieee80211_hw *hw, | 1705 | int (*change_interface)(struct ieee80211_hw *hw, |
| 1703 | struct ieee80211_vif *vif, | 1706 | struct ieee80211_vif *vif, |
| 1704 | enum nl80211_iftype new_type); | 1707 | enum nl80211_iftype new_type, bool p2p); |
| 1705 | void (*remove_interface)(struct ieee80211_hw *hw, | 1708 | void (*remove_interface)(struct ieee80211_hw *hw, |
| 1706 | struct ieee80211_vif *vif); | 1709 | struct ieee80211_vif *vif); |
| 1707 | int (*config)(struct ieee80211_hw *hw, u32 changed); | 1710 | int (*config)(struct ieee80211_hw *hw, u32 changed); |
| @@ -2293,6 +2296,7 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted); | |||
| 2293 | * This function allows the iterator function to sleep, when the iterator | 2296 | * This function allows the iterator function to sleep, when the iterator |
| 2294 | * function is atomic @ieee80211_iterate_active_interfaces_atomic can | 2297 | * function is atomic @ieee80211_iterate_active_interfaces_atomic can |
| 2295 | * be used. | 2298 | * be used. |
| 2299 | * Does not iterate over a new interface during add_interface() | ||
| 2296 | * | 2300 | * |
| 2297 | * @hw: the hardware struct of which the interfaces should be iterated over | 2301 | * @hw: the hardware struct of which the interfaces should be iterated over |
| 2298 | * @iterator: the iterator function to call | 2302 | * @iterator: the iterator function to call |
| @@ -2310,6 +2314,7 @@ void ieee80211_iterate_active_interfaces(struct ieee80211_hw *hw, | |||
| 2310 | * hardware that are currently active and calls the callback for them. | 2314 | * hardware that are currently active and calls the callback for them. |
| 2311 | * This function requires the iterator callback function to be atomic, | 2315 | * This function requires the iterator callback function to be atomic, |
| 2312 | * if that is not desired, use @ieee80211_iterate_active_interfaces instead. | 2316 | * if that is not desired, use @ieee80211_iterate_active_interfaces instead. |
| 2317 | * Does not iterate over a new interface during add_interface() | ||
| 2313 | * | 2318 | * |
| 2314 | * @hw: the hardware struct of which the interfaces should be iterated over | 2319 | * @hw: the hardware struct of which the interfaces should be iterated over |
| 2315 | * @iterator: the iterator function to call, cannot sleep | 2320 | * @iterator: the iterator function to call, cannot sleep |
| @@ -2719,4 +2724,26 @@ conf_is_ht(struct ieee80211_conf *conf) | |||
| 2719 | return conf->channel_type != NL80211_CHAN_NO_HT; | 2724 | return conf->channel_type != NL80211_CHAN_NO_HT; |
| 2720 | } | 2725 | } |
| 2721 | 2726 | ||
| 2727 | static inline enum nl80211_iftype | ||
| 2728 | ieee80211_iftype_p2p(enum nl80211_iftype type, bool p2p) | ||
| 2729 | { | ||
| 2730 | if (p2p) { | ||
| 2731 | switch (type) { | ||
| 2732 | case NL80211_IFTYPE_STATION: | ||
| 2733 | return NL80211_IFTYPE_P2P_CLIENT; | ||
| 2734 | case NL80211_IFTYPE_AP: | ||
| 2735 | return NL80211_IFTYPE_P2P_GO; | ||
| 2736 | default: | ||
| 2737 | break; | ||
| 2738 | } | ||
| 2739 | } | ||
| 2740 | return type; | ||
| 2741 | } | ||
| 2742 | |||
| 2743 | static inline enum nl80211_iftype | ||
| 2744 | ieee80211_vif_type_p2p(struct ieee80211_vif *vif) | ||
| 2745 | { | ||
| 2746 | return ieee80211_iftype_p2p(vif->type, vif->p2p); | ||
| 2747 | } | ||
| 2748 | |||
| 2722 | #endif /* MAC80211_H */ | 2749 | #endif /* MAC80211_H */ |
