On 27/03/15 13:15, Ulf Hansson wrote: > Currently those host drivers which have deployed runtime PM, deals with > the runtime PM reference counting entirely by themselves. > > Since host drivers don't know when the core will send the next request > through some of the host_ops callbacks, they need to handle runtime PM > get/put between each an every request. > > In quite many cases this has some negative effects, since it leads to a > high frequency of scheduled runtime PM suspend operations. That due to > the runtime PM reference count will normally reach zero in-between > every request. > > We can decrease that frequency, by enabling the core to deal with > runtime PM reference counting of the host device. Since the core often > knows that it will send a seqeunce of requests, it makes sense for it > to keep a runtime PM reference count during these periods. > > More exactly, let's increase the runtime PM reference count by invoking > pm_runtime_get_sync() from __mmc_claim_host(). Restore that action by > invoking pm_runtime_mark_last_busy() and pm_runtime_put_autosuspend() > in mmc_release_host(). In this way a runtime PM reference count will be > kept during the complete cycle of a claim -> release host. > > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> The downside is that it precludes the possibility of a host driver using runtime pm for very aggressive pm. However there is anyway MMC_CLKGATE for that, and otherwise all host drivers are either using autosuspend_delay or staying active while the card has power. So: Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html