From 39f1332c526cd9d6de59a72520e8334e54b62cda Mon Sep 17 00:00:00 2001 From: Amitkumar Karwar Date: Wed, 1 Nov 2017 17:42:44 +0530 Subject: [PATCH] rsi: move rsi_sdio_reinit_device() out of CONFIG_PM This function is generic. It doesn't contain wowlan specific code. It should not be under CONFIG_PM. This patch resolves compilation errors observed when CONFIG_PM flag is disabled. Reported-by: kbuild test robot Fixes: ef71ed0608c ("rsi: sdio: Add WOWLAN support for S5 shutdown state") Fixes: a24e35fcee0 ("rsi: sdio: Add WOWLAN support for S4 hibernate state") Fixes: e1ced6422a3 ("rsi: sdio: add WOWLAN support for S3 suspend state") Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo --- drivers/net/wireless/rsi/rsi_91x_sdio.c | 52 ++++++++++++------------- drivers/net/wireless/rsi/rsi_sdio.h | 1 - 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/drivers/net/wireless/rsi/rsi_91x_sdio.c b/drivers/net/wireless/rsi/rsi_91x_sdio.c index 3288fb6888b9..b0cf41195051 100644 --- a/drivers/net/wireless/rsi/rsi_91x_sdio.c +++ b/drivers/net/wireless/rsi/rsi_91x_sdio.c @@ -871,6 +871,32 @@ fail: return status; } +static int rsi_sdio_reinit_device(struct rsi_hw *adapter) +{ + struct rsi_91x_sdiodev *sdev = adapter->rsi_dev; + struct sdio_func *pfunction = sdev->pfunction; + int ii; + + for (ii = 0; ii < NUM_SOFT_QUEUES; ii++) + skb_queue_purge(&adapter->priv->tx_queue[ii]); + + /* Initialize device again */ + sdio_claim_host(pfunction); + + sdio_release_irq(pfunction); + rsi_reset_card(pfunction); + + sdio_enable_func(pfunction); + rsi_setupcard(adapter); + rsi_init_sdio_slave_regs(adapter); + sdio_claim_irq(pfunction, rsi_handle_interrupt); + rsi_hal_device_init(adapter); + + sdio_release_host(pfunction); + + return 0; +} + static struct rsi_host_intf_ops sdio_host_intf_ops = { .write_pkt = rsi_sdio_host_intf_write_pkt, .read_pkt = rsi_sdio_host_intf_read_pkt, @@ -1281,32 +1307,6 @@ static void rsi_shutdown(struct device *dev) rsi_dbg(INFO_ZONE, "***** RSI module shut down *****\n"); } -int rsi_sdio_reinit_device(struct rsi_hw *adapter) -{ - struct rsi_91x_sdiodev *sdev = adapter->rsi_dev; - struct sdio_func *pfunction = sdev->pfunction; - int ii; - - for (ii = 0; ii < NUM_SOFT_QUEUES; ii++) - skb_queue_purge(&adapter->priv->tx_queue[ii]); - - /* Initialize device again */ - sdio_claim_host(pfunction); - - sdio_release_irq(pfunction); - rsi_reset_card(pfunction); - - sdio_enable_func(pfunction); - rsi_setupcard(adapter); - rsi_init_sdio_slave_regs(adapter); - sdio_claim_irq(pfunction, rsi_handle_interrupt); - rsi_hal_device_init(adapter); - - sdio_release_host(pfunction); - - return 0; -} - static int rsi_restore(struct device *dev) { struct sdio_func *pfunction = dev_to_sdio_func(dev); diff --git a/drivers/net/wireless/rsi/rsi_sdio.h b/drivers/net/wireless/rsi/rsi_sdio.h index 8fbf90eb7b42..49c549ba6682 100644 --- a/drivers/net/wireless/rsi/rsi_sdio.h +++ b/drivers/net/wireless/rsi/rsi_sdio.h @@ -131,5 +131,4 @@ int rsi_sdio_master_access_msword(struct rsi_hw *adapter, u16 ms_word); void rsi_sdio_ack_intr(struct rsi_hw *adapter, u8 int_bit); int rsi_sdio_determine_event_timeout(struct rsi_hw *adapter); int rsi_sdio_check_buffer_status(struct rsi_hw *adapter, u8 q_num); -int rsi_sdio_reinit_device(struct rsi_hw *adapter); #endif -- 2.30.2