1. 15 Feb, 2023 2 commits
    • Rafael J. Wysocki's avatar
      Merge branch 'thermal-intel' · badf1f90
      Rafael J. Wysocki authored
      Merge thermal control changes related to Intel platforms for 6.3-rc1:
      
       - Rework ACPI helper functions for thermal control to retrieve a trip
         point temperature instead of initializing a trip point objetc (Rafael
         Wysocki).
      
       - Clean up and improve the int340x thermal driver ((Rafael Wysocki).
      
       - Simplify and clean up the intel_pch thermal driver ((Rafael Wysocki).
      
       - Fix the Intel powerclamp thermal driver and make it use the common
         idle injection framework (Srinivas Pandruvada).
      
       - Add two module parameters, cpumask and max_idle, to the Intel powerclamp
         thermal driver to allow it to affect only a specific subset of CPUs
         instead of all of them (Srinivas Pandruvada).
      
       - Make the Intel quark_dts thermal driver Use generic trip point
         objects instead of its own trip point representation (Daniel
         Lezcano).
      
       - Add toctree entry for thermal documents and fix two issues in the
         Intel powerclamp driver documentation (Bagas Sanjaya).
      
      * thermal-intel: (25 commits)
        Documentation: powerclamp: Fix numbered lists formatting
        Documentation: powerclamp: Escape wildcard in cpumask description
        Documentation: admin-guide: Add toctree entry for thermal docs
        thermal: intel: powerclamp: Add two module parameters
        Documentation: admin-guide: Move intel_powerclamp documentation
        thermal: intel: powerclamp: Fix duration module parameter
        thermal: intel: powerclamp: Return last requested state as cur_state
        thermal: intel: quark_dts: Use generic trip points
        thermal: intel: powerclamp: Use powercap idle-inject feature
        powercap: idle_inject: Add update callback
        powercap: idle_inject: Export symbols
        thermal: intel: powerclamp: Fix cur_state for multi package system
        thermal: intel: intel_pch: Drop struct board_info
        thermal: intel: intel_pch: Rename board ID symbols
        thermal: intel: intel_pch: Fold suspend and resume routines into their callers
        thermal: intel: intel_pch: Fold two functions into their callers
        thermal: intel: intel_pch: Eliminate device operations object
        thermal: intel: intel_pch: Rename device operations callbacks
        thermal: intel: intel_pch: Eliminate redundant return pointers
        thermal: intel: intel_pch: Make pch_wpt_add_acpi_psv_trip() return int
        ...
      badf1f90
    • Rafael J. Wysocki's avatar
      Merge branch 'thermal-core' · c3bd6d53
      Rafael J. Wysocki authored
      Merge thermal control core changes for 6.3-rc1:
      
       - Clean up thermal device unregistration code (Viresh Kumar).
      
       - Fix and clean up thermal control core initialization error code
         paths (Daniel Lezcano).
      
       - Relocate the trip points handling code into a separate file (Daniel
         Lezcano).
      
       - Make the thermal core fail registration of thermal zones and cooling
         devices if the thermal class has not been registered (Rafael Wysocki).
      
       - Make the core thermal control code use sysfs_emit_at() instead of
         scnprintf() where applicable (ye xingchen).
      
      * thermal-core:
        thermal: core: Use sysfs_emit_at() instead of scnprintf()
        thermal: Fail object registration if thermal class is not registered
        thermal/core: Move the thermal trip code to a dedicated file
        thermal/core: Remove unneeded ida_destroy()
        thermal/core: Fix unregistering netlink at thermal init time
        thermal: core: Use device_unregister() instead of device_del/put()
        thermal: core: Move cdev cleanup to thermal_release()
      c3bd6d53
  2. 13 Feb, 2023 3 commits
  3. 09 Feb, 2023 4 commits
  4. 07 Feb, 2023 1 commit
  5. 03 Feb, 2023 2 commits
    • Daniel Lezcano's avatar
      thermal: intel: quark_dts: Use generic trip points · 72ffc28f
      Daniel Lezcano authored
      Make the intel_quark_dts_thermal driver register an array of generic
      trip points along with the thermal zone and drop the trip points
      thermal zone callbacks that are not used any more from it.
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@kernel.org>
      [ rjw: Subject and changelog edits ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      72ffc28f
    • Srinivas Pandruvada's avatar
      thermal: intel: powerclamp: Use powercap idle-inject feature · 8526eb7f
      Srinivas Pandruvada authored
      There are two idle injection implementation in the Linux kernel. One
      via intel_powerclamp and the other using powercap/idle_inject. Both
      implementation end up in calling play_idle* function from a FIFO
      priority thread. Both can't be used at the same time.
      
      It is better to use one idle injection framework for better
      maintainability. In this way, there is only one caller for play_idle.
      
      Here powercap/idle_inject can be used for both per-core and for system
      wide idle injection. This framework has a well defined interface which
      allow registry for per-core or for all CPUs (system wide).
      
      This reduces code complexity in the intel powerclamp driver as all the
      per CPU kthreads, delayed work and calls to play_idle can be removed.
      
      The changes include:
       - Remove unneeded include files
       - Remove per CPU kthread workers: balancing_work and idle_injection_work.
       - Reuse the compensation related code by moving from previous worker
         thread to idle_injection callback.
       - Adjust the idle_duration and runtime by using powercap/idle_inject
         interface.
       - Remove all variables, which are not required once powercap/idle_inject
         is used.
       - Add mutex to avoid race during removal of idle injection during module
         unload and user action to change idle inject percent. Also for
         protection during dynamic adjustment of run and idle time from
         update() callback.
       - Remove online/offline callbacks to designate control CPU
       - Use cpu_present_mask global variable for CPU mask
       - Remove hot plug locks
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8526eb7f
  6. 02 Feb, 2023 16 commits
  7. 30 Jan, 2023 1 commit
    • Rafael J. Wysocki's avatar
      Merge branch 'thermal-intel' · f364beb5
      Rafael J. Wysocki authored
      Merge changes affecting thermal control on Intel platforms for 6.3-rc1:
      
       - Consolidate code accessing the Intel TCC (Thermal Control Circuitry)
         MSRs by introducing library functions for that and making the
         TCC-related code in thermal drivers use them (Zhang Rui).
      
       - Enhance the x86_pkg_temp_thermal driver to support dynamic tjmax
         changes (Zhang Rui).
      
       - Address an "unsigned expression compared with zero" warning in the
         intel_soc_dts_iosf thermal driver (Yang Li).
      
       - Update comments regarding two functions in the Intel Menlow thermal
         driver (Deming Wang).
      
       - Use sysfs_emit_at() instead of scnprintf() in the int340x thermal
         driver (ye xingchen).
      
       - Make the intel_pch thermal driver support the Wellsburg PCH (Tim
         Zimmermann).
      
       - Add trip point initialization helper functions for ACPI-defined trip
         points and modify two thermal drivers to use them (Rafael Wysocki,
         Daniel Lezcano).
      
       - Modify the intel_pch and processor_thermal_device_pci thermal drivers
         use generic trip point tables instead of thermal zone trip point
         callbacks (Daniel Lezcano).
      
       - Add production mode attribute sysfs attribute to the int340x thermal
         driver (Srinivas Pandruvada).
      
       - Rework dynamic trip point updates handling and locking in the int340x
         thermal driver (Rafael Wysocki).
      
       - Make the int340x thermal driver use a generic trip points table
         instead of thermal zone trip point callbacks (Rafael Wysocki, Daniel
         Lezcano).
      
      * thermal-intel:
        thermal: intel: int340x: Use generic trip points table
        thermal: intel: int340x: Use zone lock for synchronization
        thermal: intel: int340x: Rework updating trip points
        thermal: ACPI: Initialize trips if temperature is out of range
        thermal: intel: processor_thermal_device_pci: Use generic trip point
        thermal: intel: int340x: Add production mode attribute
        thermal: intel: intel_pch: Use generic trip points
        thermal: ACPI: Add ACPI trip point routines
        thermal: intel: intel_pch: Add support for Wellsburg PCH
        thermal: int340x_thermal: Use sysfs_emit_at() instead of scnprintf()
        thermal: intel: menlow: Update function descriptions
        thermal: intel: Fix unsigned comparison with less than zero
        thermal/x86_pkg_temp_thermal: Add support for handling dynamic tjmax
        thermal/x86_pkg_temp_thermal: Use Intel TCC library
        thermal/intel/intel_tcc_cooling: Use Intel TCC library
        thermal/intel/intel_soc_dts_iosf: Use Intel TCC library
        thermal/int340x/processor_thermal: Use Intel TCC library
        thermal/intel: Introduce Intel TCC library
      f364beb5
  8. 27 Jan, 2023 6 commits
  9. 26 Jan, 2023 3 commits
    • Rafael J. Wysocki's avatar
      Merge tag 'thermal-v6.3-rc1' of... · 02be6059
      Rafael J. Wysocki authored
      Merge tag 'thermal-v6.3-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux into thermal-next
      
      Pull thermal control material for 6.3-rc1 from Daniel Lezcano:
      
      "- Fix kerneldoc format errors for Rockchip, Mediatek and Uniphier
         (Randy Dunlap)
      
       - Add the missing 'qcom,adc-tm7' compatible string in the dt-bindings
         (Krzysztof Kozlowski)
      
       - Improve the calibration routine by relying on the nvmem to read the
         values and provide a set of fixes for the QCom tsens driver (Dmitry
         Baryshkov)
      
       - Remove the duplicate interrupt setting routine in the QCom tsens
         driver (Daniel Lezcano)
      
       - Fix a wrong loop condition in the i.MX SC thermal driver and add the
         iMX8QM sensors (Viorel Suman)
      
       - Fix header inclusion asm-generic.h by asm.h for the
         qcom-spmi-adc-tm5 driver (Andy Shevchenko)
      
       - Use the devm_platform_get_and_ioremap_resource() combo function in
         all the drivers where the conversion applies (Ye Xingchen)
      
       - Replace a literal mask by an existing corresponding macro (Yangtao
         Li)
      
       - Add support for MT7986 and MT7981 (Daniel Golle)
      
       - Use thermal_zone_get_crit_temp() for the Armada thermal driver
         (Daniel Lezcano)"
      
      * tag 'thermal-v6.3-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (35 commits)
        thermal/drivers/armada: Use the thermal_zone_get_crit_temp()
        thermal/drivers/mtk: Add support for MT7986 and MT7981
        thermal/drivers/mtk: Use function pointer for raw_to_mcelsius
        thermal/drivers/sun8i: Convert to use macro
        thermal/drivers/spear: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/kirkwood: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/thermal_mmio: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/rockchip: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/mtk_thermal: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/armada: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/dove: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/bcm2835: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/brcmstb_thermal: Use devm_platform_get_and_ioremap_resource()
        thermal/drivers/qcom-spmi-adc-tm5: Use asm intead of asm-generic
        thermal/drivers/imx_sc_thermal: Add iMX8QM sensors
        thermal/drivers/imx_sc_thermal: Fix the loop condition
        thermal/drivers/qcom: Remove duplicate set next trip point interrupt code
        thermal/drivers/tsens: Drop single-cell code for msm8976/msm8956
        thermal/drivers/tsens: Drop single-cell code for msm8939
        thermal/drivers/tsens: Drop single-cell code for mdm9607
        ...
      02be6059
    • Daniel Lezcano's avatar
      thermal: intel: processor_thermal_device_pci: Use generic trip point · e90eb1df
      Daniel Lezcano authored
      Make proc_thermal_pci_probe() register the TCPU_PCI thermal zone along
      with the trip point used by it and drop the zone callbacks related to
      this trip point that are not needed any more.
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      [ rjw: Subject and changelog edits ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e90eb1df
    • Srinivas Pandruvada's avatar
      thermal: intel: int340x: Add production mode attribute · 5c36cf27
      Srinivas Pandruvada authored
      It is possible that the system manufacturer locks down thermal tuning
      beyond what is usually done on the given platform. In that case user
      space calibration tools should not try to adjust the thermal
      configuration of the system.
      
      To allow user space to check if that is the case, add a new sysfs
      attribute "production_mode" that will be present when the ACPI DCFG
      method is present under the INT3400 device object in the ACPI Namespace.
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5c36cf27
  10. 25 Jan, 2023 2 commits