提交 732c8932 编写于 作者: A Andrea Merello 提交者: John W. Linville

rtl8180: introduce functions to enable/disable ints and add support for rtl8187se

This patch introduces two dedicated functions for enabling and
disabling ints.
Support for rtl8187se is also added to them
Signed-off-by: NAndrea Merello <andrea.merello@gmail.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 a373ebcb
...@@ -463,6 +463,36 @@ void rtl8180_set_anaparam(struct rtl8180_priv *priv, u32 anaparam) ...@@ -463,6 +463,36 @@ void rtl8180_set_anaparam(struct rtl8180_priv *priv, u32 anaparam)
rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL); rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
} }
static void rtl8180_int_enable(struct ieee80211_hw *dev)
{
struct rtl8180_priv *priv = dev->priv;
if (priv->chip_family == RTL818X_CHIP_FAMILY_RTL8187SE) {
rtl818x_iowrite32(priv, &priv->map->IMR, IMR_TMGDOK |
IMR_TBDER | IMR_THPDER |
IMR_THPDER | IMR_THPDOK |
IMR_TVODER | IMR_TVODOK |
IMR_TVIDER | IMR_TVIDOK |
IMR_TBEDER | IMR_TBEDOK |
IMR_TBKDER | IMR_TBKDOK |
IMR_RDU | IMR_RER |
IMR_ROK | IMR_RQOSOK);
} else {
rtl818x_iowrite16(priv, &priv->map->INT_MASK, 0xFFFF);
}
}
static void rtl8180_int_disable(struct ieee80211_hw *dev)
{
struct rtl8180_priv *priv = dev->priv;
if (priv->chip_family == RTL818X_CHIP_FAMILY_RTL8187SE) {
rtl818x_iowrite32(priv, &priv->map->IMR, 0);
} else {
rtl818x_iowrite16(priv, &priv->map->INT_MASK, 0);
}
}
static void rtl8180_conf_basic_rates(struct ieee80211_hw *dev, static void rtl8180_conf_basic_rates(struct ieee80211_hw *dev,
u32 rates_mask) u32 rates_mask)
{ {
...@@ -507,7 +537,7 @@ static int rtl8180_init_hw(struct ieee80211_hw *dev) ...@@ -507,7 +537,7 @@ static int rtl8180_init_hw(struct ieee80211_hw *dev)
msleep(10); msleep(10);
/* reset */ /* reset */
rtl818x_iowrite16(priv, &priv->map->INT_MASK, 0); rtl8180_int_disable(dev);
rtl818x_ioread8(priv, &priv->map->CMD); rtl818x_ioread8(priv, &priv->map->CMD);
reg = rtl818x_ioread8(priv, &priv->map->CMD); reg = rtl818x_ioread8(priv, &priv->map->CMD);
...@@ -747,7 +777,7 @@ static int rtl8180_start(struct ieee80211_hw *dev) ...@@ -747,7 +777,7 @@ static int rtl8180_start(struct ieee80211_hw *dev)
goto err_free_rings; goto err_free_rings;
} }
rtl818x_iowrite16(priv, &priv->map->INT_MASK, 0xFFFF); rtl8180_int_enable(dev);
rtl818x_iowrite32(priv, &priv->map->MAR[0], ~0); rtl818x_iowrite32(priv, &priv->map->MAR[0], ~0);
rtl818x_iowrite32(priv, &priv->map->MAR[1], ~0); rtl818x_iowrite32(priv, &priv->map->MAR[1], ~0);
...@@ -840,7 +870,7 @@ static void rtl8180_stop(struct ieee80211_hw *dev) ...@@ -840,7 +870,7 @@ static void rtl8180_stop(struct ieee80211_hw *dev)
u8 reg; u8 reg;
int i; int i;
rtl818x_iowrite16(priv, &priv->map->INT_MASK, 0); rtl8180_int_disable(dev);
reg = rtl818x_ioread8(priv, &priv->map->CMD); reg = rtl818x_ioread8(priv, &priv->map->CMD);
reg &= ~RTL818X_CMD_TX_ENABLE; reg &= ~RTL818X_CMD_TX_ENABLE;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册