Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / drivers / staging / wilc1000 / linux_wlan_sdio.c
index 9a45871e90933a9a4e11fcde02c09a3319de759c..4aff953a88f167880959ee12973bc11deecec734 100644 (file)
@@ -27,8 +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;
 
@@ -43,9 +41,13 @@ static const struct sdio_device_id wilc_sdio_ids[] = {
 
 static void wilc_sdio_interrupt(struct sdio_func *func)
 {
+       struct wilc_sdio *wl_sdio;
+
+       wl_sdio = sdio_get_drvdata(func);
+
 #ifndef WILC_SDIO_IRQ_GPIO
        sdio_release_host(func);
-       wilc_handle_isr();
+       wilc_handle_isr(wl_sdio->wilc);
        sdio_claim_host(func);
 #endif
 }
@@ -117,6 +119,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 +128,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");