[PATCH 03/17] rtl8192e: Add start function to mac80211 ops
Mike McCormack
mikem at ring3k.org
Wed Apr 13 00:18:22 UTC 2011
Signed-off-by: Mike McCormack <mikem at ring3k.org>
---
drivers/staging/rtl8192e/ieee80211/ieee80211.h | 1 +
drivers/staging/rtl8192e/r8192E_core.c | 29 ++++++++++++-----------
2 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211.h b/drivers/staging/rtl8192e/ieee80211/ieee80211.h
index f5717f9..d100db9 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211.h
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211.h
@@ -1797,6 +1797,7 @@ typedef enum _HW_VARIABLES{
struct ieee80211_ops {
int (*tx)(struct ieee80211_device *hw, struct sk_buff *skb);
int (*config)(struct ieee80211_device *hw, u32 changed);
+ int (*start)(struct ieee80211_device *hw);
};
struct ieee80211_device {
diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c
index 122f212..2c27baa 100644
--- a/drivers/staging/rtl8192e/r8192E_core.c
+++ b/drivers/staging/rtl8192e/r8192E_core.c
@@ -2512,11 +2512,12 @@ static void rtl8192_hwconfig(struct r8192_priv *priv)
}
-static RT_STATUS rtl8192_adapter_start(struct r8192_priv *priv)
+static int rtl8192_start(struct ieee80211_device *ieee)
{
+ struct r8192_priv *priv = ieee80211_priv(ieee->dev);
struct net_device *dev = priv->ieee80211->dev;
u32 ulRegRead;
- RT_STATUS rtStatus = RT_STATUS_SUCCESS;
+ RT_STATUS rtStatus;
u8 tmpvalue;
u8 ICVersion,SwitchingRegulatorOutput;
bool bfirmwareok = true;
@@ -2584,7 +2585,7 @@ static RT_STATUS rtl8192_adapter_start(struct r8192_priv *priv)
if(rtStatus != RT_STATUS_SUCCESS)
{
RT_TRACE(COMP_ERR, "BB Config failed\n");
- return rtStatus;
+ return -1;
}
RT_TRACE(COMP_INIT,"BB Config Finished!\n");
@@ -2722,10 +2723,9 @@ static RT_STATUS rtl8192_adapter_start(struct r8192_priv *priv)
//Firmware download
RT_TRACE(COMP_INIT, "Load Firmware!\n");
bfirmwareok = init_firmware(priv);
- if(bfirmwareok != true) {
- rtStatus = RT_STATUS_FAILURE;
- return rtStatus;
- }
+ if(bfirmwareok != true)
+ return -EIO;
+
RT_TRACE(COMP_INIT, "Load Firmware finished!\n");
//RF config
@@ -2736,7 +2736,7 @@ static RT_STATUS rtl8192_adapter_start(struct r8192_priv *priv)
if(rtStatus != RT_STATUS_SUCCESS)
{
RT_TRACE(COMP_ERR, "RF Config failed\n");
- return rtStatus;
+ return -EIO;
}
RT_TRACE(COMP_INIT, "RF Config Finished!\n");
}
@@ -2821,7 +2821,7 @@ static RT_STATUS rtl8192_adapter_start(struct r8192_priv *priv)
rtl8192_irq_enable(priv);
priv->being_init_adapter = false;
- return rtStatus;
+ return 0;
}
@@ -3368,19 +3368,19 @@ void watch_dog_timer_callback(unsigned long data)
static int _rtl8192_up(struct r8192_priv *priv)
{
- RT_STATUS init_status = RT_STATUS_SUCCESS;
struct net_device *dev = priv->ieee80211->dev;
+ int ret;
priv->up=1;
priv->ieee80211->ieee_up=1;
priv->bdisable_nic = false; //YJ,add,091111
RT_TRACE(COMP_INIT, "Bringing up iface\n");
- init_status = rtl8192_adapter_start(priv);
- if(init_status != RT_STATUS_SUCCESS)
+ ret = rtl8192_start(priv->ieee80211);
+ if (ret < 0)
{
RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__);
- return -1;
+ return ret;
}
RT_TRACE(COMP_INIT, "start adapter finished\n");
@@ -4538,6 +4538,7 @@ static const struct net_device_ops rtl8192_netdev_ops = {
static const struct ieee80211_ops r8192e_ops = {
.tx = rtl8192_hard_start_xmit,
.config = rtl8192_config,
+ .start = rtl8192_start,
};
static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
@@ -5006,7 +5007,7 @@ bool NicIFEnableNIC(struct r8192_priv *priv)
// <2> Enable Adapter
//priv->bfirst_init = true;
- init_status = rtl8192_adapter_start(priv);
+ init_status = rtl8192_start(priv->ieee80211);
if (init_status != RT_STATUS_SUCCESS) {
RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__);
priv->bdisable_nic = false; //YJ,add,091111
--
1.7.0.4
More information about the devel
mailing list