rtl8180: don't write MAR registers for rtl8187se
authorAndrea Merello <andrea.merello@gmail.com>
Wed, 26 Mar 2014 20:00:42 +0000 (21:00 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 27 Mar 2014 18:20:08 +0000 (14:20 -0400)
MAR registers are not present in rtl8187se, and attempting to
write to them must be avoided

Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rtl818x/rtl8180/dev.c

index 92b6d53ca0ef6bc6620fd88280e3f234e7b6342e..cce972d289ef3c20b9f97cf522e8b12fd454551d 100644 (file)
@@ -779,8 +779,13 @@ static int rtl8180_start(struct ieee80211_hw *dev)
 
        rtl8180_int_enable(dev);
 
-       rtl818x_iowrite32(priv, &priv->map->MAR[0], ~0);
-       rtl818x_iowrite32(priv, &priv->map->MAR[1], ~0);
+       /* in rtl8187se at MAR regs offset there is the management
+        * TX descriptor DMA addres..
+        */
+       if (priv->chip_family != RTL818X_CHIP_FAMILY_RTL8187SE) {
+               rtl818x_iowrite32(priv, &priv->map->MAR[0], ~0);
+               rtl818x_iowrite32(priv, &priv->map->MAR[1], ~0);
+       }
 
        reg = RTL818X_RX_CONF_ONLYERLPKT |
              RTL818X_RX_CONF_RX_AUTORESETPHY |