Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] mmc: sunxi: Add runtime PM support
@ 2017-12-20 10:50 Maxime Ripard
  2017-12-20 10:50 ` [PATCH 1/2] mmc: sunxi: Reorder the headers Maxime Ripard
  2017-12-20 10:50 ` [PATCH 2/2] mmc: sunxi: Add runtime_pm support Maxime Ripard
  0 siblings, 2 replies; 5+ messages in thread
From: Maxime Ripard @ 2017-12-20 10:50 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Since it's introduction, our MMC controller has had its external clocks
running all the time.

While that was working great, the power usage and most importantly the EMI
that it generated was pretty bad.

Let's implement some runtime_pm hooks with an autosuspend to cut the
external clock when the MMC is not active.

I didn't get all the way to also shutdown the bus clocks since on some
older SoCs (before the A31), it also means that the controler will be reset
which has some quite important implications obviously. And I couldn't make
it work reliably at the moment. Anyway, it can always be implemented as a
second step if needed.

(Quite simple) benchmarks have shown no noticeable regressions since the
controller state is maintained.

Let me know what you think,
Maxime

Maxime Ripard (2):
  mmc: sunxi: Reorder the headers
  mmc: sunxi: Add runtime_pm support

 drivers/mmc/host/sunxi-mmc.c | 133 +++++++++++++++++++++---------------
 1 file changed, 80 insertions(+), 53 deletions(-)

base-commit: 4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323
-- 
git-series 0.9.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-01-04 19:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-20 10:50 [PATCH 0/2] mmc: sunxi: Add runtime PM support Maxime Ripard
2017-12-20 10:50 ` [PATCH 1/2] mmc: sunxi: Reorder the headers Maxime Ripard
2017-12-20 10:50 ` [PATCH 2/2] mmc: sunxi: Add runtime_pm support Maxime Ripard
2017-12-21 12:21   ` Ulf Hansson
2018-01-04 19:54     ` Maxime Ripard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox