return 0;
 }
 
-static void linux_to_wlan(wilc_wlan_inp_t *nwi, struct wilc *nic)
-{
-       PRINT_D(INIT_DBG, "Linux to Wlan services ...\n");
-
-#ifdef WILC_SDIO
-       nwi->io_func.io_type = HIF_SDIO;
-#else
-       nwi->io_func.io_type = HIF_SPI;
-#endif
-}
-
 static int wlan_initialize_threads(struct net_device *dev)
 {
        perInterface_wlan_t *nic;
 
 int wilc1000_wlan_init(struct net_device *dev, perInterface_wlan_t *p_nic)
 {
-       wilc_wlan_inp_t nwi;
        perInterface_wlan_t *nic = p_nic;
        int ret = 0;
        struct wilc *wl = nic->wilc;
 
                wlan_init_locks(dev);
 
-               linux_to_wlan(&nwi, wl);
-
-               ret = wilc_wlan_init(dev, &nwi);
+#ifdef WILC_SDIO
+               wl->io_type = HIF_SDIO;
+#else
+               wl->io_type = HIF_SPI;
+#endif
+               ret = wilc_wlan_init(dev);
                if (ret < 0) {
                        PRINT_ER("Initializing WILC_Wlan FAILED\n");
                        ret = -EIO;
 
 
 typedef struct {
        int quit;
-       wilc_wlan_io_func_t io_func;
+       int io_type;
        struct wilc_hif_func hif_func;
        int cfg_frame_in_use;
        struct wilc_cfg_frame cfg_frame;
        u32 reg, clk_status_reg, trials = 0;
        u32 sleep_time;
 
-       if ((g_wlan.io_func.io_type & 0x1) == HIF_SPI) {
+       if ((g_wlan.io_type & 0x1) == HIF_SPI) {
                do {
                        g_wlan.hif_func.hif_read_reg(1, ®);
                        g_wlan.hif_func.hif_write_reg(1, reg | BIT(1));
                        } while ((wilc_get_chipid(true) == 0) && ((++trials % 3) == 0));
 
                } while (wilc_get_chipid(true) == 0);
-       } else if ((g_wlan.io_func.io_type & 0x1) == HIF_SDIO)   {
+       } else if ((g_wlan.io_type & 0x1) == HIF_SDIO)   {
                g_wlan.hif_func.hif_read_reg(0xf0, ®);
                do {
                        g_wlan.hif_func.hif_write_reg(0xf0, reg | BIT(0));
        u32 reg, trials = 0;
 
        do {
-               if ((g_wlan.io_func.io_type & 0x1) == HIF_SPI) {
+               if ((g_wlan.io_type & 0x1) == HIF_SPI) {
                        g_wlan.hif_func.hif_read_reg(1, ®);
                        g_wlan.hif_func.hif_write_reg(1, reg & ~BIT(1));
                        g_wlan.hif_func.hif_write_reg(1, reg | BIT(1));
                        g_wlan.hif_func.hif_write_reg(1, reg  & ~BIT(1));
-               } else if ((g_wlan.io_func.io_type & 0x1) == HIF_SDIO)   {
+               } else if ((g_wlan.io_type & 0x1) == HIF_SDIO)   {
                        g_wlan.hif_func.hif_read_reg(0xf0, ®);
                        g_wlan.hif_func.hif_write_reg(0xf0, reg & ~BIT(0));
                        g_wlan.hif_func.hif_write_reg(0xf0, reg | BIT(0));
        int ret;
        u32 chipid;
 
-       if (p->io_func.io_type == HIF_SDIO) {
+       if (p->io_type == HIF_SDIO) {
                reg = 0;
                reg |= BIT(3);
-       } else if (p->io_func.io_type == HIF_SPI) {
+       } else if (p->io_type == HIF_SPI) {
                reg = 1;
        }
        acquire_bus(ACQUIRE_ONLY);
        return chipid;
 }
 
-int wilc_wlan_init(struct net_device *dev, wilc_wlan_inp_t *inp)
+int wilc_wlan_init(struct net_device *dev)
 {
        int ret = 0;
        perInterface_wlan_t *nic = netdev_priv(dev);
        PRINT_D(INIT_DBG, "Initializing WILC_Wlan ...\n");
 
        memset((void *)&g_wlan, 0, sizeof(wilc_wlan_dev_t));
-       memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func,
-              sizeof(wilc_wlan_io_func_t));
+       g_wlan.io_type = wilc->io_type;
 
 #ifdef WILC_SDIO
        if (!wilc_hif_sdio.hif_init(wilc, wilc_debug)) {
 
        u32 block_size;
 } sdio_cmd53_t;
 
-typedef struct {
-       int io_type;
-} wilc_wlan_io_func_t;
-
 #define WILC_MAC_INDICATE_STATUS       0x1
 #define WILC_MAC_STATUS_INIT           -1
 #define WILC_MAC_STATUS_READY          0
 
 #define WILC_MAC_INDICATE_SCAN         0x2
 
-typedef struct {
-       wilc_wlan_io_func_t io_func;
-} wilc_wlan_inp_t;
-
 struct tx_complete_data {
        int size;
        void *buff;
        WID_MAX                         = 0xFFFF
 } WID_T;
 
-int wilc_wlan_init(struct net_device *dev, wilc_wlan_inp_t *inp);
-
+int wilc_wlan_init(struct net_device *dev);
 void wilc_bus_set_max_speed(void);
 void wilc_bus_set_default_speed(void);
 u32 wilc_get_chipid(u8 update);