From d915a46562a27808e90cf072e8382e60eb4f0f6c Mon Sep 17 00:00:00 2001 From: Naman Padhiar Date: Fri, 23 Jul 2021 09:47:58 +0530 Subject: [PATCH] icnss2: Add check for max thermal state Add check for maximum thermal state while setting current state. Change-Id: I4ade853d0cda1d8754486dc6dd8f53596fae7a9a Signed-off-by: Naman Padhiar --- drivers/soc/qcom/icnss2/main.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/soc/qcom/icnss2/main.c b/drivers/soc/qcom/icnss2/main.c index 2f70d96be573..9e75f1244d08 100644 --- a/drivers/soc/qcom/icnss2/main.c +++ b/drivers/soc/qcom/icnss2/main.c @@ -2257,17 +2257,23 @@ static int icnss_tcdev_set_cur_state(struct thermal_cooling_device *tcdev, if (!penv->ops || !penv->ops->set_therm_cdev_state) return 0; + if (thermal_state > icnss_tcdev->max_thermal_state) + return -EINVAL; + icnss_pr_vdbg("Cooling device set current state: %ld,for cdev id %d", thermal_state, icnss_tcdev->tcdev_id); mutex_lock(&penv->tcdev_lock); - icnss_tcdev->curr_thermal_state = thermal_state; ret = penv->ops->set_therm_cdev_state(dev, thermal_state, icnss_tcdev->tcdev_id); + if (!ret) + icnss_tcdev->curr_thermal_state = thermal_state; mutex_unlock(&penv->tcdev_lock); - if (ret) + if (ret) { icnss_pr_err("Setting Current Thermal State Failed: %d,for cdev id %d", ret, icnss_tcdev->tcdev_id); + return ret; + } return 0; }