advertisement

SDIO power on/off time impacts system suspend/resume time! - SFO17-213

advertisement
Information about SDIO power on/off time impacts system suspend/resume time! - SFO17-213

Published on September 24, 2017

Author: linaroorg

Source: slideshare.net

advertisement
Content

1. SDIO power on/off time impacts system suspend/resume time! Ulf Hansson, Linaro, PMWG

2. ENGINEERS AND DEVICES WORKING TOGETHER Agenda ● What is SDIO. ● PM methods and its common problems. ● What is the impact from SDIO? ● Can we fix it?

3. ENGINEERS AND DEVICES WORKING TOGETHER What is SDIO? Managed by the MMC subsystem: ● (e)MMC - JEDEC. ● SD/SDIO - SD Association.

4. ENGINEERS AND DEVICES WORKING TOGETHER SDIO chips ● Embedded combo chips for connectivity. ● WiFi. ● GPS. ● Bluetooth. ● Cameras. ● Etc. SDIO Controller SDIO CARD (WiFi) CLK CMD DAT[3:0 ]

5. ENGINEERS AND DEVICES WORKING TOGETHER MMC pwrseq ● SDIO cards are discoverable. ● Embedded SDIO devices requires specific power on/off sequences. ● /drivers/mmc/core/pwrseq* ● Documentation/devicetree/bindings/mmc/mmc-pwrseq* ● Introduced in v4.0. ● Enables more SDIO devices to be supported!

6. ENGINEERS AND DEVICES WORKING TOGETHER PM methods for devices ● Runtime PM - fine grained. ○ At request inactivity. ● System PM (system sleep) - system wide. ○ Auto/opportunistic sleep. ○ User presses the power button. ○ Different low power state: S2I, S2R, S2D. ● Combine them to get the best result! ● MMC core supports both. ○ PM support for SDIO is outdated and fragile!

7. ENGINEERS AND DEVICES WORKING TOGETHER Can I have a good night sleep!!?

8. ENGINEERS AND DEVICES WORKING TOGETHER The common problems ● Unnecessary power on of devices during system suspend and system resume. ● Wastes power! ● Takes time!

9. ENGINEERS AND DEVICES WORKING TOGETHER The SDIO behavior ● analyze_suspend.py - to get graphs, etc. ● SDIO suspend: ○ Power off: ~ 1-10 ms. ○ Keep power, configure wakeup: ~100-1000 us. ● SDIO resume: ○ Power on ~ 100-1000 ms. ○ Keep power, re-configure wakeup ~100-1000 us. ● Draining power when not used! How much? ● Problem already solved for SD and eMMC! ○ SDIO have wake-ups - more complexity!

10. ENGINEERS AND DEVICES WORKING TOGETHER SDIO WiFi chip Scenario 1: ● No WiFi driver or WiFi interface down. Scenario 2: ● WiFi interface up, not-connected. Scenario 3: ● WiFi interface up, connected, SDIO wakeup disabled/enabled. Scenario 4: ● WiFi interface up, connected, “out-of-band” wakeup disabled/enabled. Question: ● How is this related to Android’s WiFi configuration?

11. ENGINEERS AND DEVICES WORKING TOGETHER Can we use the RPM centric path? ● Optimize system sleep sequence for devices ○ Decrease system suspend/resume time of devices. ○ Avoid wasting power at system suspend/resume of devices. ● Easy deploy of system sleep support in drivers. ● Avoid open coding.

12. ENGINEERS AND DEVICES WORKING TOGETHER The runtime PM centric path - how? mydrv.c: static const struct dev_pm_ops mydrv_dev_pm_ops = { SET_RUNTIME_PM_OPS(mydrv_ runtime_suspend, mydrv_runtime_resume, NULL) SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) }; Yeah, we did it!? No, not this time!

13. ENGINEERS AND DEVICES WORKING TOGETHER PM overview of MMC core MMC CORE HOST DRIVER MMC BLOCK DEVICE DRIVER SDIO FUNC DRIVER (WIFI) SDIO BUSMMC BUS EMMC DEVICE SD DEVICE SDIO DEVICE SDIO FUNC DEVICE parent HOST BUS HOST DEVICE

14. ENGINEERS AND DEVICES WORKING TOGETHER The way forward Goal: ● Don’t waste power! ● Decrease system suspend/resume time. ● Make it easy to adopt MMC hosts and SDIO func drivers. Solution (overview): ● Modernize and re-factor SDIO wakeup support. ● Modernize and re-factor runtime PM support for SDIO. ● Enable system sleep code for SDIO to collaborate with runtime PM deployment. ● Postpone power on of SDIO devices to runtime PM, thus until the device are really needed!

