Loading drivers/mmc/core/core.c +6 −0 Original line number Diff line number Diff line Loading @@ -3593,6 +3593,7 @@ EXPORT_SYMBOL(mmc_cache_ctrl); int mmc_suspend_host(struct mmc_host *host) { int err = 0; ktime_t start = ktime_get(); if (mmc_bus_needs_resume(host)) return 0; Loading Loading @@ -3653,6 +3654,8 @@ int mmc_suspend_host(struct mmc_host *host) if (!err && !mmc_card_keep_power(host)) mmc_power_off(host); trace_mmc_suspend_host(mmc_hostname(host), err, ktime_to_us(ktime_sub(ktime_get(), start))); return err; out: if (!(host->card && mmc_card_sdio(host->card))) Loading @@ -3670,6 +3673,7 @@ EXPORT_SYMBOL(mmc_suspend_host); int mmc_resume_host(struct mmc_host *host) { int err = 0; ktime_t start = ktime_get(); mmc_bus_get(host); if (mmc_bus_manual_resume(host)) { Loading Loading @@ -3707,6 +3711,8 @@ int mmc_resume_host(struct mmc_host *host) host->pm_flags &= ~MMC_PM_KEEP_POWER; mmc_bus_put(host); trace_mmc_resume_host(mmc_hostname(host), err, ktime_to_us(ktime_sub(ktime_get(), start))); return err; } EXPORT_SYMBOL(mmc_resume_host); Loading include/trace/events/mmc.h +33 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,39 @@ TRACE_EVENT(mmc_clk, ) ); DECLARE_EVENT_CLASS(mmc_pm_template, TP_PROTO(const char *dev_name, int err, s64 usecs), TP_ARGS(dev_name, err, usecs), TP_STRUCT__entry( __field(s64, usecs) __field(int, err) __string(dev_name, dev_name) ), TP_fast_assign( __entry->usecs = usecs; __entry->err = err; __assign_str(dev_name, dev_name); ), TP_printk( "took %lld usecs, %s err %d", __entry->usecs, __get_str(dev_name), __entry->err ) ); DEFINE_EVENT(mmc_pm_template, mmc_suspend_host, TP_PROTO(const char *dev_name, int err, s64 usecs), TP_ARGS(dev_name, err, usecs)); DEFINE_EVENT(mmc_pm_template, mmc_resume_host, TP_PROTO(const char *dev_name, int err, s64 usecs), TP_ARGS(dev_name, err, usecs)); #endif /* if !defined(_TRACE_MMC_H) || defined(TRACE_HEADER_MULTI_READ) */ /* This part must be outside protection */ Loading Loading
drivers/mmc/core/core.c +6 −0 Original line number Diff line number Diff line Loading @@ -3593,6 +3593,7 @@ EXPORT_SYMBOL(mmc_cache_ctrl); int mmc_suspend_host(struct mmc_host *host) { int err = 0; ktime_t start = ktime_get(); if (mmc_bus_needs_resume(host)) return 0; Loading Loading @@ -3653,6 +3654,8 @@ int mmc_suspend_host(struct mmc_host *host) if (!err && !mmc_card_keep_power(host)) mmc_power_off(host); trace_mmc_suspend_host(mmc_hostname(host), err, ktime_to_us(ktime_sub(ktime_get(), start))); return err; out: if (!(host->card && mmc_card_sdio(host->card))) Loading @@ -3670,6 +3673,7 @@ EXPORT_SYMBOL(mmc_suspend_host); int mmc_resume_host(struct mmc_host *host) { int err = 0; ktime_t start = ktime_get(); mmc_bus_get(host); if (mmc_bus_manual_resume(host)) { Loading Loading @@ -3707,6 +3711,8 @@ int mmc_resume_host(struct mmc_host *host) host->pm_flags &= ~MMC_PM_KEEP_POWER; mmc_bus_put(host); trace_mmc_resume_host(mmc_hostname(host), err, ktime_to_us(ktime_sub(ktime_get(), start))); return err; } EXPORT_SYMBOL(mmc_resume_host); Loading
include/trace/events/mmc.h +33 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,39 @@ TRACE_EVENT(mmc_clk, ) ); DECLARE_EVENT_CLASS(mmc_pm_template, TP_PROTO(const char *dev_name, int err, s64 usecs), TP_ARGS(dev_name, err, usecs), TP_STRUCT__entry( __field(s64, usecs) __field(int, err) __string(dev_name, dev_name) ), TP_fast_assign( __entry->usecs = usecs; __entry->err = err; __assign_str(dev_name, dev_name); ), TP_printk( "took %lld usecs, %s err %d", __entry->usecs, __get_str(dev_name), __entry->err ) ); DEFINE_EVENT(mmc_pm_template, mmc_suspend_host, TP_PROTO(const char *dev_name, int err, s64 usecs), TP_ARGS(dev_name, err, usecs)); DEFINE_EVENT(mmc_pm_template, mmc_resume_host, TP_PROTO(const char *dev_name, int err, s64 usecs), TP_ARGS(dev_name, err, usecs)); #endif /* if !defined(_TRACE_MMC_H) || defined(TRACE_HEADER_MULTI_READ) */ /* This part must be outside protection */ Loading