Staging: w35und: Fix ->beacon_int breakage
authorPekka Enberg <penberg@cs.helsinki.fi>
Mon, 21 Sep 2009 09:52:15 +0000 (12:52 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 9 Oct 2009 20:47:23 +0000 (13:47 -0700)
Commit f424afa17899408cbd267a4c4534ca6fc9d8f71c ("mac80211: remove
deprecated API") removed ->beacon_int from struct ieee80211_conf. Fix
breakage in w35und by setting beacon period in ->add_interface to
bss_conf.beacon_int.

Cc: Jiri Benc <jbenc@suse.cz>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sandro Bonazzola <sandro.bonazzola@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/winbond/wbusb.c

index 8950724f168ee7092fa11618f47c9ad02f68eb64..ee6425e43571a09558118d36d47f3ca2f34d28f0 100644 (file)
@@ -51,10 +51,26 @@ static struct ieee80211_supported_band wbsoft_band_2GHz = {
        .n_bitrates     = ARRAY_SIZE(wbsoft_rates),
 };
 
+static void hal_set_beacon_period(struct hw_data *pHwData, u16 beacon_period)
+{
+       u32 tmp;
+
+       if (pHwData->SurpriseRemove)
+               return;
+
+       pHwData->BeaconPeriod = beacon_period;
+       tmp = pHwData->BeaconPeriod << 16;
+       tmp |= pHwData->ProbeDelay;
+       Wb35Reg_Write(pHwData, 0x0848, tmp);
+}
+
 static int wbsoft_add_interface(struct ieee80211_hw *dev,
                                struct ieee80211_if_init_conf *conf)
 {
-       printk("wbsoft_add interface called\n");
+       struct wbsoft_priv *priv = dev->priv;
+
+       hal_set_beacon_period(&priv->sHwData, conf->vif->bss_conf.beacon_int);
+
        return 0;
 }
 
@@ -138,19 +154,6 @@ static void hal_set_radio_mode(struct hw_data *pHwData, unsigned char radio_off)
        Wb35Reg_Write(pHwData, 0x0824, reg->M24_MacControl);
 }
 
-static void hal_set_beacon_period(struct hw_data *pHwData, u16 beacon_period)
-{
-       u32 tmp;
-
-       if (pHwData->SurpriseRemove)
-               return;
-
-       pHwData->BeaconPeriod = beacon_period;
-       tmp = pHwData->BeaconPeriod << 16;
-       tmp |= pHwData->ProbeDelay;
-       Wb35Reg_Write(pHwData, 0x0848, tmp);
-}
-
 static void
 hal_set_current_channel_ex(struct hw_data *pHwData, ChanInfo channel)
 {
@@ -244,7 +247,6 @@ static void hal_set_accept_beacon(struct hw_data *pHwData, u8 enable)
 static int wbsoft_config(struct ieee80211_hw *dev, u32 changed)
 {
        struct wbsoft_priv *priv = dev->priv;
-       struct ieee80211_conf *conf = &dev->conf;
        ChanInfo ch;
 
        printk("wbsoft_config called\n");
@@ -254,7 +256,6 @@ static int wbsoft_config(struct ieee80211_hw *dev, u32 changed)
        ch.ChanNo = 1;
 
        hal_set_current_channel(&priv->sHwData, ch);
-       hal_set_beacon_period(&priv->sHwData, conf->beacon_int);
        hal_set_accept_broadcast(&priv->sHwData, 1);
        hal_set_accept_promiscuous(&priv->sHwData, 1);
        hal_set_accept_multicast(&priv->sHwData, 1);