15. ENGINEERS AND DEVICES WORKING TOGETHER For discussion ● WiFi chip low power states. ● Aggressive PM - turn off card in-between network scans? ● Out-of-band IRQ vs SDIO IRQ. ● Out of tree drivers and other vendor hacks. ● Reference platform(s) and implementation.

16. Thank You! #SFO17 SFO17 keynotes and videos on: connect.linaro.org For further information: www.linaro.org Ulf Hansson, Linaro, PMWG

#sfo17 presentations

LMG Lightning Talks - SFO17-205
11. 10. 2017
0 views

LMG Lightning Talks - SFO17-205

Related presentations


Other presentations created by linaroorg

Q4.11: Roadmap Overview
20. 03. 2014
0 views

Q4.11: Roadmap Overview

Q2.12: PIN Control Overview
20. 03. 2014
0 views

Q2.12: PIN Control Overview

Q2.12: Debugging with GDB
20. 03. 2014
0 views

Q2.12: Debugging with GDB

Q2.12: Using Conflict For Good
20. 03. 2014
0 views

Q2.12: Using Conflict For Good

Q2.12: Benchmarking Techniques
20. 03. 2014
0 views

Q2.12: Benchmarking Techniques

Q2.12: The Future of ARM Linux
20. 03. 2014
0 views

Q2.12: The Future of ARM Linux

Q2.12: Scheduler Inputs
20. 03. 2014
0 views

Q2.12: Scheduler Inputs

Q1.12: Phase III Plenary Session
20. 03. 2014
0 views

Q1.12: Phase III Plenary Session

Lca14 14-501- glibc-eglibc
23. 03. 2014
0 views

Lca14 14-501- glibc-eglibc

Upstreaming 1013
24. 03. 2014
0 views

Upstreaming 1013

Trusted firmware deep_dive_v1.0_
24. 03. 2014
0 views

Trusted firmware deep_dive_v1.0_

LCU13: Toolchain Review
24. 03. 2014
0 views

LCU13: Toolchain Review

LCU13: Networking Summit Keynote
24. 03. 2014
0 views

LCU13: Networking Summit Keynote

LCU13: George Grey Keynote LCU13
24. 03. 2014
0 views

LCU13: George Grey Keynote LCU13

LCU13: Clock bindings
24. 03. 2014
0 views

LCU13: Clock bindings

NFV: Empowering the Network
11. 09. 2014
0 views

NFV: Empowering the Network

LCU14 111- ODP Project Update
12. 09. 2014
0 views

LCU14 111- ODP Project Update

LCU14 113- Upstreaming 101
13. 09. 2014
0 views

LCU14 113- Upstreaming 101

LCU14 209- LLVM Linux
16. 09. 2014
0 views

LCU14 209- LLVM Linux

Lcu14 Lightning Talk- NGINX
29. 09. 2014
0 views

Lcu14 Lightning Talk- NGINX

Jim Zemlin  LCU14 Keynote
29. 09. 2014
0 views

Jim Zemlin LCU14 Keynote

LCU14 500 ARM Trusted Firmware
19. 09. 2014
0 views

LCU14 500 ARM Trusted Firmware

LCU14 310- Cisco ODP v2
18. 09. 2014
0 views

LCU14 310- Cisco ODP v2

NFV Linaro Connect Keynote
18. 09. 2014
0 views

NFV Linaro Connect Keynote

BUD17-TR04: Kernel Debug Stories
03. 03. 2017
0 views

BUD17-TR04: Kernel Debug Stories

BUD17-317: LAVA Migration - 2017
03. 03. 2017
0 views

BUD17-317: LAVA Migration - 2017

BUD17-116: Zephyr on Beetle
03. 03. 2017
0 views

BUD17-116: Zephyr on Beetle

LAVA Users Forum - SFO17-107
18. 09. 2017
0 views

LAVA Users Forum - SFO17-107

UHD and HDR - SFO17-101
15. 09. 2017
0 views

UHD and HDR - SFO17-101

Secure96 - SFO17-111
18. 09. 2017
0 views

Secure96 - SFO17-111

LMG Lightning Talks - SFO17-205
11. 10. 2017
0 views

LMG Lightning Talks - SFO17-205