Compare commits

..

No commits in common. 'i10c-beta' and 'c9' have entirely different histories.

2
.gitignore vendored

@ -1 +1 @@
SOURCES/thermald-2.5.7.tar.gz SOURCES/thermald-2.5.3.tar.gz

@ -1 +1 @@
9f25aa76ef217902dcab53f225e7d6953da55e5f SOURCES/thermald-2.5.7.tar.gz 80b8e3f6d847979ef5f64e002e8ee10e3f7b1bec SOURCES/thermald-2.5.3.tar.gz

@ -1,846 +0,0 @@
From 2ffbdf7cabe94a79eab77ba3ddeb8fd0506a93f7 Mon Sep 17 00:00:00 2001
From: Kate Hsuan <hpa@redhat.com>
Date: Tue, 16 Apr 2024 16:53:17 +0800
Subject: [PATCH 1/4] main: remove deprecated API
g_type_init() was deprecated since Glib 2.36.
---
src/main.cpp | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/main.cpp b/src/main.cpp
index 34715cb8..135fa3ff 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -322,9 +322,6 @@ int main(int argc, char *argv[]) {
g_unix_signal_add (SIGTERM, G_SOURCE_FUNC (sig_int_handler), NULL);
}
- // Initialize the GType/GObject system
- g_type_init();
-
// Create a main loop that will dispatch callbacks
g_main_loop = g_main_loop_new(NULL, FALSE);
if (g_main_loop == NULL) {
From 4aeed1e59a2901d95aefe881673842b9785c8cfa Mon Sep 17 00:00:00 2001
From: Kate Hsuan <hpa@redhat.com>
Date: Tue, 16 Apr 2024 16:56:31 +0800
Subject: [PATCH 2/4] thd_engine_default: Drop modem support
Don't new a intel_modem object.
---
src/thd_engine_default.cpp | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/src/thd_engine_default.cpp b/src/thd_engine_default.cpp
index a81ecb39..330cc51d 100644
--- a/src/thd_engine_default.cpp
+++ b/src/thd_engine_default.cpp
@@ -48,9 +48,6 @@
#include "thd_sensor_rapl_power.h"
#include "thd_zone_rapl_power.h"
-#ifdef GLIB_SUPPORT
-#include "thd_cdev_modem.h"
-#endif
// Default CPU cooling devices, which are not part of thermal sysfs
// Since non trivial initialization is not supported, we init all fields even if they are not needed
@@ -622,18 +619,7 @@ int cthd_engine_default::add_replace_cdev(cooling_dev_t *config) {
}
if (!cdev_present) {
// create new
- if (config->type_string.compare("intel_modem") == 0) {
-#ifdef GLIB_SUPPORT
- /*
- * Add Modem as cdev
- * intel_modem is a modem identifier across all intel platforms.
- * The differences between the modems of various intel platforms
- * are to be taken care in the cdev implementation.
- */
- cdev = new cthd_cdev_modem(current_cdev_index, config->path_str);
-#endif
- } else
- cdev = new cthd_gen_sysfs_cdev(current_cdev_index, config->path_str);
+ cdev = new cthd_gen_sysfs_cdev(current_cdev_index, config->path_str);
if (!cdev)
return THD_ERROR;
cdev->set_cdev_type(config->type_string);
From 7fa7a2e0408d8efe570139c48c32afefc84480e9 Mon Sep 17 00:00:00 2001
From: Kate Hsuan <hpa@redhat.com>
Date: Tue, 16 Apr 2024 17:14:16 +0800
Subject: [PATCH 3/4] build: remove thd_cdev_modem and dbus-glib
thd_cdev_modem.cpp and .h were dropped. Moreover, dbus-glib was
dropped from the build scripts.
---
Makefile.am | 12 +-
configure.ac | 12 +-
src/thd_cdev_modem.cpp | 521 -----------------------------------------
src/thd_cdev_modem.h | 64 -----
src/thermald.h | 3 -
5 files changed, 3 insertions(+), 609 deletions(-)
delete mode 100644 src/thd_cdev_modem.cpp
delete mode 100644 src/thd_cdev_modem.h
diff --git a/Makefile.am b/Makefile.am
index dd2ef103..996388a3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,9 +5,9 @@ SUBDIRS = . docs data
ACLOCAL_AMFLAGS =
# Global C Flags
-AM_CFLAGS = ${DBUS_CFLAGS}
+AM_CFLAGS = ${GLIB_CFLAGS}
AM_CXXFLAGS = \
- ${DBUS_CFLAGS} \
+ $(GLIB_CFLAGS) \
$(XML_CFLAGS) \
$(UPOWER_CFLAGS) \
$(EVDEV_CFLAGS) \
@@ -30,7 +30,6 @@ thermald_CPPFLAGS = \
thermald_includedir = @top_srcdir@
thermald_LDADD = \
- $(DBUS_LIBS) \
$(GLIB_LIBS) \
$(LIBNL_LIBS) \
$(LIBM) \
@@ -39,9 +38,6 @@ thermald_LDADD = \
$(UPOWER_LIBS) \
$(EVDEV_LIBS)
-BUILT_SOURCES = \
- thd_dbus_interface.h \
- thermald-resource.c
thermald_SOURCES = \
src/main.cpp \
@@ -74,7 +70,6 @@ thermald_SOURCES = \
src/thd_cdev_rapl_dram.cpp \
src/thd_cpu_default_binding.cpp \
src/thd_cdev_backlight.cpp \
- src/thd_cdev_modem.cpp \
src/thd_int3400.cpp \
src/thd_cdev_kbl_amdgpu.cpp \
src/thd_sensor_kbl_amdgpu_power.cpp \
@@ -93,9 +88,6 @@ thermald_SOURCES = \
man5_MANS = man/thermal-conf.xml.5
man8_MANS = man/thermald.8
-thd_dbus_interface.h: $(top_srcdir)/src/thd_dbus_interface.xml
- $(AM_V_GEN) dbus-binding-tool --prefix=thd_dbus_interface --mode=glib-server --output=$@ $<
-
thermald-resource.c: $(top_srcdir)/thermald-resource.gresource.xml
$(AM_V_GEN) glib-compile-resources --generate-source thermald-resource.gresource.xml
diff --git a/configure.ac b/configure.ac
index 334f38fe..b72019e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -62,20 +62,10 @@ GETTEXT_PACKAGE=thermald
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package])
-dnl
-dnl Checks for new dbus-glib property access function
-dnl
-AC_CHECK_LIB([dbus-glib-1], [dbus_glib_global_set_disable_legacy_property_access], ac_have_dg_prop="1", ac_have_dg_prop="0")
-AC_DEFINE_UNQUOTED(HAVE_DBUS_GLIB_DISABLE_LEGACY_PROP_ACCESS, $ac_have_dg_prop, [Define if you have a dbus-glib with dbus_glib_global_set_disable_legacy_property_access()])
-
-PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1 dbus-glib-1 >= 0.94)
-AC_SUBST(DBUS_CFLAGS)
-AC_SUBST(DBUS_LIBS)
-
GLIB_VERSION_DEFINES="-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26"
DBUS_CFLAGS="$DBUS_CFLAGS $GLIB_VERSION_DEFINES"
-PKG_CHECK_MODULES(GLIB, gio-unix-2.0 >= 2.22 gmodule-2.0)
+PKG_CHECK_MODULES(GLIB, gio-unix-2.0 >= 2.22 gmodule-2.0 glib-2.0)
GLIB_CFLAGS="$GLIB_CFLAGS $GLIB_VERSION_DEFINES"
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
diff --git a/src/thd_cdev_modem.cpp b/src/thd_cdev_modem.cpp
deleted file mode 100644
index 6c3ff6cb..00000000
--- a/src/thd_cdev_modem.cpp
+++ /dev/null
@@ -1,521 +0,0 @@
-/*
- * thd_cdev_modem.cpp: thermal modem cooling implementation
- * Copyright (c) 2016, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License
- * version 2 or later as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- *
- * Author Name <Rajagopalx.Aravindan@intel.com>
- *
- */
-
-/*
- * Modem Throttling Levels:
- * 0 - Disabled or No Throttling
- * 1 - Enabled
- */
-
-#include <stdint.h>
-#include <dbus/dbus.h>
-#include <string.h>
-
-#include "thd_cdev_modem.h"
-
-int cthd_cdev_modem::parse_ofono_property_changed_signal(DBusMessage* msg,
- const char* interface, const char* signal, const char* property,
- dbus_bool_t* new_value) {
- DBusMessageIter iter;
- DBusMessageIter var;
-
- char *property_name;
-
- dbus_message_iter_init(msg, &iter);
-
- if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING) {
- thd_log_error("Invalid arguments in %s[%s]", interface, signal);
- return THD_ERROR;
- }
-
- dbus_message_iter_get_basic(&iter, &property_name);
-
- if (strlen(property) != strlen(property_name)
- || strcmp(property, property_name)) {
- thd_log_error("Unsupported property : %s", property_name);
- return THD_ERROR;
- }
-
- dbus_message_iter_next(&iter);
-
- if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT) {
- thd_log_error("Invalid arguments in %s[%s(%s)]", interface, signal,
- property);
- return THD_ERROR;
- }
-
- dbus_message_iter_recurse(&iter, &var);
-
- if (dbus_message_iter_get_arg_type(&var) != DBUS_TYPE_BOOLEAN) {
- thd_log_error("Invalid arguments in %s[%s(%s)]", interface, signal,
- property);
- return THD_ERROR;
- }
-
- dbus_message_iter_get_basic(&var, new_value);
-
- return THD_SUCCESS;
-}
-
-DBusHandlerResult cthd_cdev_modem::ofono_signal_handler(DBusConnection *conn,
- DBusMessage *msg, void *user_data) {
- DBusError error;
- cthd_cdev_modem *cdev_modem = (cthd_cdev_modem *) user_data;
-
- const char *signal = "PropertyChanged";
-
- dbus_error_init(&error);
-
- if (dbus_message_is_signal(msg, THERMAL_MANAGEMENT_INTERFACE, signal)) {
- dbus_bool_t throttling;
-
- if (parse_ofono_property_changed_signal(msg,
- THERMAL_MANAGEMENT_INTERFACE, signal, "TransmitPowerThrottling",
- &throttling) != THD_SUCCESS)
- return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-
- if (cdev_modem) {
- cdev_modem->set_throttling_state(throttling ? true : false);
-
- cdev_modem->update_online_state(conn);
- cdev_modem->update_throttling_state(conn);
- thd_log_debug("TransmitPowerThrottling Initiated");
- }
-
- return DBUS_HANDLER_RESULT_HANDLED;
- } else if (dbus_message_is_signal(msg, MODEM_INTERFACE, signal)) {
- dbus_bool_t online;
-
- if (parse_ofono_property_changed_signal(msg, MODEM_INTERFACE, signal,
- "Online", &online) != THD_SUCCESS)
- return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-
- if (cdev_modem) {
- cdev_modem->set_online_state(online ? true : false);
- cdev_modem->update_online_state(conn);
- cdev_modem->update_throttling_state(conn);
- thd_log_debug("Modem online Initiated");
- }
-
- return DBUS_HANDLER_RESULT_HANDLED;
- }
-
- return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-}
-
-cthd_cdev_modem::cthd_cdev_modem(unsigned int _index, std::string control_path) :
- cthd_cdev(_index, "") {
- throttling = false;
- online = false;
-
- if (control_path.length() > 0)
- modem_path.assign(control_path);
- else
- modem_path.assign("/ril_0");
-}
-
-int cthd_cdev_modem::get_modem_property(DBusConnection* conn,
- const char* interface, const char* property, bool* value) {
- DBusError error;
- DBusMessage *msg;
- DBusMessage *reply;
- DBusMessageIter array;
- DBusMessageIter dict;
- int rc = THD_ERROR;
-
- dbus_error_init(&error);
-
- msg = dbus_message_new_method_call("org.ofono", modem_path.c_str(),
- interface, "GetProperties");
- if (msg == NULL) {
- thd_log_error("Error creating D-Bus message for GetProperties "
- "under %s : %s\n", modem_path.c_str(), error.message);
- return rc;
- }
-
- reply = dbus_connection_send_with_reply_and_block(conn, msg, 10000, &error);
- if (dbus_error_is_set(&error)) {
- thd_log_error("Error invoking GetProperties under %s : %s\n",
- modem_path.c_str(), error.message);
- dbus_error_free(&error);
- dbus_message_unref(msg);
- return rc;
- }
-
- dbus_message_unref(msg);
-
- dbus_message_iter_init(reply, &array);
- if (dbus_message_iter_get_arg_type(&array) != DBUS_TYPE_ARRAY) {
- thd_log_error("GetProperties return type not array under %s!\n",
- modem_path.c_str());
- dbus_message_unref(reply);
- return rc;
- }
-
- dbus_message_iter_recurse(&array, &dict);
-
- while (dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_DICT_ENTRY) {
- DBusMessageIter key, var;
-
- char *property_name;
-
- dbus_message_iter_recurse(&dict, &key);
-
- if (dbus_message_iter_get_arg_type(&key) != DBUS_TYPE_STRING) {
- thd_log_error("GetProperties dict key type not string "
- "under %s!\n", modem_path.c_str());
- dbus_message_unref(reply);
- return rc;
- }
-
- dbus_message_iter_get_basic(&key, &property_name);
-
- /* Check if, this is the property we are interested in */
- if (strlen(property) != strlen(property_name)
- || strcmp(property, property_name)) {
- dbus_message_iter_next(&dict);
- continue;
- }
-
- dbus_message_iter_next(&key);
-
- if (dbus_message_iter_get_arg_type(&key) != DBUS_TYPE_VARIANT) {
- thd_log_error("GetProperties dict value type not "
- "variant under %s!\n", modem_path.c_str());
- dbus_message_unref(reply);
- return rc;
- }
-
- dbus_message_iter_recurse(&key, &var);
-
- if (dbus_message_iter_get_arg_type(&var) != DBUS_TYPE_BOOLEAN) {
- thd_log_error("GetProperties dict value(1) type not "
- "boolean under %s!\n", modem_path.c_str());
- dbus_message_unref(reply);
- return rc;
- }
-
- dbus_message_iter_get_basic(&var, value);
- rc = THD_SUCCESS;
- break;
- }
-
- dbus_message_unref(reply);
-
- return rc;
-}
-
-int cthd_cdev_modem::update_online_state(DBusConnection* conn) {
- bool online_state;
-
- if (get_modem_property(conn, MODEM_INTERFACE, "Online",
- &online_state) == THD_SUCCESS) {
- online = online_state;
- return THD_SUCCESS;
- }
-
- return THD_ERROR;
-}
-
-int cthd_cdev_modem::update_throttling_state(DBusConnection *conn) {
- bool enabled;
-
- if (get_modem_property(conn, THERMAL_MANAGEMENT_INTERFACE,
- "TransmitPowerThrottling", &enabled) == THD_SUCCESS) {
- throttling = enabled;
- return THD_SUCCESS;
- }
-
- return THD_ERROR;
-}
-
-int cthd_cdev_modem::update() {
- DBusConnection *conn;
- DBusError error;
- std::string thermal_management_dbus_rule, modem_dbus_rule;
-
- /* Modem has only 2 throttling states, enabled or disabled */
- min_state = MODEM_THROTTLING_DISABLED;
- max_state = MODEM_THROTTLING_ENABLED;
-
- dbus_error_init(&error);
-
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
- if (dbus_error_is_set(&error)) {
- thd_log_error("Error connecting to system bus: %s:\n", error.message);
- dbus_error_free(&error);
- return THD_ERROR;
- }
-
- dbus_connection_setup_with_g_main(conn, NULL);
-
- /*
- * Add a match rule as below ...
- * Type : Signal
- * From-Interface : org.ofono.Modem
- * Signal Name : PropertyChanged
- * Property Name : Online
- */
- modem_dbus_rule.append("type='signal'");
- modem_dbus_rule.append(",path='").append(modem_path).append("'");
- modem_dbus_rule.append(",interface='" MODEM_INTERFACE "'");
- modem_dbus_rule.append(",member='PropertyChanged'");
- modem_dbus_rule.append(",arg0='Online'");
-
- dbus_bus_add_match(conn, modem_dbus_rule.c_str(), &error);
- if (dbus_error_is_set(&error)) {
- thd_log_error("Error adding D-Bus rule \"%s\" : %s",
- modem_dbus_rule.c_str(), error.message);
- dbus_error_free(&error);
- return THD_ERROR;
- }
-
- /*
- * Add a match rule as below ...
- * Type : Signal
- * From-Interface : org.ofono.sofia3gr.ThermalManagement
- * Signal Name : PropertyChanged
- * Property Name : TransmitPowerThrottling
- */
- thermal_management_dbus_rule.append("type='signal'");
- thermal_management_dbus_rule.append(",path='").append(modem_path).append(
- "'");
- thermal_management_dbus_rule.append(",interface='").append(
- THERMAL_MANAGEMENT_INTERFACE).append("'");
- thermal_management_dbus_rule.append(",member='PropertyChanged'");
- thermal_management_dbus_rule.append(",arg0='TransmitPowerThrottling'");
-
- dbus_bus_add_match(conn, thermal_management_dbus_rule.c_str(), &error);
- if (dbus_error_is_set(&error)) {
- thd_log_error("Error adding D-Bus rule \"%s\" : %s",
- thermal_management_dbus_rule.c_str(), error.message);
- dbus_error_free(&error);
- return THD_ERROR;
- }
-
- /* Register a handler for the above added rules */
- dbus_connection_add_filter(conn, ofono_signal_handler, this, NULL);
-
- return THD_SUCCESS;
-}
-
-int cthd_cdev_modem::get_curr_state() {
-
- if (!online) {
- update_throttling_state();
- }
-
- if (throttling) {
- curr_state = MODEM_THROTTLING_ENABLED;
- thd_log_debug("Modem currently under throttling\n");
- } else {
- curr_state = MODEM_THROTTLING_DISABLED;
- thd_log_debug("Modem currently not under throttling\n");
- }
-
- return curr_state;
-}
-
-void cthd_cdev_modem::update_throttling_state() {
-
- DBusConnection *conn;
- DBusError error;
-
- dbus_error_init(&error);
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
-
- if (dbus_error_is_set(&error)) {
- thd_log_error("Error: %s", error.message);
- dbus_error_free(&error);
- return;
- }
-
- dbus_connection_setup_with_g_main(conn, NULL);
-
- if (is_interface_up(conn) == THD_ERROR) {
- thd_log_warn("Thermal Interface not ready\n");
- return;
- }
-
- update_online_state(conn);
- update_throttling_state(conn);
-
-}
-
-int cthd_cdev_modem::is_interface_up(DBusConnection *conn) {
-
- DBusError error;
- DBusMessage *msg;
- DBusMessage *reply;
- int rc = THD_ERROR;
-
- dbus_error_init(&error);
-
- msg = dbus_message_new_method_call("org.ofono", modem_path.c_str(),
- THERMAL_MANAGEMENT_INTERFACE, "GetProperties");
-
- if (msg == NULL) {
- thd_log_error("Error creating D-Bus message for GetProperties "
- "under %s : %s\n", modem_path.c_str(), error.message);
- return rc;
- }
-
- reply = dbus_connection_send_with_reply_and_block(conn, msg, 10000, &error);
-
- if (dbus_error_is_set(&error)) {
- dbus_error_free(&error);
- dbus_message_unref(msg);
- return rc;
- }
-
- dbus_message_unref(msg);
- dbus_message_unref(reply);
-
- return THD_SUCCESS;
-}
-
-void cthd_cdev_modem::set_curr_state(int state, int arg) {
-
- DBusConnection *conn;
- DBusError error;
-
- dbus_error_init(&error);
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
-
- if (dbus_error_is_set(&error)) {
- thd_log_error("Error : %s", error.message);
- dbus_error_free(&error);
- return;
- }
-
- dbus_connection_setup_with_g_main(conn, NULL);
-
- update_online_state(conn);
-
- switch (state) {
- case MODEM_THROTTLING_ENABLED:
- if (!online)
- thd_log_debug("Modem not yet online, hence "
- "ignoring throttle request\n");
- else if (throttling)
- thd_log_debug("Modem already throttled, hence "
- "ignoring throttle request\n");
- else {
- thd_log_debug("Initiating modem throttling\n");
- throttle_modem(state);
- update_throttling_state(conn);
- }
- break;
-
- case MODEM_THROTTLING_DISABLED:
- if (!online)
- thd_log_debug("Modem not yet online, hence "
- "ignoring de-throttle request\n");
- else if (!throttling)
- thd_log_debug("Modem already de-throttled, hence "
- "ignoring de-throttle request\n");
- else {
- thd_log_debug("Initiating modem de-throttling\n");
- throttle_modem(state);
- update_throttling_state(conn);
- }
- break;
- }
-}
-
-int cthd_cdev_modem::get_max_state() {
- return max_state;
-}
-
-int cthd_cdev_modem::is_throttling() {
- return throttling;
-}
-
-void cthd_cdev_modem::set_throttling_state(bool enabled) {
- throttling = enabled;
-}
-
-bool cthd_cdev_modem::is_online() {
- return online;
-}
-
-void cthd_cdev_modem::set_online_state(bool on) {
- online = on;
-}
-
-void cthd_cdev_modem::throttle_modem(int state) {
- DBusConnection *conn;
- DBusError error;
-
- DBusMessage *msg;
- DBusMessageIter iter;
- DBusMessageIter var;
-
- const char *property = "TransmitPowerThrottling";
-
- dbus_bool_t enable;
-
- char var_sig[] = { DBUS_TYPE_BOOLEAN, 0 };
-
- dbus_error_init(&error);
-
- conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
- if (dbus_error_is_set(&error)) {
- thd_log_error("Couldn't connect to system bus: %s:\n", error.message);
- dbus_error_free(&error);
- return;
- }
-
- msg = dbus_message_new_method_call("org.ofono", modem_path.c_str(),
- THERMAL_MANAGEMENT_INTERFACE, "SetProperty");
- if (msg == NULL) {
- thd_log_error("Couldn't create D-Bus message for SetProperty "
- "under %s : %s\n", modem_path.c_str(), error.message);
- return;
- }
-
- enable = (state == MODEM_THROTTLING_ENABLED) ? true : false;
-
- dbus_message_iter_init_append(msg, &iter);
-
- if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &property)) {
- thd_log_error("Error populating modem %s arguments: %s\n",
- enable ? "throttle" : "de-throttle", error.message);
- return;
- }
-
- dbus_message_iter_open_container(&iter, DBUS_TYPE_VARIANT, var_sig, &var);
-
- if (!dbus_message_iter_append_basic(&var, DBUS_TYPE_BOOLEAN, &enable)) {
- thd_log_error("Error populating modem %s arguments: %s\n",
- enable ? "throttle" : "de-throttle", error.message);
- return;
- }
-
- dbus_message_iter_close_container(&iter, &var);
-
- // send message
- if (!dbus_connection_send(conn, msg, NULL)) {
- thd_log_error("Error sending modem throttle message to %s !\n",
- modem_path.c_str());
- return;
- }
-
- dbus_connection_flush(conn);
- dbus_message_unref(msg);
-}
diff --git a/src/thd_cdev_modem.h b/src/thd_cdev_modem.h
deleted file mode 100644
index c88ae7e0..00000000
--- a/src/thd_cdev_modem.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * thd_cdev_modem.h: thermal modem cooling interface
- * Copyright (c) 2016, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License
- * version 2 or later as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- *
- * Author Name <Rajagopalx.Aravindan@intel.com>
- *
- */
-
-#ifndef THD_CDEV_MODEM_H_
-#define THD_CDEV_MODEM_H_
-
-#include "thd_cdev.h"
-
-#define MODEM_INTERFACE "org.ofono.Modem"
-#define THERMAL_MANAGEMENT_INTERFACE "org.ofono.sofia3gr.ThermalManagement"
-
-enum modem_throttling_state {
- MODEM_THROTTLING_DISABLED = 0, MODEM_THROTTLING_ENABLED,
-};
-
-class cthd_cdev_modem: public cthd_cdev {
-private:
- std::string modem_path;
- bool online;
- bool throttling;
-
- bool is_online(void);
- void set_online_state(bool);
- int is_throttling(void);
- void set_throttling_state(bool);
- void throttle_modem(int state);
-
-public:
- cthd_cdev_modem(unsigned int _index, std::string control_path);
- int get_curr_state(void);
- void set_curr_state(int state, int arg);
- int get_max_state(void);
- int get_modem_property(DBusConnection *conn, const char *interface,
- const char *property, bool *value);
- int update_online_state(DBusConnection *conn);
- int update_throttling_state(DBusConnection *conn);
- int update(void);
- void update_throttling_state(void);
- int is_interface_up(DBusConnection *conn);
-
- static DBusHandlerResult
- ofono_signal_handler(DBusConnection *conn, DBusMessage *msg,
- void *user_data);
-
- static int
- parse_ofono_property_changed_signal(DBusMessage *msg, const char *interface,
- const char *signal, const char *property, dbus_bool_t *value);
-};
-#endif /* THD_CDEV_MODEM_H_ */
diff --git a/src/thermald.h b/src/thermald.h
index 45ee3b10..286c659d 100644
--- a/src/thermald.h
+++ b/src/thermald.h
@@ -69,9 +69,6 @@
#define LOCKF_SUPPORT
#ifdef GLIB_SUPPORT
#include <glib.h>
-#include <dbus/dbus.h>
-#include <dbus/dbus-glib-lowlevel.h>
-#include <dbus/dbus-glib.h>
#include <glib/gi18n.h>
#include <gmodule.h>
From 9124d3645dc174709b203849ff70abf989702f17 Mon Sep 17 00:00:00 2001
From: Kate Hsuan <hpa@redhat.com>
Date: Tue, 16 Apr 2024 17:39:00 +0800
Subject: [PATCH 4/4] main: unown dbus name when thermald is terminated
Unown the dbus name when thermeld is terminated.
---
src/main.cpp | 4 ++--
src/thd_dbus_interface.cpp | 18 +++++++++---------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/main.cpp b/src/main.cpp
index 135fa3ff..1ea74b76 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -87,7 +87,7 @@ gboolean exclusive_control = FALSE;
static GMainLoop *g_main_loop;
#ifdef GDBUS
-gint watcher_id = 0;
+gint own_id = 0;
#endif
// g_log handler. All logs will be directed here
@@ -374,7 +374,7 @@ int main(int argc, char *argv[]) {
thd_log_warn("Oops g main loop exit..\n");
#ifdef GDBUS
- g_bus_unwatch_name (watcher_id);
+ g_bus_unown_name (own_id);
#endif
fprintf(stdout, "Exiting ..\n");
diff --git a/src/thd_dbus_interface.cpp b/src/thd_dbus_interface.cpp
index cad86ba8..c75e56c2 100644
--- a/src/thd_dbus_interface.cpp
+++ b/src/thd_dbus_interface.cpp
@@ -588,7 +588,7 @@ gboolean thd_dbus_interface_get_sensor_temperature(PrefObject *obj, int index,
#pragma GCC diagnostic push
static GDBusInterfaceVTable interface_vtable;
-extern gint watcher_id;
+extern gint own_id;
static GDBusNodeInfo *
thd_dbus_load_introspection(const gchar *filename, GError **error)
@@ -1230,14 +1230,14 @@ int thd_dbus_server_init(gboolean (*exit_handler)(void)) {
interface_vtable.get_property = thd_dbus_handle_get_property;
interface_vtable.set_property = thd_dbus_handle_set_property;
- watcher_id = g_bus_own_name(G_BUS_TYPE_SYSTEM,
- "org.freedesktop.thermald",
- G_BUS_NAME_OWNER_FLAGS_REPLACE,
- thd_dbus_on_bus_acquired,
- thd_dbus_on_name_acquired,
- thd_dbus_on_name_lost,
- g_object_ref(value_obj),
- NULL);
+ own_id = g_bus_own_name(G_BUS_TYPE_SYSTEM,
+ "org.freedesktop.thermald",
+ G_BUS_NAME_OWNER_FLAGS_REPLACE,
+ thd_dbus_on_bus_acquired,
+ thd_dbus_on_name_acquired,
+ thd_dbus_on_name_lost,
+ g_object_ref(value_obj),
+ NULL);
return THD_SUCCESS;
}

File diff suppressed because it is too large Load Diff

@ -1,40 +1,33 @@
## START: Set by rpmautospec # Explicitly turn on hardening, if required.
## (rpmautospec version 0.6.1) %if 0%{?rhel} && 0%{?rhel} <= 7
## RPMAUTOSPEC: autorelease, autochangelog %global _hardened_build 1
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: %endif
release_number = 4;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
%global pkgname thermal_daemon %global pkgname thermal_daemon
%bcond qt %[%{undefined rhel} || 0%{?rhel} < 10]
Name: thermald Name: thermald
Version: 2.5.7 Version: 2.5.3
Release: %autorelease Release: 1%{?dist}
Summary: Thermal Management daemon Summary: Thermal Management daemon
License: GPLv2+ # thd_cdev_modem.{cpp,h} is currently GPLv2 only
# https://github.com/intel/thermal_daemon/issues/306
License: GPLv2
URL: https://github.com/intel/%{pkgname} URL: https://github.com/intel/%{pkgname}
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
# https://github.com/intel/thermal_daemon/pull/441
# Deprecate intel-modem and dbus-glib
Patch001: 441.patch
# No cpuid.h on other arches. # No cpuid.h on other arches.
ExclusiveArch: %{ix86} x86_64 ExclusiveArch: %{ix86} x86_64
BuildRequires: make BuildRequires: make
BuildRequires: autoconf autoconf-archive BuildRequires: autoconf autoconf-archive
BuildRequires: automake BuildRequires: automake
BuildRequires: dbus-glib-devel
BuildRequires: desktop-file-utils BuildRequires: desktop-file-utils
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: libxml2-devel BuildRequires: libxml2-devel
BuildRequires: systemd-rpm-macros BuildRequires: systemd-devel
BuildRequires: upower-devel BuildRequires: upower-devel
BuildRequires: libevdev-devel BuildRequires: libevdev-devel
BuildRequires: gtk-doc BuildRequires: gtk-doc
@ -46,6 +39,10 @@ Requires(pre): shadow-utils
%{?systemd_requires} %{?systemd_requires}
# Upstream removed the internal copy of qcustomplot, add it back as we don't have it in RHEL.
# The alternative would be removing the GUI package
Patch9000: qcustomplot.patch
%description %description
%{name} monitors and controls platform temperature. %{name} monitors and controls platform temperature.
@ -54,38 +51,36 @@ impact. %{name} uses the existing Linux kernel infrastructure and can
be easily enhanced. be easily enhanced.
%if %{with qt}
%package monitor %package monitor
Summary: Application for monitoring %{name} Summary: Application for monitoring %{name}
License: GPLv3+ License: GPLv3+
BuildRequires: qcustomplot-qt5-devel
BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtbase-devel
Requires: hicolor-icon-theme Requires: hicolor-icon-theme
Requires: %{name}%{?_isa} == %{version}-%{release} Requires: %{name}%{?_isa} == %{version}-%{release}
Provides: bundled(qcustomplot) = 2.0.0-beta
%description monitor %description monitor
This package contains an Application to monitor %{name} for system This package contains an Application to monitor %{name} for system
developers who want to enable application developers and their developers who want to enable application developers and their
customers with the responsive and flexible thermal management, customers with the responsive and flexible thermal management,
supporting optimal performance in desktop, clam-shell, mobile and supporting optimal performance in desktop, clam-shell, mobile and
embedded devices. embedded devices.
%endif
%prep %prep
%autosetup -n %{pkgname}-%{version} -p 1 %autosetup -n %{pkgname}-%{version} -p 1
# Create tmpfiles.d config. # Create tmpfiles.d config.
mkdir -p fedora_addons %{__mkdir} -p fedora_addons
cat << EOF > fedora_addons/%{name}.conf %{__cat} << EOF > fedora_addons/%{name}.conf
d %{_rundir}/%{name} 0755 root root - d %{_rundir}/%{name} 0755 root root -
EOF EOF
%if %{with qt}
# Create desktop-file for the monitor-app. # Create desktop-file for the monitor-app.
cat << EOF > fedora_addons/%{name}-monitor.desktop %{__cat} << EOF > fedora_addons/%{name}-monitor.desktop
[Desktop Entry] [Desktop Entry]
Name=%{name} Monitor Name=%{name} Monitor
Comment=Application for monitoring %{name} Comment=Application for monitoring %{name}
@ -98,7 +93,7 @@ Terminal=false
EOF EOF
# Create icon for the monitor-app. # Create icon for the monitor-app.
cat << EOF > fedora_addons/%{name}-monitor.svg %{__cat} << EOF > fedora_addons/%{name}-monitor.svg
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
@ -151,7 +146,7 @@ cat << EOF > fedora_addons/%{name}-monitor.svg
EOF EOF
# Create ReadMe.txt for the monitor-app. # Create ReadMe.txt for the monitor-app.
cat << EOF > fedora_addons/%{name}-monitor.ReadMe.txt %{__cat} << EOF > fedora_addons/%{name}-monitor.ReadMe.txt
Running the thermald-monitor-app Running the thermald-monitor-app
-------------------------------- --------------------------------
@ -159,60 +154,60 @@ To communicate with thermald via dbus, the user has to be member
of the "power" group. So make sure to add your user id to this of the "power" group. So make sure to add your user id to this
group before using the thermald-monitor-app. group before using the thermald-monitor-app.
EOF EOF
%endif
NO_CONFIGURE=1 ./autogen.sh NO_CONFIGURE=1 ./autogen.sh
%build %build
%configure \ %configure \
--with-systemdsystemunitdir=%{_unitdir} \
--disable-option-checking \ --disable-option-checking \
--disable-silent-rules --disable-silent-rules
%make_build %make_build
%if %{with qt}
# Build the monitor-app. # Build the monitor-app.
pushd tools/thermal_monitor pushd tools/thermal_monitor
sed -i -e 's/QCustomPlot/qcustomplot-qt5/' ThermalMonitor.pro %{__mkdir} -p %{_target_platform}
mkdir -p %{_target_platform}
pushd %{_target_platform} pushd %{_target_platform}
%{qmake_qt5} .. %{qmake_qt5} ..
%make_build %make_build
popd popd
popd popd
%endif
%install %install
%make_install %make_install
# Install management-script. # Install management-script.
install -Dpm 0755 tools/thermald_set_pref.sh \ %{__install} -Dpm 0755 tools/thermald_set_pref.sh \
%{buildroot}%{_bindir}/%{name}-set-pref %{buildroot}%{_bindir}/%{name}-set-pref
# DBus config belongs into %%{_datadir}.
%{__mkdir} -p %{buildroot}%{_datadir}
%{__mv} -f %{buildroot}%{_sysconfdir}/dbus-1/* %{buildroot}%{_datadir}/dbus-1/
# No Upstart.
%{__rm} -fr %{buildroot}%{_sysconfdir}/init
# Setup tmpfiles.d # Setup tmpfiles.d
install -Dpm 0644 fedora_addons/%{name}.conf %{buildroot}%{_tmpfilesdir}/%{name}.conf %{__install} -Dpm 0644 fedora_addons/%{name}.conf \
install -dm 0755 %{buildroot}%{_rundir}/%{name} %{buildroot}%{_tmpfilesdir}/%{name}.conf
%{__install} -dm 0755 %{buildroot}%{_rundir}/%{name}
/bin/echo "%{name}_pid" > %{buildroot}%{_rundir}/%{name}/%{name}.pid /bin/echo "%{name}_pid" > %{buildroot}%{_rundir}/%{name}/%{name}.pid
chmod -c 0644 %{buildroot}%{_rundir}/%{name}/%{name}.pid %{__chmod} -c 0644 %{buildroot}%{_rundir}/%{name}/%{name}.pid
%if %{with qt}
# Install the monitor-app. # Install the monitor-app.
install -Dpm 0755 tools/thermal_monitor/%{_target_platform}/ThermalMonitor \ %{__install} -Dpm 0755 tools/thermal_monitor/%{_target_platform}/ThermalMonitor \
%{buildroot}%{_bindir}/ThermalMonitor %{buildroot}%{_bindir}/ThermalMonitor
install -Dpm 0644 fedora_addons/%{name}-monitor.desktop \ %{__install} -Dpm 0644 fedora_addons/%{name}-monitor.desktop \
%{buildroot}%{_datadir}/applications/%{name}-monitor.desktop %{buildroot}%{_datadir}/applications/%{name}-monitor.desktop
install -Dpm 0644 fedora_addons/%{name}-monitor.svg \ %{__install} -Dpm 0644 fedora_addons/%{name}-monitor.svg \
%{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}-monitor.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}-monitor.svg
%endif
%check %check
%if %{with qt} %{_bindir}/desktop-file-validate \
%{_bindir}/desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{buildroot}%{_datadir}/applications/*.desktop
%endif
%pre %pre
@ -232,11 +227,11 @@ exit 0
%systemd_postun_with_restart thermald.service %systemd_postun_with_restart thermald.service
%files %files
%license COPYING
%config(noreplace) %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}
%doc README.txt thermal_daemon_usage.txt %doc README.txt thermal_daemon_usage.txt
%ghost %dir %{_rundir}/%{name} %ghost %dir %{_rundir}/%{name}
%ghost %{_rundir}/%{name}/%{name}.pid %ghost %{_rundir}/%{name}/%{name}.pid
%license COPYING
%{_bindir}/%{name}-set-pref %{_bindir}/%{name}-set-pref
%{_datadir}/dbus-1/system-services/org.freedesktop.%{name}.service %{_datadir}/dbus-1/system-services/org.freedesktop.%{name}.service
%{_datadir}/dbus-1/system.d/org.freedesktop.%{name}.conf %{_datadir}/dbus-1/system.d/org.freedesktop.%{name}.conf
@ -247,87 +242,51 @@ exit 0
%{_unitdir}/%{name}.service %{_unitdir}/%{name}.service
%if %{with qt}
%files monitor %files monitor
%doc fedora_addons/%{name}-monitor.ReadMe.txt %doc fedora_addons/%{name}-monitor.ReadMe.txt
%license tools/thermal_monitor/COPYING %license tools/thermal_monitor/qcustomplot/GPL.txt
%{_bindir}/ThermalMonitor %{_bindir}/ThermalMonitor
%{_datadir}/applications/%{name}-monitor.desktop %{_datadir}/applications/%{name}-monitor.desktop
%{_datadir}/icons/hicolor/scalable/apps/%{name}-monitor.svg %{_datadir}/icons/hicolor/scalable/apps/%{name}-monitor.svg
%endif
%changelog %changelog
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 2.5.7-4 * Tue Aug 22 2023 Kate Hsuan <hpa@redhat.com> - 2.5.3-1
- Rebuilt for MSVSphere 10 - Update to 2.5.3
Resolves: rhbz#2221062
## START: Generated by rpmautospec * Thu Feb 23 2023 Bastien Nocera <bnocera@redhat.com> - 2.5.2-1
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2.5.7-4 - Update to 2.5.2
- Bump release for June 2024 mass rebuild Resolves: rhbz#2172590
* Mon Jun 10 2024 Jiří Koten <jkoten@redhat.com> - 2.5.7-3 * Mon Dec 19 2022 Bastien Nocera <bnocera@redhat.com> - 2.5.1-1
- Fix the gating test. - Update to 2.5.1
Resolves: rhbz#2114049
* Tue May 28 2024 Kate Hsuan <hpa@redhat.com> - 2.5.7-2 * Mon Jul 25 2022 Benjamin Berg <bberg@redhat.com> - 2.5-3
- Add gating definition for RHEL-10 - Accept 2.5 as package version
Related: #2040081
* Tue May 21 2024 Kate Hsuan <hpa@redhat.com> - 2.5.7-1 * Mon Jul 25 2022 Benjamin Berg <bberg@redhat.com> - 2.5-2
- RHEL-37515 Update to release 2.5.7 and remove dbus-glib dependency - Fix version test script
Related: #2040081
* Sun Feb 11 2024 Peter Robinson <pbrobinson@gmail.com> - 2.5.6-1 * Fri Jul 22 2022 Benjamin Berg <bberg@redhat.com> - 2.5-1
- Update to 2.5.6, spec cleanups
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Aug 16 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 2.5-6
- Disable monitor in RHEL builds
* Sun Jul 23 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 2.5-5
- Fix build with latest systemd
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Aug 17 2022 Kalev Lember <klember@redhat.com> - 2.5-2
- Fix the build
* Tue Aug 16 2022 Kalev Lember <klember@redhat.com> - 2.5-1
- Update to 2.5 - Update to 2.5
Resolves: #2040081
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.8-5 * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 2.4.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Feb 09 2022 Benjamin Berg <bberg@redhat.com> - 2.4.8-4
- Pull in adaptive fixes/improvements and p-p-d integration
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Jan 12 2022 Benjamin Berg <bberg@redhat.com> - 2.4.8-1
- Update to 2.4.8 (#2038523)
* Wed Nov 24 2021 Benjamin Berg <bberg@redhat.com> - 2.4.6-3
- Pull AlderLake and JasperLake support from upstream
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jun 10 2021 Benjamin Berg <bberg@redhat.com> - 2.4.6-1 * Thu Jun 10 2021 Benjamin Berg <bberg@redhat.com> - 2.4.6-1
- Update to 2.4.6 (#1965783) - Update to 2.4.6 (#1965783)
- Update main license to GPLv2 only for now - Update main license to GPLv2 only for now
- Add bundled(qcustomplot) for monitor subpackage - Add bundled(qcustomplot) for monitor subpackage
- Resolves: #1961047
* Fri May 14 2021 Benjamin Berg <bberg@redhat.com> - 2.4.4-1 * Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.4.1-4
- Update to 2.4.4 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
Resolves: #1935728
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.4.1-4
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
* Tue Feb 02 2021 Benjamin Berg <bberg@redhat.com> - 2.4.1-3 * Tue Feb 02 2021 Benjamin Berg <bberg@redhat.com> - 2.4.1-3
- Add upstream patch fixing parsing of passive targets - Add upstream patch fixing parsing of passive targets
@ -425,5 +384,3 @@ exit 0
* Sat Apr 08 2017 Björn Esser <besser82@fedoraproject.org> - 1.6-0.1 * Sat Apr 08 2017 Björn Esser <besser82@fedoraproject.org> - 1.6-0.1
- Initial rpm-release (rhbz#1440406) - Initial rpm-release (rhbz#1440406)
## END: Generated by rpmautospec

Loading…
Cancel
Save