971-rsi-move-rsi_sdio_reinit_device-out-of-CONFIG_PM.patch 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. From 39f1332c526cd9d6de59a72520e8334e54b62cda Mon Sep 17 00:00:00 2001
  2. From: Amitkumar Karwar <[email protected]>
  3. Date: Wed, 1 Nov 2017 17:42:44 +0530
  4. Subject: rsi: move rsi_sdio_reinit_device() out of CONFIG_PM
  5. This function is generic. It doesn't contain wowlan specific code.
  6. It should not be under CONFIG_PM. This patch resolves compilation
  7. errors observed when CONFIG_PM flag is disabled.
  8. Reported-by: kbuild test robot <[email protected]>
  9. Fixes: ef71ed0608c ("rsi: sdio: Add WOWLAN support for S5 shutdown state")
  10. Fixes: a24e35fcee0 ("rsi: sdio: Add WOWLAN support for S4 hibernate state")
  11. Fixes: e1ced6422a3 ("rsi: sdio: add WOWLAN support for S3 suspend state")
  12. Signed-off-by: Amitkumar Karwar <[email protected]>
  13. Signed-off-by: Kalle Valo <[email protected]>
  14. ---
  15. drivers/net/wireless/rsi/rsi_91x_sdio.c | 52 ++++++++++++++++-----------------
  16. drivers/net/wireless/rsi/rsi_sdio.h | 1 -
  17. 2 files changed, 26 insertions(+), 27 deletions(-)
  18. --- a/drivers/net/wireless/rsi/rsi_91x_sdio.c
  19. +++ b/drivers/net/wireless/rsi/rsi_91x_sdio.c
  20. @@ -871,6 +871,32 @@ fail:
  21. return status;
  22. }
  23. +static int rsi_sdio_reinit_device(struct rsi_hw *adapter)
  24. +{
  25. + struct rsi_91x_sdiodev *sdev = adapter->rsi_dev;
  26. + struct sdio_func *pfunction = sdev->pfunction;
  27. + int ii;
  28. +
  29. + for (ii = 0; ii < NUM_SOFT_QUEUES; ii++)
  30. + skb_queue_purge(&adapter->priv->tx_queue[ii]);
  31. +
  32. + /* Initialize device again */
  33. + sdio_claim_host(pfunction);
  34. +
  35. + sdio_release_irq(pfunction);
  36. + rsi_reset_card(pfunction);
  37. +
  38. + sdio_enable_func(pfunction);
  39. + rsi_setupcard(adapter);
  40. + rsi_init_sdio_slave_regs(adapter);
  41. + sdio_claim_irq(pfunction, rsi_handle_interrupt);
  42. + rsi_hal_device_init(adapter);
  43. +
  44. + sdio_release_host(pfunction);
  45. +
  46. + return 0;
  47. +}
  48. +
  49. static struct rsi_host_intf_ops sdio_host_intf_ops = {
  50. .write_pkt = rsi_sdio_host_intf_write_pkt,
  51. .read_pkt = rsi_sdio_host_intf_read_pkt,
  52. @@ -1281,32 +1307,6 @@ static void rsi_shutdown(struct device *
  53. rsi_dbg(INFO_ZONE, "***** RSI module shut down *****\n");
  54. }
  55. -int rsi_sdio_reinit_device(struct rsi_hw *adapter)
  56. -{
  57. - struct rsi_91x_sdiodev *sdev = adapter->rsi_dev;
  58. - struct sdio_func *pfunction = sdev->pfunction;
  59. - int ii;
  60. -
  61. - for (ii = 0; ii < NUM_SOFT_QUEUES; ii++)
  62. - skb_queue_purge(&adapter->priv->tx_queue[ii]);
  63. -
  64. - /* Initialize device again */
  65. - sdio_claim_host(pfunction);
  66. -
  67. - sdio_release_irq(pfunction);
  68. - rsi_reset_card(pfunction);
  69. -
  70. - sdio_enable_func(pfunction);
  71. - rsi_setupcard(adapter);
  72. - rsi_init_sdio_slave_regs(adapter);
  73. - sdio_claim_irq(pfunction, rsi_handle_interrupt);
  74. - rsi_hal_device_init(adapter);
  75. -
  76. - sdio_release_host(pfunction);
  77. -
  78. - return 0;
  79. -}
  80. -
  81. static int rsi_restore(struct device *dev)
  82. {
  83. struct sdio_func *pfunction = dev_to_sdio_func(dev);
  84. --- a/drivers/net/wireless/rsi/rsi_sdio.h
  85. +++ b/drivers/net/wireless/rsi/rsi_sdio.h
  86. @@ -131,5 +131,4 @@ int rsi_sdio_master_access_msword(struct
  87. void rsi_sdio_ack_intr(struct rsi_hw *adapter, u8 int_bit);
  88. int rsi_sdio_determine_event_timeout(struct rsi_hw *adapter);
  89. int rsi_sdio_check_buffer_status(struct rsi_hw *adapter, u8 q_num);
  90. -int rsi_sdio_reinit_device(struct rsi_hw *adapter);
  91. #endif