summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Cho <tony.cho@atmel.com>2015-10-20 14:26:56 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-10-24 18:14:35 -0700
commit12ba5416dc7702cc5bb6d8611d4c288302722c6a (patch)
tree9d416a535f84fa1b77df8d4a0e791bb8a3ccae17
parent75ce07d4a09e31a8d2c38bce95e92d12031e605a (diff)
downloadlinux-12ba5416dc7702cc5bb6d8611d4c288302722c6a.tar.bz2
staging: wilc1000: assign pointer of g_linux_wlan to sdio device data
This patch assigns wl pointer to sdio device data. The global variable g_linux_wlan will be removed finally. Signed-off-by: Tony Cho <tony.cho@atmel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/wilc1000/linux_wlan.c5
-rw-r--r--drivers/staging/wilc1000/linux_wlan_sdio.c5
-rw-r--r--drivers/staging/wilc1000/wilc_wfi_netdevice.h1
3 files changed, 7 insertions, 4 deletions
diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 3cad5b633e16..5701e58f7c4e 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1620,9 +1620,8 @@ void wl_wlan_cleanup(void)
linux_wlan_device_power(0);
}
-int wilc_netdev_init(void)
+int wilc_netdev_init(struct wilc **wilc)
{
-
int i;
perInterface_wlan_t *nic;
struct net_device *ndev;
@@ -1634,6 +1633,8 @@ int wilc_netdev_init(void)
if (!g_linux_wlan)
return -ENOMEM;
+ *wilc = g_linux_wlan;
+
register_inetaddr_notifier(&g_dev_notifier);
for (i = 0; i < NUM_CONCURRENT_IFC; i++) {
diff --git a/drivers/staging/wilc1000/linux_wlan_sdio.c b/drivers/staging/wilc1000/linux_wlan_sdio.c
index 9a45871e9093..1f8d8743f376 100644
--- a/drivers/staging/wilc1000/linux_wlan_sdio.c
+++ b/drivers/staging/wilc1000/linux_wlan_sdio.c
@@ -27,7 +27,6 @@ struct wilc_sdio {
};
struct sdio_func *local_sdio_func;
-extern int wilc_netdev_init(void);
extern void wilc_handle_isr(void);
static unsigned int sdio_default_speed;
@@ -117,6 +116,7 @@ int linux_sdio_cmd53(sdio_cmd53_t *cmd)
static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id)
{
struct wilc_sdio *wl_sdio;
+ struct wilc *wilc;
PRINT_D(INIT_DBG, "probe function\n");
wl_sdio = kzalloc(sizeof(struct wilc_sdio), GFP_KERNEL);
@@ -125,12 +125,13 @@ static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id
PRINT_D(INIT_DBG, "Initializing netdev\n");
local_sdio_func = func;
- if (wilc_netdev_init()) {
+ if (wilc_netdev_init(&wilc)) {
PRINT_ER("Couldn't initialize netdev\n");
kfree(wl_sdio);
return -1;
}
wl_sdio->func = func;
+ wl_sdio->wilc = wilc;
sdio_set_drvdata(func, wl_sdio);
printk("Driver Initializing success\n");
diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
index 74eb7b695d13..e0c66bcdf88a 100644
--- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h
+++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
@@ -214,4 +214,5 @@ void linux_wlan_rx_complete(void);
void linux_wlan_dbg(u8 *buff);
int linux_wlan_lock_timeout(void *vp, u32 timeout);
void wl_wlan_cleanup(void);
+int wilc_netdev_init(struct wilc **wilc);
#endif