thermald/441.patch

847 lines
24 KiB
Diff
Raw Normal View History

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;
}