Commit 750ffe9b authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Greg Kroah-Hartman

staging/wilc1000: split out bus specific modules

The SPI and SDIO specific code is now separate enough that
we just need to restructure the Makefile and Kconfig logic
a bit and export a couple of symbols from the common module
to have separate bus glue drivers.
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e28e84d2
config WILC1000_DRIVER
bool "WILC1000 support (WiFi only)"
depends on CFG80211 && WEXT_CORE && INET
---help---
This module only support IEEE 802.11n WiFi.
if WILC1000_DRIVER
config WILC1000 config WILC1000
tristate tristate
select WIRELESS_EXT
choice
prompt "Memory Allocation"
default WILC1000_PREALLOCATE_AT_LOADING_DRIVER
config WILC1000_PREALLOCATE_AT_LOADING_DRIVER
bool "Preallocate memory at loading driver"
---help--- ---help---
This choice supports static allocation of the memory This module only support IEEE 802.11n WiFi.
for the receive buffer. The driver will allocate the RX buffer
during initial time. The driver will also free the buffer
by calling network device stop.
config WILC1000_DYNAMICALLY_ALLOCATE_MEMROY
bool "Dynamically allocate memory in real time"
---help---
This choice supports dynamic allocation of the memory
for the receive buffer. The driver will allocate the RX buffer
when it is required.
endchoice
choice
prompt "Bus Type"
default WILC1000_SDIO
config WILC1000_SDIO config WILC1000_SDIO
bool "SDIO support" tristate "Atmel WILC1000 SDIO (WiFi only)"
depends on MMC depends on CFG80211 && INET && MMC
select WILC1000 select WILC1000
---help--- ---help---
This module adds support for the SDIO interface of adapters using This module adds support for the SDIO interface of adapters using
...@@ -48,9 +19,9 @@ config WILC1000_SDIO ...@@ -48,9 +19,9 @@ config WILC1000_SDIO
this if your platform is using the SDIO bus. this if your platform is using the SDIO bus.
config WILC1000_SPI config WILC1000_SPI
depends on SPI tristate "Atmel WILC1000 SPI (WiFi only)"
depends on CFG80211 && INET && SPI
select WILC1000 select WILC1000
bool "SPI support"
---help--- ---help---
This module adds support for the SPI interface of adapters using This module adds support for the SPI interface of adapters using
WILC1000 chipset. The Atmel WILC1000 has a Serial Peripheral WILC1000 chipset. The Atmel WILC1000 has a Serial Peripheral
...@@ -59,10 +30,31 @@ config WILC1000_SPI ...@@ -59,10 +30,31 @@ config WILC1000_SPI
full-duplex slave synchronous serial interface that is available full-duplex slave synchronous serial interface that is available
immediately following reset when pin 9 (SDIO_SPI_CFG) is tied to immediately following reset when pin 9 (SDIO_SPI_CFG) is tied to
VDDIO. Select this if your platform is using the SPI bus. VDDIO. Select this if your platform is using the SPI bus.
choice
prompt "WILC1000 Memory Allocation"
depends on WILC1000
default WILC1000_PREALLOCATE_AT_LOADING_DRIVER
config WILC1000_PREALLOCATE_AT_LOADING_DRIVER
bool "Preallocate memory at loading driver"
---help---
This choice supports static allocation of the memory
for the receive buffer. The driver will allocate the RX buffer
during initial time. The driver will also free the buffer
by calling network device stop.
config WILC1000_DYNAMICALLY_ALLOCATE_MEMROY
bool "Dynamically allocate memory in real time"
---help---
This choice supports dynamic allocation of the memory
for the receive buffer. The driver will allocate the RX buffer
when it is required.
endchoice endchoice
config WILC1000_HW_OOB_INTR config WILC1000_HW_OOB_INTR
bool "Use out of band interrupt" bool "WILC1000 out of band interrupt"
depends on WILC1000_SDIO depends on WILC1000_SDIO
default n default n
---help--- ---help---
...@@ -71,5 +63,3 @@ config WILC1000_HW_OOB_INTR ...@@ -71,5 +63,3 @@ config WILC1000_HW_OOB_INTR
mechanism for SDIO host controllers that don't support SDIO interrupt. mechanism for SDIO host controllers that don't support SDIO interrupt.
Select this option If the SDIO host controller in your platform Select this option If the SDIO host controller in your platform
doesn't support SDIO time devision interrupt. doesn't support SDIO time devision interrupt.
endif
...@@ -21,5 +21,8 @@ wilc1000-objs := wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \ ...@@ -21,5 +21,8 @@ wilc1000-objs := wilc_wfi_cfgoperations.o linux_wlan.o linux_mon.o \
wilc_wlan_cfg.o wilc_debugfs.o \ wilc_wlan_cfg.o wilc_debugfs.o \
wilc_wlan.o wilc_wlan.o
wilc1000-$(CONFIG_WILC1000_SDIO) += linux_wlan_sdio.o wilc_sdio.o obj-$(CONFIG_WILC1000_SDIO) += wilc1000-sdio.o
wilc1000-$(CONFIG_WILC1000_SPI) += linux_wlan_spi.o wilc_spi.o wilc1000-sdio-objs += linux_wlan_sdio.o wilc_sdio.o
obj-$(CONFIG_WILC1000_SPI) += wilc1000-spi.o
wilc1000-spi-objs += linux_wlan_spi.o wilc_spi.o
...@@ -44,6 +44,8 @@ static struct net_device_stats *mac_stats(struct net_device *dev); ...@@ -44,6 +44,8 @@ static struct net_device_stats *mac_stats(struct net_device *dev);
static int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd); static int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd);
static void wilc_set_multicast_list(struct net_device *dev); static void wilc_set_multicast_list(struct net_device *dev);
struct wilc *wilc_dev; struct wilc *wilc_dev;
EXPORT_SYMBOL_GPL(wilc_dev);
bool wilc_enable_ps = true; bool wilc_enable_ps = true;
static const struct net_device_ops wilc_netdev_ops = { static const struct net_device_ops wilc_netdev_ops = {
...@@ -1411,6 +1413,7 @@ void wilc_netdev_cleanup(struct wilc *wilc) ...@@ -1411,6 +1413,7 @@ void wilc_netdev_cleanup(struct wilc *wilc)
wilc_debugfs_remove(); wilc_debugfs_remove();
#endif #endif
} }
EXPORT_SYMBOL_GPL(wilc_netdev_cleanup);
int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type, int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
int gpio, const struct wilc_hif_func *ops) int gpio, const struct wilc_hif_func *ops)
...@@ -1487,3 +1490,4 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type, ...@@ -1487,3 +1490,4 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(wilc_netdev_init);
...@@ -27,7 +27,9 @@ static struct dentry *wilc_dir; ...@@ -27,7 +27,9 @@ static struct dentry *wilc_dir;
#define DBG_REGION_ALL (GENERIC_DBG | HOSTAPD_DBG | HOSTINF_DBG | CORECONFIG_DBG | CFG80211_DBG | INT_DBG | TX_DBG | RX_DBG | LOCK_DBG | INIT_DBG | BUS_DBG | MEM_DBG) #define DBG_REGION_ALL (GENERIC_DBG | HOSTAPD_DBG | HOSTINF_DBG | CORECONFIG_DBG | CFG80211_DBG | INT_DBG | TX_DBG | RX_DBG | LOCK_DBG | INIT_DBG | BUS_DBG | MEM_DBG)
#define DBG_LEVEL_ALL (DEBUG | INFO | WRN | ERR) #define DBG_LEVEL_ALL (DEBUG | INFO | WRN | ERR)
atomic_t WILC_REGION = ATOMIC_INIT(INIT_DBG | GENERIC_DBG | CFG80211_DBG | FIRM_DBG | HOSTAPD_DBG); atomic_t WILC_REGION = ATOMIC_INIT(INIT_DBG | GENERIC_DBG | CFG80211_DBG | FIRM_DBG | HOSTAPD_DBG);
EXPORT_SYMBOL_GPL(WILC_REGION);
atomic_t WILC_DEBUG_LEVEL = ATOMIC_INIT(ERR); atomic_t WILC_DEBUG_LEVEL = ATOMIC_INIT(ERR);
EXPORT_SYMBOL_GPL(WILC_DEBUG_LEVEL);
/* /*
* -------------------------------------------------------------------------------- * --------------------------------------------------------------------------------
......
...@@ -1181,6 +1181,7 @@ void wilc_handle_isr(void *wilc) ...@@ -1181,6 +1181,7 @@ void wilc_handle_isr(void *wilc)
} }
release_bus(RELEASE_ALLOW_SLEEP); release_bus(RELEASE_ALLOW_SLEEP);
} }
EXPORT_SYMBOL_GPL(wilc_handle_isr);
int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size) int wilc_wlan_firmware_download(const u8 *buffer, u32 buffer_size)
{ {
......
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