Messages in this thread | | | Subject | Re: [PATCH v11 5/9] drivers: thermal: tsens: Fix bug in sensor enable for msm8960 | From | Marc Gonzalez <> | Date | Mon, 22 Mar 2021 11:47:29 +0100 |
| |
On 19/03/2021 01:52, Ansuel Smith wrote:
> Device based on tsens VER_0 contains a hardware bug that results in some > problem with sensor enablement. Sensor id 6-11 can't be enabled > selectively and all of them must be enabled in one step. > > Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> > --- > drivers/thermal/qcom/tsens-8960.c | 24 +++++++++++++++++++++--- > 1 file changed, 21 insertions(+), 3 deletions(-) > > diff --git a/drivers/thermal/qcom/tsens-8960.c b/drivers/thermal/qcom/tsens-8960.c > index 86585f439985..bdc64d4188bf 100644 > --- a/drivers/thermal/qcom/tsens-8960.c > +++ b/drivers/thermal/qcom/tsens-8960.c > @@ -27,9 +27,9 @@ > #define EN BIT(0) > #define SW_RST BIT(1) > #define SENSOR0_EN BIT(3) > +#define MEASURE_PERIOD BIT(18) > #define SLP_CLK_ENA BIT(26) > #define SLP_CLK_ENA_8660 BIT(24) > -#define MEASURE_PERIOD 1 > #define SENSOR0_SHIFT 3 > > /* INT_STATUS_ADDR bitmasks */ > @@ -126,17 +126,35 @@ static int resume_8960(struct tsens_priv *priv) > static int enable_8960(struct tsens_priv *priv, int id) > { > int ret; > - u32 reg, mask; > + u32 reg, mask = BIT(id); > > ret = regmap_read(priv->tm_map, CNTL_ADDR, ®); > if (ret) > return ret; > > - mask = BIT(id + SENSOR0_SHIFT); > + /* HARDWARE BUG: > + * On platform with more than 6 sensors, all the remaining > + * sensors needs to be enabled all togheder or underfined
s/On platform/On platforms s/sensors needs/sensors need s/togheder/together s/underfined/undefined
Suggested fix up:
On platforms with more than 6 sensors, all remaining sensors must be enabled together, otherwise undefined results are expected.
Regards.
| |