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 */ |