07 Aug, 2020

1 commit

  • Pull thermal updates from Daniel Lezcano:

    - Add support to enable/disable the thermal zones resulting on core
    code and drivers cleanup (Andrzej Pietrasiewicz)

    - Add generic netlink support for userspace notifications: events,
    temperature and discovery commands (Daniel Lezcano)

    - Fix redundant initialization for a ret variable (Colin Ian King)

    - Remove the clock cooling code as it is used nowhere (Amit Kucheria)

    - Add the rcar_gen3_thermal's r8a774e1 support (Marian-Cristian
    Rotariu)

    - Replace all references to thermal.txt in the documentation to the
    corresponding yaml files (Amit Kucheria)

    - Add maintainer entry for the IPA (Lukasz Luba)

    - Add support for MSM8939 for the tsens (Shawn Guo)

    - Update power allocator and devfreq cooling to SPDX licensing (Lukasz
    Luba)

    - Add Cannon Lake Low Power PCH support (Sumeet Pawnikar)

    - Add tsensor support for V2 mediatek thermal system (Henry Yen)

    - Fix thermal zone lookup by ID for the core code (Thierry Reding)

    * tag 'thermal-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (40 commits)
    thermal: intel: intel_pch_thermal: Add Cannon Lake Low Power PCH support
    thermal: mediatek: Add tsensor support for V2 thermal system
    thermal: mediatek: Prepare to add support for other platforms
    thermal: Update power allocator and devfreq cooling to SPDX licensing
    MAINTAINERS: update entry to thermal governors file name prefixing
    thermal: core: Add thermal zone enable/disable notification
    thermal: qcom: tsens-v0_1: Add support for MSM8939
    dt-bindings: tsens: qcom: Document MSM8939 compatible
    thermal: core: Fix thermal zone lookup by ID
    thermal: int340x: processor_thermal: fix: update Jasper Lake PCI id
    thermal: imx8mm: Support module autoloading
    thermal: ti-soc-thermal: Fix reversed condition in ti_thermal_expose_sensor()
    MAINTAINERS: Add maintenance information for IPA
    thermal: rcar_gen3_thermal: Do not shadow thcode variable
    dt-bindings: thermal: Get rid of thermal.txt and replace references
    thermal: core: Move initialization after core initcall
    thermal: netlink: Improve the initcall ordering
    net: genetlink: Move initialization to core_initcall
    thermal: rcar_gen3_thermal: Add r8a774e1 support
    thermal/drivers/clock_cooling: Remove clock_cooling code
    ...

    Linus Torvalds
     

31 Jul, 2020

2 commits

  • This patch adds full support for ver 2 thermal system (e.g., MT7622 SoC).
    The new changes include reading calibration data, converting temperature
    and hardware initialization which are specific for version 2 system.
    Each platform decides which function to call according to its version.

    Fixes: 3966be3c08c3 ("thermal: mediatek: add support for MT7622 SoC")
    Signed-off-by: Henry Yen
    Reviewed-by: Matthias Brugger
    Tested-By: Frank Wunderlich
    Signed-off-by: Daniel Lezcano
    Link: https://lore.kernel.org/r/1588238074-19338-3-git-send-email-henry.yen@mediatek.com

    Henry Yen
     
  • It is known that Mediatek owns two thermal systems, which only differ
    in the way of reading calibration data and converting temperature.
    MT8173, MT8183, MT2701 and MT2712 belongs to version 1 thermal
    system, and MT7622 belongs to version 2.

    In order to handle both systems, the suffix _V1 is appended to the
    current code, and then the second patch will add _V2 functions with
    the same purpose but different implementation.

    Signed-off-by: Henry Yen
    Reviewed-by: Matthias Brugger
    Tested-By: Frank Wunderlich
    Signed-off-by: Daniel Lezcano
    Link: https://lore.kernel.org/r/1588238074-19338-2-git-send-email-henry.yen@mediatek.com

    Henry Yen
     

17 Jul, 2020

1 commit

  • …ermal/linux into master

    Pull thermal fixes from Daniel Lezcano:

    - Fix invalid index array access on int340x_thermal leading to a kernel
    panic (Bartosz Szczepanek)

    - Fix debug message level to prevent flooding on some platform (Alex
    Hung)

    - Fix invalid bank access by reverting "thermal: mediatek: fix register
    index error" (Enric Balletbo i Serra)

    * tag 'thermal-v5.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux:
    Revert "thermal: mediatek: fix register index error"
    thermal: int3403_thermal: Downgrade error message
    thermal/int340x_thermal: Prevent page fault on .set_mode() op

    Linus Torvalds
     

15 Jul, 2020

