Message ID | 20230101194034.831222-1-dmitry.baryshkov@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | thermal/drivers/tsens: specify nvmem cells in DT rather than parsing them manually | expand |
On 01/01/2023 21:40, Dmitry Baryshkov wrote: > Historically the tsens driver fetches the calibration data as a blob and > then parses the blob on its own. This results in semi-duplicated code > spreading over the platform-specific functions. > > This patch series changes tsens calibration code to per-value nvmem > cells rather than parsing the blob in the driver. For backwards > compatibility the old code is left in place for msm8916, msm8974 and > qcs404, the platforms which have in-tree DT files. For all other > affected platforms the old parsing code has been dropped as a part of > this series. Amit, Thara. This has been lingering for quite some time whout any attention from your side. Could you please review the patchseries? Thank you! > > The code was tested on msm8916 and qcs404 only. > > Note: the DTs changes depend on driver changes. Tsens driver will not > work if DT patches are merged, but the driver bits are not. As the > thermal sense is critical for device safety, I'kindly ask to have an > immutable branch with the driver changes that can be merged into the > msm-dts tree. > > Note2: > I still have included patches to drop legacy support for 8939 > (msm8939.dtsi is on the list, patch to convert it to the proposed > bindings is available at [1]) and 8976 (msm8976.dtsi and msm8956.dtsi, > which use single-blob bindings, have been accepted for 6.2, dropping old > bindings support depends on mutual consensuns of platform and thermal > code maintainers). Corresponding patches are the last ones in the > thermal part of the series, thus if they are declined, the reset of the > series still can be applied without any problems. > > [1] https://pastebin.ubuntu.com/p/rfkZgy767K/ > > Changes since v5: > - Reworked bindings to use patterns instead of enum, > - Changed the order of items in msm8974/apq8084 bindings. If there will > be any other platform using main & backup calibration values, it would > be easier to reuse msm8974 bindings by using 's[0-9]+_p[12](_backup)?' > patterns, rather than listing all the cases explicitly. > > Changes since v4: > - Changed DT bindings to use HW sensor ids rather than bare indices. > This follows the usage of hw_ids in thermal-sensors specifications > (and corresponds to the ID visible in debugfs). > Previously there was no correspondence, which resulted e.g. in usage > of s0_p1/s0_p2 for sensor 0, but s4_p1/s4_p2 for the sensor 5 on > the msm8916 platform). > - Reworked msm8939 code to ignore the sensor10. It is available only on > latest hw revision, it doesn't seem to be actually used and it also > wasn't covered by the old single-blob bindings because of the parsing > error. > - Fixed missing include reported by testing robot. > > Changes since v3: > - Added a patch to fix the tsens compatible string on msm8956 SoC, > - Fixed num-sensors and slope coefficients for the msm8939 SoC, > - Rewrote code supporting old bindings into the simple data-driven > parser common to all legacy platforms which made dropping support for > old bindings less demanding. > > Changes since v2: > - Made init_8956 static, as pointed out by the testing robot and by > AngeloGioacchino Del Regno. > > Changes since the RFC: > - Sorted out the msm8976/msm8956, custom slopes are used only for msm8956, > - Implemented proper support for msm8974/apq8084, > - Added tsens_calibrate_common() and ops_v0_1 which can be used in > common cases, > - Removed superfluous identity hw_ids > - Fixed calibration calculation in tsens_calibrate_nvmem() for > ONE_PT_CALIB case > > Dmitry Baryshkov (20): > dt-bindings: thermal: tsens: add msm8956 compat > dt-bindings: thermal: tsens: support per-sensor calibration cells > dt-bindings: thermal: tsens: add per-sensor cells for msm8974 > thermal/drivers/tsens: Drop unnecessary hw_ids > thermal/drivers/tsens: Drop msm8976-specific defines > thermal/drivers/tsens: Sort out msm8976 vs msm8956 data > thermal/drivers/tsens: fix slope values for msm8939 > thermal/drivers/tsens: limit num_sensors to 9 for msm8939 > thermal/drivers/tsens: Support using nvmem cells for calibration data > thermal/drivers/tsens: Support using nvmem cells for msm8974 > calibration > thermal/drivers/tsens: Rework legacy calibration data parsers > thermal/drivers/tsens: Drop single-cell code for mdm9607 > thermal/drivers/tsens: Drop single-cell code for msm8939 > thermal/drivers/tsens: Drop single-cell code for msm8976/msm8956 > arm64: dts: qcom: msm8956: use SoC-specific compat for tsens > arm64: dts: qcom: msm8916: specify per-sensor calibration cells > arm64: dts: qcom: msm8976: specify per-sensor calibration cells > arm64: dts: qcom: qcs404: specify per-sensor calibration cells > ARM: dts: qcom-msm8974: specify per-sensor calibration cells > ARM: dts: qcom-apq8084: specify per-sensor calibration cells > > .../bindings/thermal/qcom-tsens.yaml | 153 +++- > arch/arm/boot/dts/qcom-apq8084.dtsi | 313 ++++++++- > arch/arm/boot/dts/qcom-msm8974.dtsi | 313 ++++++++- > arch/arm64/boot/dts/qcom/msm8916.dtsi | 85 ++- > arch/arm64/boot/dts/qcom/msm8956.dtsi | 4 + > arch/arm64/boot/dts/qcom/msm8976.dtsi | 153 +++- > arch/arm64/boot/dts/qcom/qcs404.dtsi | 145 +++- > drivers/thermal/qcom/tsens-v0_1.c | 655 +++++------------- > drivers/thermal/qcom/tsens-v1.c | 340 +++------ > drivers/thermal/qcom/tsens.c | 168 +++++ > drivers/thermal/qcom/tsens.h | 46 +- > 11 files changed, 1610 insertions(+), 765 deletions(-) >
On 13/01/2023 07:29, Dmitry Baryshkov wrote: > On 01/01/2023 21:40, Dmitry Baryshkov wrote: >> Historically the tsens driver fetches the calibration data as a blob and >> then parses the blob on its own. This results in semi-duplicated code >> spreading over the platform-specific functions. >> >> This patch series changes tsens calibration code to per-value nvmem >> cells rather than parsing the blob in the driver. For backwards >> compatibility the old code is left in place for msm8916, msm8974 and >> qcs404, the platforms which have in-tree DT files. For all other >> affected platforms the old parsing code has been dropped as a part of >> this series. > > Amit, Thara. This has been lingering for quite some time whout any > attention from your side. Could you please review the patchseries? Thank > you! I think this series has been long enough on the mailing list. I've applied patches 1 -> 14 Thanks
On Sun, 1 Jan 2023 21:40:14 +0200, Dmitry Baryshkov wrote: > Historically the tsens driver fetches the calibration data as a blob and > then parses the blob on its own. This results in semi-duplicated code > spreading over the platform-specific functions. > > This patch series changes tsens calibration code to per-value nvmem > cells rather than parsing the blob in the driver. For backwards > compatibility the old code is left in place for msm8916, msm8974 and > qcs404, the platforms which have in-tree DT files. For all other > affected platforms the old parsing code has been dropped as a part of > this series. > > [...] Applied, thanks! [19/20] ARM: dts: qcom-msm8974: specify per-sensor calibration cells commit: e108a3858e7dc7192f34b0b9fe2afc90d452407b [20/20] ARM: dts: qcom-apq8084: specify per-sensor calibration cells commit: 1283b2e61a7a2064e71f50f3f0821d6e56ced920 Best regards,