19223d0dcSBorislav Petkov /* SPDX-License-Identifier: GPL-2.0 */ 29223d0dcSBorislav Petkov #ifndef _INTEL_THERMAL_INTERRUPT_H 39223d0dcSBorislav Petkov #define _INTEL_THERMAL_INTERRUPT_H 49223d0dcSBorislav Petkov 5*930d06bfSSrinivas Pandruvada #define CORE_LEVEL 0 6*930d06bfSSrinivas Pandruvada #define PACKAGE_LEVEL 1 7*930d06bfSSrinivas Pandruvada 89223d0dcSBorislav Petkov /* Interrupt Handler for package thermal thresholds */ 99223d0dcSBorislav Petkov extern int (*platform_thermal_package_notify)(__u64 msr_val); 109223d0dcSBorislav Petkov 119223d0dcSBorislav Petkov /* Interrupt Handler for core thermal thresholds */ 129223d0dcSBorislav Petkov extern int (*platform_thermal_notify)(__u64 msr_val); 139223d0dcSBorislav Petkov 149223d0dcSBorislav Petkov /* Callback support of rate control, return true, if 159223d0dcSBorislav Petkov * callback has rate control */ 169223d0dcSBorislav Petkov extern bool (*platform_thermal_package_rate_control)(void); 179223d0dcSBorislav Petkov 18950809cdSSrinivas Pandruvada /* Handle HWP interrupt */ 19950809cdSSrinivas Pandruvada extern void notify_hwp_interrupt(void); 20950809cdSSrinivas Pandruvada 21*930d06bfSSrinivas Pandruvada /* Common function to clear Package thermal status register */ 22*930d06bfSSrinivas Pandruvada extern void thermal_clear_package_intr_status(int level, u64 bit_mask); 23*930d06bfSSrinivas Pandruvada 249223d0dcSBorislav Petkov #endif /* _INTEL_THERMAL_INTERRUPT_H */ 25