Commit 12ba5416 authored by Tony Cho's avatar Tony Cho Committed by Greg Kroah-Hartman

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: default avatarTony Cho <tony.cho@atmel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 75ce07d4
...@@ -1620,9 +1620,8 @@ void wl_wlan_cleanup(void) ...@@ -1620,9 +1620,8 @@ void wl_wlan_cleanup(void)
linux_wlan_device_power(0); linux_wlan_device_power(0);
} }
int wilc_netdev_init(void) int wilc_netdev_init(struct wilc **wilc)
{ {
int i; int i;
perInterface_wlan_t *nic; perInterface_wlan_t *nic;
struct net_device *ndev; struct net_device *ndev;
...@@ -1634,6 +1633,8 @@ int wilc_netdev_init(void) ...@@ -1634,6 +1633,8 @@ int wilc_netdev_init(void)
if (!g_linux_wlan) if (!g_linux_wlan)
return -ENOMEM; return -ENOMEM;
*wilc = g_linux_wlan;
register_inetaddr_notifier(&g_dev_notifier); register_inetaddr_notifier(&g_dev_notifier);
for (i = 0; i < NUM_CONCURRENT_IFC; i++) { for (i = 0; i < NUM_CONCURRENT_IFC; i++) {
......
...@@ -27,7 +27,6 @@ struct wilc_sdio { ...@@ -27,7 +27,6 @@ struct wilc_sdio {
}; };
struct sdio_func *local_sdio_func; struct sdio_func *local_sdio_func;
extern int wilc_netdev_init(void);
extern void wilc_handle_isr(void); extern void wilc_handle_isr(void);
static unsigned int sdio_default_speed; static unsigned int sdio_default_speed;
...@@ -117,6 +116,7 @@ int linux_sdio_cmd53(sdio_cmd53_t *cmd) ...@@ -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) static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id)
{ {
struct wilc_sdio *wl_sdio; struct wilc_sdio *wl_sdio;
struct wilc *wilc;
PRINT_D(INIT_DBG, "probe function\n"); PRINT_D(INIT_DBG, "probe function\n");
wl_sdio = kzalloc(sizeof(struct wilc_sdio), GFP_KERNEL); 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 ...@@ -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"); PRINT_D(INIT_DBG, "Initializing netdev\n");
local_sdio_func = func; local_sdio_func = func;
if (wilc_netdev_init()) { if (wilc_netdev_init(&wilc)) {
PRINT_ER("Couldn't initialize netdev\n"); PRINT_ER("Couldn't initialize netdev\n");
kfree(wl_sdio); kfree(wl_sdio);
return -1; return -1;
} }
wl_sdio->func = func; wl_sdio->func = func;
wl_sdio->wilc = wilc;
sdio_set_drvdata(func, wl_sdio); sdio_set_drvdata(func, wl_sdio);
printk("Driver Initializing success\n"); printk("Driver Initializing success\n");
......
...@@ -214,4 +214,5 @@ void linux_wlan_rx_complete(void); ...@@ -214,4 +214,5 @@ void linux_wlan_rx_complete(void);
void linux_wlan_dbg(u8 *buff); void linux_wlan_dbg(u8 *buff);
int linux_wlan_lock_timeout(void *vp, u32 timeout); int linux_wlan_lock_timeout(void *vp, u32 timeout);
void wl_wlan_cleanup(void); void wl_wlan_cleanup(void);
int wilc_netdev_init(struct wilc **wilc);
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment