Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ea4aad9 authored by Can Guo's avatar Can Guo Committed by Todd Kjos
Browse files

FROMGIT: scsi: ufs-qcom: Override devfreq parameters

Override devfreq parameters for power-performance trade-off.

Bug: 152781094
(cherry picked from 80b21006cd0e8661affd8e1bf1707c8d5099605e
https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git/log/?h=5.7/scsi-queue)
Link: https://lore.kernel.org/r/b6875729b6072134985c9113a820cf60a2af22e7.1585160616.git.asutoshd@codeaurora.org


Acked-by: default avatarAvri Altman <Avri.Altman@wdc.com>
Signed-off-by: default avatarAsutosh Das <asutoshd@codeaurora.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>

Change-Id: Id89c10f476ae28f1d8c56bbdba10e7e32c46e6ba
Signed-off-by: default avatarCan Guo <cang@codeaurora.org>
parent 02eb2102
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -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"
@@ -1706,6 +1707,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
 *
@@ -1727,6 +1751,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,
};

/**