diff options
author | Asutosh Das <asutoshd@codeaurora.org> | 2020-03-25 21:29:02 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2020-03-27 05:18:14 +0300 |
commit | 80b21006cd0e8661affd8e1bf1707c8d5099605e (patch) | |
tree | 18129d5a11f46cd43725fa3b3f49f798755e7359 /drivers/scsi/ufs/ufs-qcom.c | |
parent | 2c75f9a5be53501a6e733cd72c1c46281eaa49a0 (diff) | |
download | linux-80b21006cd0e8661affd8e1bf1707c8d5099605e.tar.xz |
scsi: ufs-qcom: Override devfreq parameters
Override devfreq parameters for power-performance trade-off.
Link: https://lore.kernel.org/r/b6875729b6072134985c9113a820cf60a2af22e7.1585160616.git.asutoshd@codeaurora.org
Acked-by: Avri Altman <Avri.Altman@wdc.com>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/ufs/ufs-qcom.c')
-rw-r--r-- | drivers/scsi/ufs/ufs-qcom.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index 6115ac62d46c..19aa5c44e0da 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -10,6 +10,7 @@ #include <linux/phy/phy.h> #include <linux/gpio/consumer.h> #include <linux/reset-controller.h> +#include <linux/devfreq.h> #include "ufshcd.h" #include "ufshcd-pltfrm.h" @@ -1689,6 +1690,29 @@ static void ufs_qcom_device_reset(struct ufs_hba *hba) usleep_range(10, 15); } +#if IS_ENABLED(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND) +static void ufs_qcom_config_scaling_param(struct ufs_hba *hba, + struct devfreq_dev_profile *p, + void *data) +{ + static struct devfreq_simple_ondemand_data *d; + + if (!data) + return; + + d = (struct devfreq_simple_ondemand_data *)data; + p->polling_ms = 60; + d->upthreshold = 70; + d->downdifferential = 5; +} +#else +static void ufs_qcom_config_scaling_param(struct ufs_hba *hba, + struct devfreq_dev_profile *p, + void *data) +{ +} +#endif + /** * struct ufs_hba_qcom_vops - UFS QCOM specific variant operations * @@ -1710,6 +1734,7 @@ static const struct ufs_hba_variant_ops ufs_hba_qcom_vops = { .resume = ufs_qcom_resume, .dbg_register_dump = ufs_qcom_dump_dbg_regs, .device_reset = ufs_qcom_device_reset, + .config_scaling_param = ufs_qcom_config_scaling_param, }; /** |