thermal: intel: Allow processing of HWP interrupt
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Fri, 20 Aug 2021 02:40:05 +0000 (19:40 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 25 Aug 2021 18:09:37 +0000 (20:09 +0200)
Add a weak function to process HWP (Hardware P-states) notifications and
move updating HWP_STATUS MSR to this function.

This allows HWP interrupts to be processed by the intel_pstate driver in
HWP mode by overriding the implementation.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/thermal/intel/therm_throt.c
drivers/thermal/intel/thermal_interrupt.h

index 99abdc03c44cef1361cdd58e143835b67b848965..dab7e8fb1059856e141f11a99e88f28ef9debe3b 100644 (file)
@@ -569,13 +569,18 @@ static void notify_thresholds(__u64 msr_val)
                platform_thermal_notify(msr_val);
 }
 
+void __weak notify_hwp_interrupt(void)
+{
+       wrmsrl_safe(MSR_HWP_STATUS, 0);
+}
+
 /* Thermal transition interrupt handler */
 void intel_thermal_interrupt(void)
 {
        __u64 msr_val;
 
        if (static_cpu_has(X86_FEATURE_HWP))
-               wrmsrl_safe(MSR_HWP_STATUS, 0);
+               notify_hwp_interrupt();
 
        rdmsrl(MSR_IA32_THERM_STATUS, msr_val);
 
index 53f427bb58dcea9b0c51bc872e16b21b45040ee8..01e7bed2ffc7155a606839a293f90b9e0a5ebf4f 100644 (file)
@@ -12,4 +12,7 @@ extern int (*platform_thermal_notify)(__u64 msr_val);
  * callback has rate control */
 extern bool (*platform_thermal_package_rate_control)(void);
 
+/* Handle HWP interrupt */
+extern void notify_hwp_interrupt(void);
+
 #endif /* _INTEL_THERMAL_INTERRUPT_H */