1 commit

  • This reverts commit eb9aecd90d1a39601e91cd08b90d5fee51d321a6

    The above patch is supposed to fix a register index error on mt2701. It
    is not clear if the problem solved is a hang or just an invalid value
    returned, my guess is the second. The patch introduces, though, a new
    hang on MT8173 device making them unusable. So, seems reasonable, revert
    the patch because introduces a worst issue.

    The reason I send a revert instead of trying to fix the issue for MT8173
    is because the information needed to fix the issue is in the datasheet
    and is not public. So I am not really able to fix it.

    Fixes the following bug when CONFIG_MTK_THERMAL is set on MT8173
    devices.

    [ 2.222488] Unable to handle kernel paging request at virtual address ffff8000125f5001
    [ 2.230421] Mem abort info:
    [ 2.233207] ESR = 0x96000021
    [ 2.236261] EC = 0x25: DABT (current EL), IL = 32 bits
    [ 2.241571] SET = 0, FnV = 0
    [ 2.244623] EA = 0, S1PTW = 0
    [ 2.247762] Data abort info:
    [ 2.250640] ISV = 0, ISS = 0x00000021
    [ 2.254473] CM = 0, WnR = 0
    [ 2.257544] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041850000
    [ 2.264251] [ffff8000125f5001] pgd=000000013ffff003, pud=000000013fffe003, pmd=000000013fff9003, pte=006800001100b707
    [ 2.274867] Internal error: Oops: 96000021 [#1] PREEMPT SMP
    [ 2.280432] Modules linked in:
    [ 2.283483] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.7.0-rc6+ #162
    [ 2.289914] Hardware name: Google Elm (DT)
    [ 2.294003] pstate: 20000005 (nzCv daif -PAN -UAO)
    [ 2.298792] pc : mtk_read_temp+0xb8/0x1c8
    [ 2.302793] lr : mtk_read_temp+0x7c/0x1c8
    [ 2.306794] sp : ffff80001003b930
    [ 2.310100] x29: ffff80001003b930 x28: 0000000000000000
    [ 2.315404] x27: 0000000000000002 x26: ffff0000f9550b10
    [ 2.320709] x25: ffff0000f9550a80 x24: 0000000000000090
    [ 2.326014] x23: ffff80001003ba24 x22: 00000000610344c0
    [ 2.331318] x21: 0000000000002710 x20: 00000000000001f4
    [ 2.336622] x19: 0000000000030d40 x18: ffff800011742ec0
    [ 2.341926] x17: 0000000000000001 x16: 0000000000000001
    [ 2.347230] x15: ffffffffffffffff x14: ffffff0000000000
    [ 2.352535] x13: ffffffffffffffff x12: 0000000000000028
    [ 2.357839] x11: 0000000000000003 x10: ffff800011295ec8
    [ 2.363143] x9 : 000000000000291b x8 : 0000000000000002
    [ 2.368447] x7 : 00000000000000a8 x6 : 0000000000000004
    [ 2.373751] x5 : 0000000000000000 x4 : ffff800011295cb0
    [ 2.379055] x3 : 0000000000000002 x2 : ffff8000125f5001
    [ 2.384359] x1 : 0000000000000001 x0 : ffff0000f9550a80
    [ 2.389665] Call trace:
    [ 2.392105] mtk_read_temp+0xb8/0x1c8
    [ 2.395760] of_thermal_get_temp+0x2c/0x40
    [ 2.399849] thermal_zone_get_temp+0x78/0x160
    [ 2.404198] thermal_zone_device_update.part.0+0x3c/0x1f8
    [ 2.409589] thermal_zone_device_update+0x34/0x48
    [ 2.414286] of_thermal_set_mode+0x58/0x88
    [ 2.418375] thermal_zone_of_sensor_register+0x1a8/0x1d8
    [ 2.423679] devm_thermal_zone_of_sensor_register+0x64/0xb0
    [ 2.429242] mtk_thermal_probe+0x690/0x7d0
    [ 2.433333] platform_drv_probe+0x5c/0xb0
    [ 2.437335] really_probe+0xe4/0x448
    [ 2.440901] driver_probe_device+0xe8/0x140
    [ 2.445077] device_driver_attach+0x7c/0x88
    [ 2.449252] __driver_attach+0xac/0x178
    [ 2.453082] bus_for_each_dev+0x78/0xc8
    [ 2.456909] driver_attach+0x2c/0x38
    [ 2.460476] bus_add_driver+0x14c/0x230
    [ 2.464304] driver_register+0x6c/0x128
    [ 2.468131] __platform_driver_register+0x50/0x60
    [ 2.472831] mtk_thermal_driver_init+0x24/0x30
    [ 2.477268] do_one_initcall+0x50/0x298
    [ 2.481098] kernel_init_freeable+0x1ec/0x264
    [ 2.485450] kernel_init+0x1c/0x110
    [ 2.488931] ret_from_fork+0x10/0x1c
    [ 2.492502] Code: f9401081 f9400402 b8a67821 8b010042 (b9400042)
    [ 2.498599] ---[ end trace e43e3105ed27dc99 ]---
    [ 2.503367] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
    [ 2.511020] SMP: stopping secondary CPUs
    [ 2.514941] Kernel Offset: disabled
    [ 2.518421] CPU features: 0x090002,25006005
    [ 2.522595] Memory Limit: none
    [ 2.525644] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--

    Cc: Michael Kao
    Fixes: eb9aecd90d1a ("thermal: mediatek: fix register index error")
    Signed-off-by: Enric Balletbo i Serra
    Reviewed-by: Matthias Brugger
    Signed-off-by: Daniel Lezcano
    Link: https://lore.kernel.org/r/20200707103412.1010823-1-enric.balletbo@collabora.com

    Enric Balletbo i Serra
     

29 Jun, 2020

1 commit


27 Jan, 2020

1 commit

  • Replace a comment starting with /** by simply /* to avoid having it
    interpreted as a kernel-doc comment. Describe missing function
    parameters where needed.

    Fixes up the following warnings when compiled with make W=1:

    linux.git/drivers/thermal/mtk_thermal.c:374: warning: cannot understand
    function prototype: 'const struct mtk_thermal_data mt8173_thermal_data =
    '
    linux.git/drivers/thermal/mtk_thermal.c:413: warning: cannot understand
    function prototype: 'const struct mtk_thermal_data mt2701_thermal_data =
    '
    linux.git/drivers/thermal/mtk_thermal.c:443: warning: cannot understand
    function prototype: 'const struct mtk_thermal_data mt2712_thermal_data =
    '
    linux.git/drivers/thermal/mtk_thermal.c:499: warning: cannot understand
    function prototype: 'const struct mtk_thermal_data mt8183_thermal_data =
    '
    linux.git/drivers/thermal/mtk_thermal.c:529: warning: Function parameter
    or member 'sensno' not described in 'raw_to_mcelsius'

    Signed-off-by: Amit Kucheria
    Reviewed-by: Viresh Kumar
    Signed-off-by: Daniel Lezcano
    Link: https://lore.kernel.org/r/ba10b886705879fd1b7d529fec50503d6696df20.1574242756.git.amit.kucheria@linaro.org

    Amit Kucheria
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 655 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

18 Mar, 2019

1 commit

  • The mtk_thermal struct contains a 'struct mtk_thermal_bank banks[];',
    but the allocation only allocates sizeof(struct mtk_thermal) bytes,
    which cause out of bound access with the ->banks[] member. Change it to
    a fixed size array instead.

    Signed-off-by: Pi-Hsun Shih
    Reviewed-by: Daniel Lezcano
    Signed-off-by: Zhang Rui

    Pi-Hsun Shih
     

21 Feb, 2019

1 commit


06 Feb, 2019

5 commits


07 May, 2018

2 commits


02 Jan, 2018

1 commit


31 Aug, 2017

3 commits


24 Apr, 2017

1 commit

  • If thermal bank with 4 sensors, thermal driver should read TEMP_MSR3.

    However, currently thermal driver would not read TEMP_MSR3 since mt8173
    thermal driver only use 3 sensors on each thermal bank at the same time,
    so this patch would not effect temperature.
    Only if mt mt8173 thermal driver use 4 sensors on any thermal bank, would
    read third sensor two times, and lose fourth sensor of vale.

    cc: stable@vger.kernel.org
    Fixes: b7cf0053738c ("thermal: Add Mediatek thermal driver for mt2701.")
    Reviewed-by: Matthias Brugger
    Signed-off-by: Dawei Chien
    Signed-off-by: Eduardo Valentin

    Dawei Chien
     

19 Feb, 2017

1 commit

  • Sparse throws following warnings:
    drivers/thermal/mtk_thermal.c:186:11: warning: symbol 'mt8173_bank_data' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:193:11: warning: symbol 'mt8173_msr' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:197:11: warning: symbol 'mt8173_adcpnp' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:201:11: warning: symbol 'mt8173_mux_values' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:204:11: warning: symbol 'mt2701_bank_data' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:208:11: warning: symbol 'mt2701_msr' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:212:11: warning: symbol 'mt2701_adcpnp' was not declared. Should it be static?
    drivers/thermal/mtk_thermal.c:216:11: warning: symbol 'mt2701_mux_values' was not declared. Should it be static?

    Make these variables as static to fix these warnings.

    Signed-off-by: Vivek Gautam
    Signed-off-by: Eduardo Valentin

    Vivek Gautam
     

27 Sep, 2016

2 commits


17 May, 2016

1 commit


21 Apr, 2016

1 commit


18 Feb, 2016

2 commits

  • Remove all checkpatch.pl --strict errors, checks, and warnings.

    Cc: Zhang Rui
    Cc: Matthias Brugger
    Cc: linux-pm@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-mediatek@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Eduardo Valentin

    Eduardo Valentin
     
  • This adds support for the Mediatek thermal controller found on MT8173
    and likely other SoCs.
    The controller is a bit special. It does not have its own ADC, instead
    it controls the on-SoC AUXADC via AHB bus accesses. For this reason
    we need the physical address of the AUXADC. Also it controls a mux
    using AHB bus accesses, so we need the APMIXEDSYS physical address aswell.

    Signed-off-by: Sascha Hauer
    Signed-off-by: Eduardo Valentin

    Sascha Hauer