Skip to content

RFC mmc: sdhci: Support maximum DMA latency request via PM QoS

Adrian Hunter linux-mmc linux-pm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest4 patches 12 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4PM / QoS: Add pm_qos_cancel_request_lazy() that doesn't sleepinclude/linux/pm_qos.h kernel/power/qos.c+22 -04 replies
2/4mmc: sdhci: Support maximum DMA latency request via PM QOSdrivers/mmc/host/sdhci.c drivers/mmc/host/sdhci.h+59 -00 replies
3/4mmc: sdhci-acpi: Fix device hang on Intel BayTraildrivers/mmc/host/sdhci-acpi.c+32 -00 replies
4/4mmc: sdhci-pci: Fix device hang on Intel BayTraildrivers/mmc/host/sdhci-pci.c+13 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 0/4] mmc: sdhci: Support maximum DMA latency request via PM QoS

Hi

Here are some patches to address an issue with SDHCI in Intel Baytrail. Intel Baytrail has been observed sometimes to hang if host controllers are using DMA while deep C-states are used. Workaround that by specifying a maximum DMA latency that will prevent deep C-states.

The first patch adds a new PM QOS function so that the SDHCI driver can do a "lazy" cancel of the QoS request from within its "finish" tasklet.

The second patch adds support to SDHCI for specifying a maximum DMA latency.

The third and fourth patches take that facility into use for Baytrail.

Ad hoc testing with Lenovo Thinkpad 10 showed a stress test could run for at least 24 hours with the patches, compared to less than an hour without.

These patches are on top of my driver strength patches which are on top of my re-tuning patches.

Adrian Hunter (4):
PM / QoS: Add pm_qos_cancel_request_lazy() that doesn't sleep
mmc: sdhci: Support maximum DMA latency request via PM QOS
mmc: sdhci-acpi: Fix device hang on Intel BayTrail
mmc: sdhci-pci: Fix device hang on Intel BayTrail

 drivers/mmc/host/sdhci-acpi.c | 32 ++++++++++++++++++++++++++
 drivers/mmc/host/sdhci-pci.c  | 13 +++++++++++
 drivers/mmc/host/sdhci.c      | 52 +++++++++++++++++++++++++++++++++++++++++++
 drivers/mmc/host/sdhci.h      |  7 ++++++
 include/linux/pm_qos.h        |  2 ++
 kernel/power/qos.c            | 20 +++++++++++++++++
 6 files changed, 126 insertions(+)

Regards
Adrian