On 15.03.2023 11:39, Stephan Gerhold wrote: > According to the msm-3.18 vendor kernel from Qualcomm [1], mdm9607 uses > a non-standard slope value of 3000 (instead of 3200) for all sensors. > Fill it properly similar to the 8939 code added recently. > > [1]: https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LE.UM.4.3.2.r1-04200-9x07/arch/arm/boot/dts/qcom/mdm9607.dtsi#L875 > FWIW there's a 4.9 release for 9607 https://git.codelinaro.org/clo/la/kernel/msm-3.18/-/blob/LE.UM.2.3.6.c5-03900-9x07/arch/arm/boot/dts/qcom/mdm9607.dtsi > Cc: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> > Fixes: a2149ab815fc ("thermal/drivers/qcom/tsens-v0_1: Add support for MDM9607") > Signed-off-by: Stephan Gerhold <stephan.gerhold@xxxxxxxxxxxxxxx> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> Konrad > Changes in v3: Drop now unused ops_v0_1 definition > Changes in v2: New patch > --- > drivers/thermal/qcom/tsens-v0_1.c | 24 +++++++++++++++++------- > 1 file changed, 17 insertions(+), 7 deletions(-) > > diff --git a/drivers/thermal/qcom/tsens-v0_1.c b/drivers/thermal/qcom/tsens-v0_1.c > index 106d26076e3f..1b454de3928d 100644 > --- a/drivers/thermal/qcom/tsens-v0_1.c > +++ b/drivers/thermal/qcom/tsens-v0_1.c > @@ -222,6 +222,16 @@ static int __init init_8939(struct tsens_priv *priv) { > return init_common(priv); > } > > +static int __init init_9607(struct tsens_priv *priv) > +{ > + int i; > + > + for (i = 0; i < priv->num_sensors; ++i) > + priv->sensor[i].slope = 3000; > + > + return init_common(priv); > +} > + > /* v0.1: 8916, 8939, 8974, 9607 */ > > static struct tsens_features tsens_v0_1_feat = { > @@ -271,12 +281,6 @@ static const struct reg_field tsens_v0_1_regfields[MAX_REGFIELDS] = { > [TRDY] = REG_FIELD(TM_TRDY_OFF, 0, 0), > }; > > -static const struct tsens_ops ops_v0_1 = { > - .init = init_common, > - .calibrate = tsens_calibrate_common, > - .get_temp = get_temp_common, > -}; > - > static const struct tsens_ops ops_8916 = { > .init = init_common, > .calibrate = calibrate_8916, > @@ -320,9 +324,15 @@ struct tsens_plat_data data_8974 = { > .fields = tsens_v0_1_regfields, > }; > > +static const struct tsens_ops ops_9607 = { > + .init = init_9607, > + .calibrate = tsens_calibrate_common, > + .get_temp = get_temp_common, > +}; > + > struct tsens_plat_data data_9607 = { > .num_sensors = 5, > - .ops = &ops_v0_1, > + .ops = &ops_9607, > .feat = &tsens_v0_1_feat, > .fields = tsens_v0_1_regfields, > };