aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtl8180_dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rtl8180_dev.c')
-rw-r--r--drivers/net/wireless/rtl8180_dev.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/rtl8180_dev.c b/drivers/net/wireless/rtl8180_dev.c
index 4b7b032c194a..07f37b0ccf91 100644
--- a/drivers/net/wireless/rtl8180_dev.c
+++ b/drivers/net/wireless/rtl8180_dev.c
@@ -236,7 +236,8 @@ static int rtl8180_tx(struct ieee80211_hw *dev, struct sk_buff *skb,
236 kmemdup(control, sizeof(*control), GFP_ATOMIC); 236 kmemdup(control, sizeof(*control), GFP_ATOMIC);
237 237
238 if (control->flags & IEEE80211_TXCTL_USE_RTS_CTS) 238 if (control->flags & IEEE80211_TXCTL_USE_RTS_CTS)
239 rts_duration = ieee80211_rts_duration(dev, priv->if_id, skb->len, control); 239 rts_duration = ieee80211_rts_duration(dev, priv->vif, skb->len,
240 control);
240 241
241 if (!priv->r8185) { 242 if (!priv->r8185) {
242 unsigned int remainder; 243 unsigned int remainder;
@@ -638,6 +639,8 @@ static int rtl8180_add_interface(struct ieee80211_hw *dev,
638 return -EOPNOTSUPP; 639 return -EOPNOTSUPP;
639 } 640 }
640 641
642 priv->vif = conf->vif;
643
641 rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG); 644 rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
642 rtl818x_iowrite32(priv, (__le32 __iomem *)&priv->map->MAC[0], 645 rtl818x_iowrite32(priv, (__le32 __iomem *)&priv->map->MAC[0],
643 cpu_to_le32(*(u32 *)conf->mac_addr)); 646 cpu_to_le32(*(u32 *)conf->mac_addr));
@@ -653,6 +656,7 @@ static void rtl8180_remove_interface(struct ieee80211_hw *dev,
653{ 656{
654 struct rtl8180_priv *priv = dev->priv; 657 struct rtl8180_priv *priv = dev->priv;
655 priv->mode = IEEE80211_IF_TYPE_MNTR; 658 priv->mode = IEEE80211_IF_TYPE_MNTR;
659 priv->vif = NULL;
656} 660}
657 661
658static int rtl8180_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf) 662static int rtl8180_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
@@ -664,14 +668,13 @@ static int rtl8180_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
664 return 0; 668 return 0;
665} 669}
666 670
667static int rtl8180_config_interface(struct ieee80211_hw *dev, int if_id, 671static int rtl8180_config_interface(struct ieee80211_hw *dev,
672 struct ieee80211_vif *vif,
668 struct ieee80211_if_conf *conf) 673 struct ieee80211_if_conf *conf)
669{ 674{
670 struct rtl8180_priv *priv = dev->priv; 675 struct rtl8180_priv *priv = dev->priv;
671 int i; 676 int i;
672 677
673 priv->if_id = if_id;
674
675 for (i = 0; i < ETH_ALEN; i++) 678 for (i = 0; i < ETH_ALEN; i++)
676 rtl818x_iowrite8(priv, &priv->map->BSSID[i], conf->bssid[i]); 679 rtl818x_iowrite8(priv, &priv->map->BSSID[i], conf->bssid[i]);
677 680