mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
mmc: add a file to debugfs for changing host max clock at runtime
Usage is as follows: rk3566_rgo:/ # cat /sys/kernel/debug/mmc1/max_clock 150000000 rk3566_rgo:/ # echo 200000000 > /sys/kernel/debug/mmc1/max_clock rk3566_rgo:/ # cat /sys/kernel/debug/mmc1/max_clock 200000000 rk3566_rgo:/ # echo 200000000 > /sys/kernel/debug/mmc1/clock rk3566_rgo:/ # dmesg -c [ 285.884348] mmc_host mmc1: Bus speed (slot 0) = 198000000Hz (slot req 200000000Hz, actual 198000000HZ div = 0) Signed-off-by: Alex Zhao <zzc@rock-chips.com> Change-Id: I7ac9649b231c50b0c6c066407e28954e8c94510c
This commit is contained in:
parent
6f8089df70
commit
b59b1c0040
|
|
@ -225,6 +225,31 @@ static int mmc_clock_opt_set(void *data, u64 val)
|
|||
DEFINE_SIMPLE_ATTRIBUTE(mmc_clock_fops, mmc_clock_opt_get, mmc_clock_opt_set,
|
||||
"%llu\n");
|
||||
|
||||
static int mmc_max_clock_opt_get(void *data, u64 *val)
|
||||
{
|
||||
struct mmc_host *host = data;
|
||||
|
||||
*val = host->f_max;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mmc_max_clock_opt_set(void *data, u64 val)
|
||||
{
|
||||
struct mmc_host *host = data;
|
||||
|
||||
/* We need this check due to input value is u64 */
|
||||
if (val != 0 && (val > UHS_SDR104_MAX_DTR || val < host->f_min))
|
||||
return -EINVAL;
|
||||
|
||||
host->f_max = (unsigned int) val;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEFINE_DEBUGFS_ATTRIBUTE(mmc_max_clock_fops, mmc_max_clock_opt_get, mmc_max_clock_opt_set,
|
||||
"%llu\n");
|
||||
|
||||
void mmc_add_host_debugfs(struct mmc_host *host)
|
||||
{
|
||||
struct dentry *root;
|
||||
|
|
@ -253,6 +278,9 @@ void mmc_add_host_debugfs(struct mmc_host *host)
|
|||
&mmc_clock_fops))
|
||||
goto err_node;
|
||||
|
||||
debugfs_create_file_unsafe("max_clock", S_IRUSR | S_IWUSR, root, host,
|
||||
&mmc_max_clock_fops);
|
||||
|
||||
#ifdef CONFIG_FAIL_MMC_REQUEST
|
||||
if (fail_request)
|
||||
setup_fault_attr(&fail_default_attr, fail_request);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user