Add hooks inside platform specific data which can be
used by Qualcomm tsens controller(s) which might need
reinitialization via trustzone.
Cc: Bjorn Andersson <andersson@kernel.org>
Cc: Amit Kucheria <amitk@kernel.org>
Cc: Thara Gopinath <thara.gopinath@gmail.com>
Cc: linux-pm@vger.kernel.org
Cc: linux-arm-msm@vger.kernel.org
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
---
drivers/thermal/qcom/tsens.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h
index ba05c8233356..92787017c6ab 100644
--- a/drivers/thermal/qcom/tsens.h
+++ b/drivers/thermal/qcom/tsens.h
@@ -513,6 +513,7 @@ struct tsens_features {
* @num_sensors: Number of sensors supported by platform
* @ops: operations the tsens instance supports
* @hw_ids: Subset of sensors ids supported by platform, if not the first n
+ * @needs_reinit_wa: tsens controller might need reinit via trustzone
* @feat: features of the IP
* @fields: bitfield locations
*/
@@ -520,6 +521,7 @@ struct tsens_plat_data {
const u32 num_sensors;
const struct tsens_ops *ops;
unsigned int *hw_ids;
+ bool needs_reinit_wa;
struct tsens_features *feat;
const struct reg_field *fields;
};
@@ -542,6 +544,7 @@ struct tsens_context {
* @srot_map: pointer to SROT register address space
* @tm_offset: deal with old device trees that don't address TM and SROT
* address space separately
+ * @needs_reinit_wa: tsens controller might need reinit via trustzone
* @ul_lock: lock while processing upper/lower threshold interrupts
* @crit_lock: lock while processing critical threshold interrupts
* @rf: array of regmap_fields used to store value of the field
@@ -559,6 +562,7 @@ struct tsens_priv {
struct regmap *tm_map;
struct regmap *srot_map;
u32 tm_offset;
+ bool needs_reinit_wa;
/* lock for upper/lower threshold interrupts */
spinlock_t ul_lock;
--
2.37.1
On Thu, Sep 01, 2022 at 04:24:12PM +0530, Bhupesh Sharma wrote:
> Add hooks inside platform specific data which can be
> used by Qualcomm tsens controller(s) which might need
> reinitialization via trustzone.
>
> Cc: Bjorn Andersson <andersson@kernel.org>
> Cc: Amit Kucheria <amitk@kernel.org>
> Cc: Thara Gopinath <thara.gopinath@gmail.com>
> Cc: linux-pm@vger.kernel.org
> Cc: linux-arm-msm@vger.kernel.org
> Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
> ---
> drivers/thermal/qcom/tsens.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h
> index ba05c8233356..92787017c6ab 100644
> --- a/drivers/thermal/qcom/tsens.h
> +++ b/drivers/thermal/qcom/tsens.h
> @@ -513,6 +513,7 @@ struct tsens_features {
> * @num_sensors: Number of sensors supported by platform
> * @ops: operations the tsens instance supports
> * @hw_ids: Subset of sensors ids supported by platform, if not the first n
> + * @needs_reinit_wa: tsens controller might need reinit via trustzone
What does "_wa" mean, and what value does it add?
needs_reinit captures the intent pretty well in my view.
Regards,
Bjorn
> * @feat: features of the IP
> * @fields: bitfield locations
> */
> @@ -520,6 +521,7 @@ struct tsens_plat_data {
> const u32 num_sensors;
> const struct tsens_ops *ops;
> unsigned int *hw_ids;
> + bool needs_reinit_wa;
> struct tsens_features *feat;
> const struct reg_field *fields;
> };
> @@ -542,6 +544,7 @@ struct tsens_context {
> * @srot_map: pointer to SROT register address space
> * @tm_offset: deal with old device trees that don't address TM and SROT
> * address space separately
> + * @needs_reinit_wa: tsens controller might need reinit via trustzone
> * @ul_lock: lock while processing upper/lower threshold interrupts
> * @crit_lock: lock while processing critical threshold interrupts
> * @rf: array of regmap_fields used to store value of the field
> @@ -559,6 +562,7 @@ struct tsens_priv {
> struct regmap *tm_map;
> struct regmap *srot_map;
> u32 tm_offset;
> + bool needs_reinit_wa;
>
> /* lock for upper/lower threshold interrupts */
> spinlock_t ul_lock;
> --
> 2.37.1
>
© 2016 - 2026 Red Hat, Inc.