This drops two #ifdefs (which is good because they are ugly) without
changing semantics. This also improves compile coverage because all the
code in the first #ifdef block is now compiled even for configurations
without CONFIG_PM (and then thrown away).
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
---
drivers/net/wireless/rsi/rsi_91x_sdio.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/rsi/rsi_91x_sdio.c b/drivers/net/wireless/rsi/rsi_91x_sdio.c
index 1e578533e473..c2b2d09b616f 100644
--- a/drivers/net/wireless/rsi/rsi_91x_sdio.c
+++ b/drivers/net/wireless/rsi/rsi_91x_sdio.c
@@ -1243,7 +1243,6 @@ static void rsi_disconnect(struct sdio_func *pfunction)
}
-#ifdef CONFIG_PM
static int rsi_set_sdio_pm_caps(struct rsi_hw *adapter)
{
struct rsi_91x_sdiodev *dev = adapter->rsi_dev;
@@ -1499,7 +1498,6 @@ static const struct dev_pm_ops rsi_pm_ops = {
.thaw = rsi_thaw,
.restore = rsi_restore,
};
-#endif
static const struct sdio_device_id rsi_dev_table[] = {
{ SDIO_DEVICE(SDIO_VENDOR_ID_RSI, SDIO_DEVICE_ID_RSI_9113) },
@@ -1512,12 +1510,10 @@ static struct sdio_driver rsi_driver = {
.probe = rsi_probe,
.remove = rsi_disconnect,
.id_table = rsi_dev_table,
-#ifdef CONFIG_PM
.drv = {
- .pm = &rsi_pm_ops,
- .shutdown = rsi_shutdown,
+ .pm = pm_ptr(&rsi_pm_ops),
+ .shutdown = pm_ptr(rsi_shutdown),
}
-#endif
};
module_sdio_driver(rsi_driver);
--
2.47.3
Hi Uwe,
kernel test robot noticed the following build errors:
[auto build test ERROR on 8f0b4cce4481fb22653697cced8d0d04027cb1e8]
url: https://github.com/intel-lab-lkp/linux/commits/Uwe-Kleine-K-nig/sdio-Provide-a-bustype-shutdown-function/20251217-191920
base: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
patch link: https://lore.kernel.org/r/f291cca2741f6ac994b2bde1fb9d21194fec4d3e.1765968841.git.ukleinek%40kernel.org
patch subject: [PATCH v1 2/4] wifi: rsi: sdio: Reduce use of #ifdef for CONFIG_PM
config: nios2-allmodconfig (https://download.01.org/0day-ci/archive/20251221/202512210032.6Skz9prt-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512210032.6Skz9prt-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512210032.6Skz9prt-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/net/wireless/rsi/rsi_91x_sdio.c: In function 'rsi_shutdown':
>> drivers/net/wireless/rsi/rsi_91x_sdio.c:1454:41: error: 'struct wiphy' has no member named 'wowlan_config'
1454 | if (hw && hw->wiphy && hw->wiphy->wowlan_config) {
| ^~
>> drivers/net/wireless/rsi/rsi_91x_sdio.c:1455:21: error: implicit declaration of function 'rsi_config_wowlan' [-Werror=implicit-function-declaration]
1455 | if (rsi_config_wowlan(adapter, hw->wiphy->wowlan_config))
| ^~~~~~~~~~~~~~~~~
drivers/net/wireless/rsi/rsi_91x_sdio.c:1455:57: error: 'struct wiphy' has no member named 'wowlan_config'
1455 | if (rsi_config_wowlan(adapter, hw->wiphy->wowlan_config))
| ^~
cc1: some warnings being treated as errors
vim +1454 drivers/net/wireless/rsi/rsi_91x_sdio.c
b6c8d06c8a6465 Karun Eagalapati 2017-10-27 1444
063848c3e1558e Karun Eagalapati 2017-10-27 1445 static void rsi_shutdown(struct device *dev)
063848c3e1558e Karun Eagalapati 2017-10-27 1446 {
063848c3e1558e Karun Eagalapati 2017-10-27 1447 struct sdio_func *pfunction = dev_to_sdio_func(dev);
063848c3e1558e Karun Eagalapati 2017-10-27 1448 struct rsi_hw *adapter = sdio_get_drvdata(pfunction);
f9bf6e729f4ebc Wu Yunchuan 2023-08-03 1449 struct rsi_91x_sdiodev *sdev = adapter->rsi_dev;
063848c3e1558e Karun Eagalapati 2017-10-27 1450 struct ieee80211_hw *hw = adapter->hw;
063848c3e1558e Karun Eagalapati 2017-10-27 1451
063848c3e1558e Karun Eagalapati 2017-10-27 1452 rsi_dbg(ERR_ZONE, "SDIO Bus shutdown =====>\n");
063848c3e1558e Karun Eagalapati 2017-10-27 1453
b241e260820b68 Marek Vasut 2023-05-28 @1454 if (hw && hw->wiphy && hw->wiphy->wowlan_config) {
b241e260820b68 Marek Vasut 2023-05-28 @1455 if (rsi_config_wowlan(adapter, hw->wiphy->wowlan_config))
063848c3e1558e Karun Eagalapati 2017-10-27 1456 rsi_dbg(ERR_ZONE, "Failed to configure WoWLAN\n");
16bbc3eb83728c Martin Kepplinger 2020-01-29 1457 }
063848c3e1558e Karun Eagalapati 2017-10-27 1458
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1459 if (IS_ENABLED(CONFIG_RSI_COEX) && adapter->priv->coex_mode > 1 &&
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1460 adapter->priv->bt_adapter) {
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1461 rsi_bt_ops.detach(adapter->priv->bt_adapter);
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1462 adapter->priv->bt_adapter = NULL;
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1463 }
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1464
063848c3e1558e Karun Eagalapati 2017-10-27 1465 rsi_sdio_disable_interrupts(sdev->pfunction);
063848c3e1558e Karun Eagalapati 2017-10-27 1466
063848c3e1558e Karun Eagalapati 2017-10-27 1467 if (sdev->write_fail)
063848c3e1558e Karun Eagalapati 2017-10-27 1468 rsi_dbg(INFO_ZONE, "###### Device is not ready #######\n");
063848c3e1558e Karun Eagalapati 2017-10-27 1469
063848c3e1558e Karun Eagalapati 2017-10-27 1470 rsi_dbg(INFO_ZONE, "***** RSI module shut down *****\n");
063848c3e1558e Karun Eagalapati 2017-10-27 1471 }
063848c3e1558e Karun Eagalapati 2017-10-27 1472
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi Uwe,
kernel test robot noticed the following build errors:
[auto build test ERROR on 8f0b4cce4481fb22653697cced8d0d04027cb1e8]
url: https://github.com/intel-lab-lkp/linux/commits/Uwe-Kleine-K-nig/sdio-Provide-a-bustype-shutdown-function/20251217-191920
base: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
patch link: https://lore.kernel.org/r/f291cca2741f6ac994b2bde1fb9d21194fec4d3e.1765968841.git.ukleinek%40kernel.org
patch subject: [PATCH v1 2/4] wifi: rsi: sdio: Reduce use of #ifdef for CONFIG_PM
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20251221/202512210133.jrzKgXWS-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512210133.jrzKgXWS-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512210133.jrzKgXWS-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/wireless/rsi/rsi_91x_sdio.c:1454:36: error: no member named 'wowlan_config' in 'struct wiphy'
1454 | if (hw && hw->wiphy && hw->wiphy->wowlan_config) {
| ~~~~~~~~~ ^
>> drivers/net/wireless/rsi/rsi_91x_sdio.c:1455:7: error: call to undeclared function 'rsi_config_wowlan'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1455 | if (rsi_config_wowlan(adapter, hw->wiphy->wowlan_config))
| ^
drivers/net/wireless/rsi/rsi_91x_sdio.c:1455:45: error: no member named 'wowlan_config' in 'struct wiphy'
1455 | if (rsi_config_wowlan(adapter, hw->wiphy->wowlan_config))
| ~~~~~~~~~ ^
3 errors generated.
vim +1454 drivers/net/wireless/rsi/rsi_91x_sdio.c
b6c8d06c8a6465 Karun Eagalapati 2017-10-27 1444
063848c3e1558e Karun Eagalapati 2017-10-27 1445 static void rsi_shutdown(struct device *dev)
063848c3e1558e Karun Eagalapati 2017-10-27 1446 {
063848c3e1558e Karun Eagalapati 2017-10-27 1447 struct sdio_func *pfunction = dev_to_sdio_func(dev);
063848c3e1558e Karun Eagalapati 2017-10-27 1448 struct rsi_hw *adapter = sdio_get_drvdata(pfunction);
f9bf6e729f4ebc Wu Yunchuan 2023-08-03 1449 struct rsi_91x_sdiodev *sdev = adapter->rsi_dev;
063848c3e1558e Karun Eagalapati 2017-10-27 1450 struct ieee80211_hw *hw = adapter->hw;
063848c3e1558e Karun Eagalapati 2017-10-27 1451
063848c3e1558e Karun Eagalapati 2017-10-27 1452 rsi_dbg(ERR_ZONE, "SDIO Bus shutdown =====>\n");
063848c3e1558e Karun Eagalapati 2017-10-27 1453
b241e260820b68 Marek Vasut 2023-05-28 @1454 if (hw && hw->wiphy && hw->wiphy->wowlan_config) {
b241e260820b68 Marek Vasut 2023-05-28 @1455 if (rsi_config_wowlan(adapter, hw->wiphy->wowlan_config))
063848c3e1558e Karun Eagalapati 2017-10-27 1456 rsi_dbg(ERR_ZONE, "Failed to configure WoWLAN\n");
16bbc3eb83728c Martin Kepplinger 2020-01-29 1457 }
063848c3e1558e Karun Eagalapati 2017-10-27 1458
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1459 if (IS_ENABLED(CONFIG_RSI_COEX) && adapter->priv->coex_mode > 1 &&
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1460 adapter->priv->bt_adapter) {
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1461 rsi_bt_ops.detach(adapter->priv->bt_adapter);
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1462 adapter->priv->bt_adapter = NULL;
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1463 }
cbde979b33fa16 Siva Rebbagondla 2019-02-04 1464
063848c3e1558e Karun Eagalapati 2017-10-27 1465 rsi_sdio_disable_interrupts(sdev->pfunction);
063848c3e1558e Karun Eagalapati 2017-10-27 1466
063848c3e1558e Karun Eagalapati 2017-10-27 1467 if (sdev->write_fail)
063848c3e1558e Karun Eagalapati 2017-10-27 1468 rsi_dbg(INFO_ZONE, "###### Device is not ready #######\n");
063848c3e1558e Karun Eagalapati 2017-10-27 1469
063848c3e1558e Karun Eagalapati 2017-10-27 1470 rsi_dbg(INFO_ZONE, "***** RSI module shut down *****\n");
063848c3e1558e Karun Eagalapati 2017-10-27 1471 }
063848c3e1558e Karun Eagalapati 2017-10-27 1472
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
On Wed, 2025-12-17 at 12:09 +0100, Uwe Kleine-König wrote: > This drops two #ifdefs (which is good because they are ugly) without > changing semantics. This also improves compile coverage because all the > code in the first #ifdef block is now compiled even for configurations > without CONFIG_PM (and then thrown away). This didn't build, and given that we never got 1/4 I'm going to assume it wasn't destined to the wireless tree. johannes
On Mon, Dec 29, 2025 at 11:36:02AM +0100, Johannes Berg wrote: > On Wed, 2025-12-17 at 12:09 +0100, Uwe Kleine-König wrote: > > This drops two #ifdefs (which is good because they are ugly) without > > changing semantics. This also improves compile coverage because all the > > code in the first #ifdef block is now compiled even for configurations > > without CONFIG_PM (and then thrown away). > > This didn't build, and given that we never got 1/4 I'm going to assume > it wasn't destined to the wireless tree. Yes, this depends on patch #1, I expected the series to go in via whatever tree sdio usually goes in and didn't notice that all users are in the wireless subsystem. The kernel robot also found an issue[1] that needs addressing (probably by dropping patch #2 from the series). Will look into that next year. Best regards Uwe [1] https://lore.kernel.org/all/202512210032.6Skz9prt-lkp@intel.com/
© 2016 - 2026 Red Hat, Inc.