Thread (2 messages) 2 messages, 2 authors, 2021-04-12

Re: [PATCH v5 08/24] wfx: add bus_sdio.c

From: Kalle Valo <hidden>
Date: 2021-04-07 12:00:51
Also in: linux-mmc, linux-wireless, lkml, netdev

Ulf Hansson [off-list ref] writes:
quoted
If I follow what has been done in other drivers I would write something
like:

  static int wfx_sdio_suspend(struct device *dev)
  {
          struct sdio_func *func = dev_to_sdio_func(dev);
          struct wfx_sdio_priv *bus = sdio_get_drvdata(func);

          config_reg_write_bits(bus->core, CFG_IRQ_ENABLE_DATA, 0);
          // Necessary to keep device firmware in RAM
          return sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
This will tell the mmc/sdio core to keep the SDIO card powered on
during system suspend. Thus, it doesn't need to re-initialize it at
system resume - and the firmware should not need to be re-programmed.

On the other hand, if you don't plan to support system wakeups, it
would probably be better to power off the card, to avoid wasting
energy while the system is suspended. I assume that means you need to
re-program the firmware as well. Normally, it's these kinds of things
that need to be managed from a ->resume() callback.
Many mac80211 drivers do so that the device is powered off during
interface down (ifconfig wlan0 down), and as mac80211 does interface
down automatically during suspend, suspend then works without extra
handlers.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help