summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorAntti P Miettinen <amiettinen@nvidia.com>2013-09-30 13:14:58 +0300
committerRiham Haidar <rhaidar@nvidia.com>2014-03-06 12:32:18 -0800
commitc70ca35ead96722aab3a35e3b0d2bb0374f0c328 (patch)
treee8b534585129facc35b2c169fec8a981162b119f /drivers/usb
parenta2ea3c99283afec4c1187353ab99f980db9a2fb5 (diff)
usb: gadget: tegra: Add callback to boost_enable
Cancel PM QoS request upon enabled to disabled transition. Bug 1455140 Change-Id: Iaf28d2d0daca312996e2cb1a1280769d814fd066 Reviewed-on: http://git-master/r/280232 (cherry picked from commit 9a25a04c42ed0feeb1aff1dcf696b54e122a8c65) Signed-off-by: Louis Li <louli@nvidia.com> Reviewed-on: http://git-master/r/377857 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Yunfan Zhang <yunfanz@nvidia.com> Tested-by: Yunfan Zhang <yunfanz@nvidia.com> Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/tegra_udc.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/usb/gadget/tegra_udc.c b/drivers/usb/gadget/tegra_udc.c
index 52ec0d9c7e77..2cf2177e2403 100644
--- a/drivers/usb/gadget/tegra_udc.c
+++ b/drivers/usb/gadget/tegra_udc.c
@@ -106,7 +106,24 @@ static u32 ep_queue_request_count;
static u8 boost_cpufreq_work_flag, set_cpufreq_normal_flag;
static struct timer_list boost_timer;
static bool boost_enable = true;
-module_param(boost_enable, bool, 0644);
+static int boost_enable_set(const char *arg, const struct kernel_param *kp)
+{
+ bool old_boost = boost_enable;
+ int ret = param_set_bool(arg, kp);
+ if (ret == 0 && old_boost && !boost_enable)
+ pm_qos_update_request(&boost_cpu_freq_req,
+ PM_QOS_DEFAULT_VALUE);
+ return ret;
+}
+static int boost_enable_get(char *buffer, const struct kernel_param *kp)
+{
+ return param_get_bool(buffer, kp);
+}
+static struct kernel_param_ops boost_enable_ops = {
+ .set = boost_enable_set,
+ .get = boost_enable_get,
+};
+module_param_cb(boost_enable, &boost_enable_ops, &boost_enable, 0644);
#endif
static inline void udc_writel(struct tegra_udc *udc, u32 val, u32 offset)