ANDROID: GKI: add restricted vendor hook for mmc

We need to add three restricted vendor hooks to implement mmc protection
and support sd card hs mode tuning.

If you are using a function that needs to sleep, then use the restricted
vendor hook.
- android_rvh_mmc_partition_status
- android_rvh_mmc_sd_cmdline_timing
- android_rvh_mmc_sd_dataline_timing

If you're using functions that don't sleep, then use vendor hooks.
- android_vh_mmc_update_partition_status
- android_vh_mmc_sd_update_cmdline_timing
- android_vh_mmc_sd_update_dataline_timing

Bug: 242645760
Change-Id: I880436e3159bec30d7d92c620b268ec350e97235
Signed-off-by: Wenchao Chen <wenchao.chen@unisoc.com>
This commit is contained in:
Wenchao Chen
2022-08-16 13:32:10 +08:00
committed by Todd Kjos
parent fc9630b3cb
commit e956d16bc2
4 changed files with 18 additions and 0 deletions

View File

@@ -405,6 +405,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_gpio_cd_irqt);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_update_partition_status);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_sd_update_cmdline_timing);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmc_sd_update_dataline_timing);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_partition_status);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_sd_cmdline_timing);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_mmc_sd_dataline_timing);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cfg80211_set_context);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cfg80211_get_context);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_id_remove);

View File

@@ -1769,6 +1769,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
}
trace_android_vh_mmc_update_partition_status(card);
trace_android_rvh_mmc_partition_status(card);
/*
* Enable power_off_notification byte in the ext_csd register

View File

@@ -1520,6 +1520,7 @@ retry:
mmc_set_clock(host, mmc_sd_get_max_clock(card));
trace_android_vh_mmc_sd_update_cmdline_timing(card, &err);
trace_android_rvh_mmc_sd_cmdline_timing(card, &err);
if (err)
goto free_card;
@@ -1536,6 +1537,7 @@ retry:
}
trace_android_vh_mmc_sd_update_dataline_timing(card, &err);
trace_android_rvh_mmc_sd_dataline_timing(card, &err);
if (err)
goto free_card;
}

View File

@@ -68,6 +68,18 @@ DECLARE_HOOK(android_vh_mmc_sd_update_dataline_timing,
TP_PROTO(struct mmc_card *card, int *err),
TP_ARGS(card, err));
DECLARE_RESTRICTED_HOOK(android_rvh_mmc_partition_status,
TP_PROTO(struct mmc_card *card),
TP_ARGS(card), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_mmc_sd_cmdline_timing,
TP_PROTO(struct mmc_card *card, int *err),
TP_ARGS(card, err), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_mmc_sd_dataline_timing,
TP_PROTO(struct mmc_card *card, int *err),
TP_ARGS(card, err), 1);
#endif /* _TRACE_HOOK_MMC_H */
/* This part must be outside protection */
#include <trace/define_trace.h>