Thread (38 messages) flat view 38 messages, 6 authors, 2021-03-23

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

From: Ulf Hansson <hidden>
Date: 2021-03-23 14:13:37
Also in: linux-devicetree, linux-mmc, linux-wireless, lkml

On Mon, 22 Mar 2021 at 18:14, Jérôme Pouiller
[off-list ref] wrote:
Hello Ulf,

On Monday 22 March 2021 13:20:35 CET Ulf Hansson wrote:
quoted
On Mon, 15 Mar 2021 at 14:25, Jerome Pouiller
[off-list ref] wrote:
quoted
From: Jérôme Pouiller <jerome.pouiller@silabs.com>

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
---
 drivers/net/wireless/silabs/wfx/bus_sdio.c | 259 +++++++++++++++++++++
 1 file changed, 259 insertions(+)
 create mode 100644 drivers/net/wireless/silabs/wfx/bus_sdio.c
[...]
quoted
+static const struct sdio_device_id wfx_sdio_ids[] = {
+       { SDIO_DEVICE(SDIO_VENDOR_ID_SILABS, SDIO_DEVICE_ID_SILABS_WF200) },
+       { },
+};
+MODULE_DEVICE_TABLE(sdio, wfx_sdio_ids);
+
+struct sdio_driver wfx_sdio_driver = {
+       .name = "wfx-sdio",
+       .id_table = wfx_sdio_ids,
+       .probe = wfx_sdio_probe,
+       .remove = wfx_sdio_remove,
+       .drv = {
+               .owner = THIS_MODULE,
+               .of_match_table = wfx_sdio_of_match,
It's not mandatory to support power management, like system
suspend/resume. However, as this looks like this is a driver for an
embedded SDIO device, you probably want this.

If that is the case, please assign the dev_pm_ops here and implement
the ->suspend|resume() callbacks.
I have no platform to test suspend/resume, so I have only a
theoretical understanding of this subject.
I see.
I understanding is that with the current implementation, the
device will be powered off on suspend and then totally reset
(including reloading of the firmware) on resume. I am wrong?
You are correct, for a *removable* SDIO card. In this case, the
mmc/sdio core will remove the corresponding SDIO card/device and its
corresponding SDIO func devices at system suspend. It will then be
redetected at system resume (and the SDIO func driver re-probed).

Although, as this is an embedded SDIO device, per definition it's not
a removable card (MMC_CAP_NONREMOVABLE should be set for the
corresponding mmc host), the SDIO card will stick around and instead
the ->suspend|resume() callback needs to be implemented for the SDIO
func driver.
This behavior sounds correct to me. You would expect something
more?
Yes, see above.

Kind regards
Uffe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help