staging: wilc1000: separate hif_sdio and hif_spi into different module

hif_sdio and hif_spi objects are compiled all the time even though one of SPI
or SDIO is selected. This patch separates hif_sdio and hif_spi into different
modules using ifdef define.
After rework SPI and SDIO modules with only one hif interface, the define
WILC_SDIO will be removed. This is first path of this series.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Glen Lee 2015-11-06 18:39:58 +09:00 committed by Greg Kroah-Hartman
parent 540c3e88ba
commit cdb99231c4
2 changed files with 20 additions and 22 deletions

View file

@ -21,8 +21,8 @@ ccflags-$(CONFIG_WILC1000_DYNAMICALLY_ALLOCATE_MEMROY) += -DWILC_NORMAL_ALLOC
wilc1000-objs := wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \
wilc_msgqueue.o \
coreconfigurator.o host_interface.o \
wilc_sdio.o wilc_spi.o wilc_wlan_cfg.o wilc_debugfs.o \
wilc_wlan_cfg.o wilc_debugfs.o \
wilc_wlan.o
wilc1000-$(CONFIG_WILC1000_SDIO) += linux_wlan_sdio.o
wilc1000-$(CONFIG_WILC1000_SPI) += linux_wlan_spi.o
wilc1000-$(CONFIG_WILC1000_SDIO) += linux_wlan_sdio.o wilc_sdio.o
wilc1000-$(CONFIG_WILC1000_SPI) += linux_wlan_spi.o wilc_spi.o

View file

@ -2,8 +2,11 @@
#include "wilc_wfi_netdevice.h"
#include "wilc_wlan_cfg.h"
#ifdef WILC_SDIO
extern struct wilc_hif_func hif_sdio;
#else
extern struct wilc_hif_func hif_spi;
#endif
u32 wilc_get_chipid(u8 update);
typedef struct {
@ -1659,26 +1662,21 @@ int wilc_wlan_init(struct net_device *dev, wilc_wlan_inp_t *inp)
memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func,
sizeof(wilc_wlan_io_func_t));
if ((inp->io_func.io_type & 0x1) == HIF_SDIO) {
if (!hif_sdio.hif_init(inp, wilc_debug)) {
ret = -EIO;
goto _fail_;
}
memcpy((void *)&g_wlan.hif_func, &hif_sdio,
sizeof(struct wilc_hif_func));
} else {
if ((inp->io_func.io_type & 0x1) == HIF_SPI) {
if (!hif_spi.hif_init(inp, wilc_debug)) {
ret = -EIO;
goto _fail_;
}
memcpy((void *)&g_wlan.hif_func, &hif_spi,
sizeof(struct wilc_hif_func));
} else {
ret = -EIO;
goto _fail_;
}
#ifdef WILC_SDIO
if (!hif_sdio.hif_init(inp, wilc_debug)) {
ret = -EIO;
goto _fail_;
}
memcpy((void *)&g_wlan.hif_func, &hif_sdio,
sizeof(struct wilc_hif_func));
#else
if (!hif_spi.hif_init(inp, wilc_debug)) {
ret = -EIO;
goto _fail_;
}
memcpy((void *)&g_wlan.hif_func, &hif_spi,
sizeof(struct wilc_hif_func));
#endif
if (!wilc_wlan_cfg_init(wilc_debug)) {
ret = -ENOBUFS;