diff --git a/drivers/soc/rockchip/Kconfig b/drivers/soc/rockchip/Kconfig index b0a19085b4fa..2daaf0a1828d 100644 --- a/drivers/soc/rockchip/Kconfig +++ b/drivers/soc/rockchip/Kconfig @@ -41,7 +41,7 @@ config ROCKCHIP_HW_DECOMPRESS LZ4, GZIP, ZLIB. config ROCKCHIP_IPA - bool "Rockchip IPA support" + tristate "Rockchip IPA support" depends on THERMAL && OF default y help diff --git a/drivers/soc/rockchip/rockchip_ipa.c b/drivers/soc/rockchip/rockchip_ipa.c index 59f0cb74b13c..bcc39692bfcd 100644 --- a/drivers/soc/rockchip/rockchip_ipa.c +++ b/drivers/soc/rockchip/rockchip_ipa.c @@ -4,12 +4,16 @@ */ #include #include +#include #include #include #include #include #include +#define CREATE_TRACE_POINTS +#include + #define FALLBACK_STATIC_TEMPERATURE 55000 static void calculate_static_coefficient(struct ipa_power_model_data *data) @@ -205,14 +209,18 @@ rockchip_ipa_get_static_power(struct ipa_power_model_data *data, power_big = (u64)static_power * (u64)volt_scaling_factor; static_power = div_u64(power_big, 1000000); - trace_thermal_power_get_static_power(data->leakage, - data->static_coefficient, - temp, - temp_scaling_factor, - (u32)voltage_mv, - volt_scaling_factor, - static_power); + trace_thermal_ipa_get_static_power(data->leakage, + data->static_coefficient, + temp, + temp_scaling_factor, + (u32)voltage_mv, + volt_scaling_factor, + static_power); return static_power; } EXPORT_SYMBOL(rockchip_ipa_get_static_power); + +MODULE_DESCRIPTION("Rockchip IPA driver"); +MODULE_AUTHOR("Finley Xiao "); +MODULE_LICENSE("GPL"); diff --git a/include/soc/rockchip/rockchip_ipa.h b/include/soc/rockchip/rockchip_ipa.h index e3605bb2a448..cb333f463c7b 100644 --- a/include/soc/rockchip/rockchip_ipa.h +++ b/include/soc/rockchip/rockchip_ipa.h @@ -16,7 +16,7 @@ struct ipa_power_model_data { s32 ls[3]; /* leakage scaling factor */ }; -#ifdef CONFIG_ROCKCHIP_IPA +#if IS_ENABLED(CONFIG_ROCKCHIP_IPA) struct ipa_power_model_data *rockchip_ipa_power_model_init(struct device *dev, char *lkg_name); unsigned long diff --git a/include/trace/events/thermal.h b/include/trace/events/thermal.h index 07b5aa9fcc29..78946640fe03 100644 --- a/include/trace/events/thermal.h +++ b/include/trace/events/thermal.h @@ -91,41 +91,6 @@ TRACE_EVENT(thermal_zone_trip, show_tzt_type(__entry->trip_type)) ); -#ifdef CONFIG_ROCKCHIP_IPA -TRACE_EVENT(thermal_power_get_static_power, - TP_PROTO(u32 leakage, u32 coefficient, s32 temp, - u32 temp_scaling_factor, u32 volt, u32 volt_scaling_factor, - u32 static_power), - - TP_ARGS(leakage, coefficient, temp, temp_scaling_factor, volt, - volt_scaling_factor, static_power), - - TP_STRUCT__entry( - __field(u32, leakage) - __field(u32, coefficient) - __field(s32, temp) - __field(u32, temp_scaling_factor) - __field(u32, volt) - __field(u32, volt_scaling_factor) - __field(u32, static_power) - ), - - TP_fast_assign( - __entry->leakage = leakage; - __entry->coefficient = coefficient; - __entry->temp = temp; - __entry->temp_scaling_factor = temp_scaling_factor; - __entry->volt = volt; - __entry->volt_scaling_factor = volt_scaling_factor; - __entry->static_power = static_power; - ), - TP_printk("lkg=%u c=%u t=%d ts=%u v=%u vs=%u static_power=%u", - __entry->leakage, __entry->coefficient, __entry->temp, - __entry->temp_scaling_factor, __entry->volt, - __entry->volt_scaling_factor, __entry->static_power) -); -#endif /* CONFIG_ROCKCHIP_IPA */ - #ifdef CONFIG_CPU_THERMAL TRACE_EVENT(thermal_power_cpu_get_power, TP_PROTO(const struct cpumask *cpus, unsigned long freq, u32 *load, diff --git a/include/trace/events/thermal_ipa_power.h b/include/trace/events/thermal_ipa_power.h new file mode 100644 index 000000000000..a3a932c75d6a --- /dev/null +++ b/include/trace/events/thermal_ipa_power.h @@ -0,0 +1,47 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM thermal_ipa_power + +#if !defined(_TRACE_THERMAL_IPA_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_THERMAL_IPA_POWER_H + +#include + +TRACE_EVENT(thermal_ipa_get_static_power, + TP_PROTO(u32 leakage, u32 coefficient, s32 temp, + u32 temp_scaling_factor, u32 volt, u32 volt_scaling_factor, + u32 static_power), + + TP_ARGS(leakage, coefficient, temp, temp_scaling_factor, volt, + volt_scaling_factor, static_power), + + TP_STRUCT__entry( + __field(u32, leakage) + __field(u32, coefficient) + __field(s32, temp) + __field(u32, temp_scaling_factor) + __field(u32, volt) + __field(u32, volt_scaling_factor) + __field(u32, static_power) + ), + + TP_fast_assign( + __entry->leakage = leakage; + __entry->coefficient = coefficient; + __entry->temp = temp; + __entry->temp_scaling_factor = temp_scaling_factor; + __entry->volt = volt; + __entry->volt_scaling_factor = volt_scaling_factor; + __entry->static_power = static_power; + ), + TP_printk("lkg=%u c=%u t=%d ts=%u v=%u vs=%u static_power=%u", + __entry->leakage, __entry->coefficient, __entry->temp, + __entry->temp_scaling_factor, __entry->volt, + __entry->volt_scaling_factor, __entry->static_power) +); + + +#endif /* _TRACE_THERMAL_IPA_POWER_H */ + +/* This part must be outside protection */ +#include