Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7d37a4a1 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Greg Kroah-Hartman
Browse files

staging/wilc1000: pass hif operations through initialization



The wilc_hif_spi and wilc_hif_sdio structures are part of
the bus specific code, and the generic code should have no knowledge
of their addresses.

This changes the code to reference them only from the bus
specific initialization code, which we can then use to split
up the driver into separate modules.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c4d139cb
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1408,7 +1408,8 @@ void wilc_netdev_cleanup(struct wilc *wilc)
#endif
}

int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type, int gpio)
int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type,
		     int gpio, const struct wilc_hif_func *ops)
{
	int i;
	perInterface_wlan_t *nic;
@@ -1423,6 +1424,7 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type, int gp
	*wilc = wilc_dev;
	wilc_dev->io_type = io_type;
	wilc_dev->gpio = gpio;
	wilc_dev->ops = ops;

	register_inetaddr_notifier(&g_dev_notifier);

+2 −1
Original line number Diff line number Diff line
@@ -119,7 +119,8 @@ static int linux_sdio_probe(struct sdio_func *func, const struct sdio_device_id

	PRINT_D(INIT_DBG, "Initializing netdev\n");
	wilc_sdio_func = func;
	if (wilc_netdev_init(&wilc, &func->dev, HIF_SDIO, gpio)) {
	if (wilc_netdev_init(&wilc, &func->dev, HIF_SDIO, gpio,
			     &wilc_hif_sdio)) {
		PRINT_ER("Couldn't initialize netdev\n");
		return -1;
	}
+1 −1
Original line number Diff line number Diff line
@@ -404,7 +404,7 @@ static int __init init_wilc_spi_driver(void)

	wilc_debugfs_init();

	ret = wilc_netdev_init(&wilc, NULL, HIF_SPI, GPIO_NUM);
	ret = wilc_netdev_init(&wilc, NULL, HIF_SPI, GPIO_NUM, &wilc_hif_spi);
	if (ret) {
		wilc_debugfs_remove();
		return ret;
+17 −18
Original line number Diff line number Diff line
@@ -912,23 +912,22 @@ static int sdio_sync_ext(int nint /* how mant interrupts to enable. */)
 *
 ********************************************/

struct wilc_hif_func wilc_hif_sdio = {
	sdio_init,
	sdio_deinit,
	sdio_read_reg,
	sdio_write_reg,
	sdio_read,
	sdio_write,
	sdio_sync,
	sdio_clear_int,
	sdio_read_int,
	sdio_clear_int_ext,
	sdio_read_size,
	sdio_write,
	sdio_read,
	sdio_sync_ext,

	sdio_set_max_speed,
	sdio_set_default_speed,
const struct wilc_hif_func wilc_hif_sdio = {
	.hif_init = sdio_init,
	.hif_deinit = sdio_deinit,
	.hif_read_reg = sdio_read_reg,
	.hif_write_reg = sdio_write_reg,
	.hif_block_rx = sdio_read,
	.hif_block_tx = sdio_write,
	.hif_sync = sdio_sync,
	.hif_clear_int = sdio_clear_int,
	.hif_read_int = sdio_read_int,
	.hif_clear_int_ext = sdio_clear_int_ext,
	.hif_read_size = sdio_read_size,
	.hif_block_tx_ext = sdio_write,
	.hif_block_rx_ext = sdio_read,
	.hif_sync_ext = sdio_sync_ext,
	.hif_set_max_bus_speed = sdio_set_max_speed,
	.hif_set_default_bus_speed = sdio_set_default_speed,
};
+17 −17
Original line number Diff line number Diff line
@@ -1021,21 +1021,21 @@ static int wilc_spi_sync_ext(int nint /* how mant interrupts to enable. */)
 *      Global spi HIF function table
 *
 ********************************************/
struct wilc_hif_func wilc_hif_spi = {
	_wilc_spi_init,
	_wilc_spi_deinit,
	wilc_spi_read_reg,
	wilc_spi_write_reg,
	_wilc_spi_read,
	_wilc_spi_write,
	wilc_spi_sync,
	wilc_spi_clear_int,
	wilc_spi_read_int,
	wilc_spi_clear_int_ext,
	wilc_spi_read_size,
	_wilc_spi_write,
	_wilc_spi_read,
	wilc_spi_sync_ext,
	wilc_spi_max_bus_speed,
	wilc_spi_default_bus_speed,
const struct wilc_hif_func wilc_hif_spi = {
	.hif_init = _wilc_spi_init,
	.hif_deinit = _wilc_spi_deinit,
	.hif_read_reg = wilc_spi_read_reg,
	.hif_write_reg = wilc_spi_write_reg,
	.hif_block_rx = _wilc_spi_read,
	.hif_block_tx = _wilc_spi_write,
	.hif_sync = wilc_spi_sync,
	.hif_clear_int = wilc_spi_clear_int,
	.hif_read_int = wilc_spi_read_int,
	.hif_clear_int_ext = wilc_spi_clear_int_ext,
	.hif_read_size = wilc_spi_read_size,
	.hif_block_tx_ext = _wilc_spi_write,
	.hif_block_rx_ext = _wilc_spi_read,
	.hif_sync_ext = wilc_spi_sync_ext,
	.hif_set_max_bus_speed = wilc_spi_max_bus_speed,
	.hif_set_default_bus_speed = wilc_spi_default_bus_speed,
};
Loading