2012-06-13 17:34:24

by Yoni Divinsky

[permalink] [raw]
Subject: [PATCH] wlcore: declare interface combinations

From: Eliad Peller <[email protected]>

Advertise to the stack that the wlcore driver
supports multiple interfaces for a single device.
This is required in order to be able to run
multirole with mac80211.

Signed-off-by: Eliad Peller <[email protected]>
Signed-off-by: Yoni Divinsky <[email protected]>
---
drivers/net/wireless/ti/wlcore/main.c | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index 5886da5..cac5f46 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -5019,6 +5019,29 @@ static void wl1271_unregister_hw(struct wl1271 *wl)

}

+static const struct ieee80211_iface_limit wlcore_iface_limits[] = {
+ {
+ .max = 2,
+ .types = BIT(NL80211_IFTYPE_STATION),
+ },
+ {
+ .max = 1,
+ .types = BIT(NL80211_IFTYPE_AP) |
+ BIT(NL80211_IFTYPE_P2P_GO) |
+ BIT(NL80211_IFTYPE_P2P_CLIENT),
+ },
+};
+
+static const struct ieee80211_iface_combination
+wlcore_iface_combinations[] = {
+ {
+ .num_different_channels = 1,
+ .max_interfaces = 2,
+ .limits = wlcore_iface_limits,
+ .n_limits = ARRAY_SIZE(wlcore_iface_limits),
+ },
+};
+
static int wl1271_init_ieee80211(struct wl1271 *wl)
{
static const u32 cipher_suites[] = {
@@ -5113,6 +5136,11 @@ static int wl1271_init_ieee80211(struct wl1271 *wl)
NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 |
NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P;

+ /* allowed interface combinations */
+ wl->hw->wiphy->iface_combinations = wlcore_iface_combinations;
+ wl->hw->wiphy->n_iface_combinations =
+ ARRAY_SIZE(wlcore_iface_combinations);
+
SET_IEEE80211_DEV(wl->hw, wl->dev);

wl->hw->sta_data_size = sizeof(struct wl1271_station);
--
1.7.0.4



2012-06-13 19:06:21

by Luciano Coelho

[permalink] [raw]
Subject: Re: [PATCH] wlcore: declare interface combinations

On Wed, 2012-06-13 at 20:29 +0300, Yoni Divinsky wrote:
> From: Eliad Peller <[email protected]>
>
> Advertise to the stack that the wlcore driver
> supports multiple interfaces for a single device.
> This is required in order to be able to run
> multirole with mac80211.
>
> Signed-off-by: Eliad Peller <[email protected]>
> Signed-off-by: Yoni Divinsky <[email protected]>
> ---

Applied and pushed, thanks guys!

--
Luca.