Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ddcutil for openSUSE:Factory checked in at 2023-03-22 22:31:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ddcutil (Old) and /work/SRC/openSUSE:Factory/.ddcutil.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ddcutil" Wed Mar 22 22:31:38 2023 rev:15 rq:1073775 version:1.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ddcutil/ddcutil.changes 2023-01-17 17:36:23.457549617 +0100 +++ /work/SRC/openSUSE:Factory/.ddcutil.new.31432/ddcutil.changes 2023-03-22 22:32:24.482726397 +0100 @@ -1,0 +2,7 @@ +Sat Jan 28 19:44:09 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 1.4.1: + * The default sleep-multipler value was 0, instead of 1. This resulted in + failure of most DDC/CI operations, including display detection. + +------------------------------------------------------------------- Old: ---- v1.4.0.tar.gz New: ---- v1.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ddcutil.spec ++++++ --- /var/tmp/diff_new_pack.5Gemdl/_old 2023-03-22 22:32:25.162729819 +0100 +++ /var/tmp/diff_new_pack.5Gemdl/_new 2023-03-22 22:32:25.166729839 +0100 @@ -17,7 +17,7 @@ Name: ddcutil -Version: 1.4.0 +Version: 1.4.1 Release: 0 Summary: Utility to query and update monitor settings License: GPL-2.0-or-later ++++++ v1.4.0.tar.gz -> v1.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/CHANGELOG.md new/ddcutil-1.4.1/CHANGELOG.md --- old/ddcutil-1.4.0/CHANGELOG.md 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/CHANGELOG.md 2023-01-16 18:53:56.000000000 +0100 @@ -1,5 +1,11 @@ # Changelog +## [1.4.1] 2023-01-16 + +### Fixed +- The default sleep-multipler value was 0, instead of 1. This resulted in failure of + most DDC/CI operations, including display detection. + ## [1.4.0] 2023-01-04 ### Added @@ -12,10 +18,10 @@ ### Changed - The ability to use the write()/read() interface of i2c-dev has been restored. - It is needed to work around a bug in the proprietary nvidia driver. By - default, the write()/read() interface is used for the nvidia driver, the - ioctl() interface is used for all other drivers. Command line options - ***--use-file-io*** and ***--use-ioctl-io*** affect his default behavior. + It is needed to work around a bug in the proprietary Nvidia driver. By + default, ioctl() interface is used for all drivers. If the Nvidia bug is + detected, the write()/read() interface is used instead. Command line options + ***--use-file-io*** and ***--use-ioctl-io*** affect this default behavior. When i2c-dev's file io interface is used, option ***--force-slave-address*** is again meaningful. - Option ***--sleep-multiplier*** and API functions **ddca_set_sleep_multiplier_value()**, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/configure.ac new/ddcutil-1.4.1/configure.ac --- old/ddcutil-1.4.0/configure.ac 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/configure.ac 2023-01-16 18:53:56.000000000 +0100 @@ -16,7 +16,7 @@ m4_define([ddcutil_major_version], [1]) m4_define([ddcutil_minor_version], [4]) -m4_define([ddcutil_micro_version], [0]) +m4_define([ddcutil_micro_version], [1]) dnl ddcutil_version_suffix does not begin with hyphen, e.g. "dev", not "-dev" m4_define([ddcutil_version_suffix], [""]) # m4_ifelse(ddcutil_version_suffix,[], m4_define([ddcutil_version], [a]),define([ddcutil_version],[b])) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/base/base_services.c new/ddcutil-1.4.1/src/base/base_services.c --- old/ddcutil-1.4.0/src/base/base_services.c 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/base/base_services.c 2023-01-16 18:53:56.000000000 +0100 @@ -2,7 +2,7 @@ * Initialize and release base services. */ -// Copyright (C) 2014-2022 Sanford Rockowitz <rockow...@minsoft.com> +// Copyright (C) 2014-2023 Sanford Rockowitz <rockow...@minsoft.com> // SPDX-License-Identifier: GPL-2.0-or-later #include "util/error_info.h" @@ -16,6 +16,7 @@ #include "linux_errno.h" #include "per_thread_data.h" #include "sleep.h" +#include "thread_sleep_data.h" #include "tuned_sleep.h" #include <base_services.h> @@ -37,6 +38,7 @@ init_ddc_packets(); init_dynamic_sleep(); init_base_dynamic_features(); + init_thread_sleep_data(); if (debug) printf("(%s) Done\n", __func__); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/base/per_thread_data.c new/ddcutil-1.4.1/src/base/per_thread_data.c --- old/ddcutil-1.4.0/src/base/per_thread_data.c 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/base/per_thread_data.c 2023-01-16 18:53:56.000000000 +0100 @@ -164,9 +164,9 @@ // Locking // -static void init_per_thread_data(Per_Thread_Data * ptd) { - init_thread_sleep_data(ptd); - init_thread_retry_data(ptd); +static void ptd_init(Per_Thread_Data * ptd) { + tsd_init_thread_sleep_data(ptd); + trd_init(ptd); } @@ -200,7 +200,7 @@ data = g_new0(Per_Thread_Data, 1); data->thread_id = cur_thread_id; g_private_set(&lock_depth, GINT_TO_POINTER(0)); - init_per_thread_data(data); + ptd_init(data); DBGMSF(debug, "Initialized: %s. thread_sleep_data_defined: %s. thread_retry_data_defined; %s", sbool(data->initialized), sbool( data->thread_sleep_data_defined), sbool( data->thread_retry_data_defined)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/base/thread_retry_data.c new/ddcutil-1.4.1/src/base/thread_retry_data.c --- old/ddcutil-1.4.0/src/base/thread_retry_data.c 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/base/thread_retry_data.c 2023-01-16 18:53:56.000000000 +0100 @@ -3,7 +3,7 @@ * Maintains retry counts and max try settings on a per thread basis. */ -// Copyright (C) 2018-2020 Sanford Rockowitz <rockow...@minsoft.com> +// Copyright (C) 2018-2023 Sanford Rockowitz <rockow...@minsoft.com> // SPDX-License-Identifier: GPL-2.0-or-later #include "public/ddcutil_status_codes.h" @@ -62,7 +62,7 @@ * * \param data */ -void init_thread_retry_data(Per_Thread_Data * data) { +void trd_init(Per_Thread_Data * data) { bool debug = false; for (int ndx=0; ndx < RETRY_OP_COUNT; ndx++) { @@ -311,15 +311,6 @@ */ static void report_thread_maxtries_data(Per_Thread_Data * data, int depth) { assert(data->thread_retry_data_defined); -#ifdef OLD - if (!data->thread_retry_data_defined) { - bool debug = false; - DBGMSF(debug, "==> thread_retry_data_defined not set. Perform initialization:"); - init_thread_retry_data(data); - if (debug) - dbgrpt_per_thread_data(data, 2); - } -#endif ptd_cross_thread_operation_block(); //bool this_function_locked = ptd_lock_if_unlocked(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/base/thread_retry_data.h new/ddcutil-1.4.1/src/base/thread_retry_data.h --- old/ddcutil-1.4.0/src/base/thread_retry_data.h 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/base/thread_retry_data.h 2023-01-16 18:53:56.000000000 +0100 @@ -1,6 +1,6 @@ /** \file thread_retry_data.h */ -// Copyright (C) 2020-2021 Sanford Rockowitz <rockow...@minsoft.com> +// Copyright (C) 2020-2023 Sanford Rockowitz <rockow...@minsoft.com> // SPDX-License-Identifier: GPL-2.0-or-later #ifndef THREAD_RETRY_DATA_H_ @@ -26,7 +26,7 @@ const char * retry_type_name(Retry_Operation stat_id); const char * retry_type_description(Retry_Operation retry_class); -void init_thread_retry_data(Per_Thread_Data * data); +void trd_init(Per_Thread_Data * data); // These functions manage retry counts on a per-thread basis diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/base/thread_sleep_data.c new/ddcutil-1.4.1/src/base/thread_sleep_data.c --- old/ddcutil-1.4.0/src/base/thread_sleep_data.c 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/base/thread_sleep_data.c 2023-01-16 18:53:56.000000000 +0100 @@ -6,7 +6,7 @@ * small functions for managing various fields. */ -// Copyright (C) 2020-2022 Sanford Rockowitz <rockow...@minsoft.com> +// Copyright (C) 2020-2023 Sanford Rockowitz <rockow...@minsoft.com> // SPDX-License-Identifier: GPL-2.0-or-later #include <assert.h> @@ -23,6 +23,7 @@ #include "base/parms.h" #include "base/core.h" +#include "base/rtti.h" #include "base/sleep.h" #include "base/per_thread_data.h" @@ -144,9 +145,9 @@ // initialize a single instance, called from init_per_thread_data() -void init_thread_sleep_data(Per_Thread_Data * data) { +void tsd_init_thread_sleep_data(Per_Thread_Data * data) { bool debug = false; - DBGMSF(debug, "Starting. data=%p", (void*)data); + DBGTRC_STARTING(debug, DDCA_TRC_NONE, "data=%p", (void*)data); data->dynamic_sleep_enabled = default_dynamic_sleep_enabled; data->sleep_multiplier_ct = default_sleep_multiplier_count; @@ -156,7 +157,7 @@ data->initialized = true; data->sleep_multiplier_factor = default_sleep_multiplier_factor; // data->thread_adjustment_increment = default_sleep_multiplier_factor; - DBGMSF(debug, + DBGTRC_NOPREFIX(debug, DDCA_TRC_NONE, "Setting data->sleep_multiplier_factor = default_sleep_multiplier_factor = %6.3f", default_sleep_multiplier_factor); data->adjustment_check_interval = 2; @@ -164,7 +165,7 @@ data->thread_sleep_data_defined = true; // vs data->initialized - DBGMSF(debug, "Done. sleep_multiplier_factor = %5.2f", data->sleep_multiplier_factor); + DBGTRC_DONE(debug, DDCA_TRC_NONE, "sleep_multiplier_factor = %5.2f", data->sleep_multiplier_factor); } @@ -235,7 +236,8 @@ */ void tsd_set_default_sleep_multiplier_factor(double multiplier) { bool debug = false; - DBGMSF(debug, "Setting sleep_multiplier_factor = %6.3f", multiplier); + DBGTRC(debug, DDCA_TRC_NONE, + "Executing. Setting default_sleep_multiplier_factor = %6.3f", multiplier); assert(multiplier >= 0); default_sleep_multiplier_factor = multiplier; } @@ -246,6 +248,9 @@ * @return sleep multiplier factor */ double tsd_get_default_sleep_multiplier_factor() { + bool debug = false; + DBGTRC(debug, DDCA_TRC_NONE, + "Returning default_sleep_multiplier_factor = %6.3f", default_sleep_multiplier_factor); return default_sleep_multiplier_factor; } @@ -256,7 +261,6 @@ */ double tsd_get_sleep_multiplier_factor() { bool debug = false; - DBGTRC_STARTING(debug, TRACE_GROUP, ""); Per_Thread_Data * data = tsd_get_thread_sleep_data(); double result = data->sleep_multiplier_factor; DBGTRC(debug, TRACE_GROUP, "Returning %6.3f", result ); @@ -273,13 +277,13 @@ // Need to guard with mutex! - DBGMSF(debug, "Executing. factor = %6.3f", factor); + DBGTRC_STARTING(debug, DDCA_TRC_NONE, "factor = %6.3f", factor); assert(factor >= 0); ptd_cross_thread_operation_block(); Per_Thread_Data * data = tsd_get_thread_sleep_data(); data->sleep_multiplier_factor = factor; // data->thread_adjustment_increment = factor; - DBGMSF(debug, "Done"); + DBGTRC_DONE(debug, DDCA_TRC_NONE, ""); } @@ -454,3 +458,13 @@ bool tsd_get_dsa_enabled_default() { return default_dynamic_sleep_enabled; } + + +void init_thread_sleep_data() { + RTTI_ADD_FUNC(tsd_init_thread_sleep_data); + RTTI_ADD_FUNC(tsd_get_default_sleep_multiplier_factor); + RTTI_ADD_FUNC(tsd_set_default_sleep_multiplier_factor); + RTTI_ADD_FUNC(tsd_get_sleep_multiplier_factor); + RTTI_ADD_FUNC(tsd_set_sleep_multiplier_factor); +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/base/thread_sleep_data.h new/ddcutil-1.4.1/src/base/thread_sleep_data.h --- old/ddcutil-1.4.0/src/base/thread_sleep_data.h 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/base/thread_sleep_data.h 2023-01-16 18:53:56.000000000 +0100 @@ -3,7 +3,7 @@ * Maintains thread specific sleep data */ -// Copyright (C) 2020-2022 Sanford Rockowitz <rockow...@minsoft.com> +// Copyright (C) 2020-2023 Sanford Rockowitz <rockow...@minsoft.com> // SPDX-License-Identifier: GPL-2.0-or-later @@ -14,7 +14,7 @@ #include "base/per_thread_data.h" -void init_thread_sleep_data(Per_Thread_Data * data); +void tsd_init_thread_sleep_data(Per_Thread_Data * data); Per_Thread_Data * tsd_get_thread_sleep_data(); @@ -52,4 +52,7 @@ void report_thread_sleep_data(Per_Thread_Data * data, int depth); void report_all_thread_sleep_data(int depth); +// Module Initialization +void init_thread_sleep_data(); + #endif /* THREAD_SLEEP_DATA_H_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/cmdline/cmd_parser_goption.c new/ddcutil-1.4.1/src/cmdline/cmd_parser_goption.c --- old/ddcutil-1.4.0/src/cmdline/cmd_parser_goption.c 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/cmdline/cmd_parser_goption.c 2023-01-16 18:53:56.000000000 +0100 @@ -777,6 +777,8 @@ if (arg_ok) { if (multiplier < 0.0f || multiplier >= 100.0) arg_ok = false; + if (parser_mode == MODE_DDCUTIL && multiplier == 0.0f) + arg_ok = false; } if (!arg_ok) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/cmdline/parsed_cmd.c new/ddcutil-1.4.1/src/cmdline/parsed_cmd.c --- old/ddcutil-1.4.0/src/cmdline/parsed_cmd.c 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/cmdline/parsed_cmd.c 2023-01-16 18:53:56.000000000 +0100 @@ -1,7 +1,7 @@ /** @file parsed_cmd.c */ -// Copyright (C) 2014-2021 Sanford Rockowitz <rockow...@minsoft.com> +// Copyright (C) 2014-2023 Sanford Rockowitz <rockow...@minsoft.com> // SPDX-License-Identifier: GPL-2.0-or-later /** \cond */ @@ -114,6 +114,7 @@ // parsed_cmd->output_level = OL_DEFAULT; parsed_cmd->output_level = DDCA_OL_NORMAL; parsed_cmd->edid_read_size = -1; // if set, values are >= 0 + parsed_cmd->sleep_multiplier = 1.0; parsed_cmd->i1 = -1; // if set, values are >= 0 #ifdef OLD parsed_cmd->flags |= CMD_FLAG_NODETECT; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ddcutil-1.4.0/src/ddc/ddc_common_init.c new/ddcutil-1.4.1/src/ddc/ddc_common_init.c --- old/ddcutil-1.4.0/src/ddc/ddc_common_init.c 2023-01-12 13:51:19.000000000 +0100 +++ new/ddcutil-1.4.1/src/ddc/ddc_common_init.c 2023-01-16 18:53:56.000000000 +0100 @@ -1,4 +1,4 @@ -/** @file common_init.c +/** @file ddc_common_init.c * Initialization that must be performed very early by both ddcutil and libddcutil */ @@ -143,7 +143,10 @@ static void init_performance_options(Parsed_Cmd * parsed_cmd) { - // DBGMSG("deferred sleeps: %s", SBOOL(parsed_cmd->flags & CMD_FLAG_DEFER_SLEEPS)); + bool debug = false; + DBGTRC_STARTING(debug, DDCA_TRC_NONE, + "deferred sleeps: %s", SBOOL(parsed_cmd->flags & CMD_FLAG_DEFER_SLEEPS), + "sleep_multiplier: %5.2f", parsed_cmd->sleep_multiplier); enable_deferred_sleep( parsed_cmd->flags & CMD_FLAG_DEFER_SLEEPS); int threshold = DISPLAY_CHECK_ASYNC_NEVER; @@ -161,6 +164,7 @@ tsd_dsa_enable_globally(true); } } + DBGTRC_DONE(debug, DDCA_TRC_NONE, ""); } @@ -173,7 +177,7 @@ bool submaster_initializer(Parsed_Cmd * parsed_cmd) { bool debug = false; bool ok = false; - DBGMSF(debug, "Starting. parsed_cmd = %p", parsed_cmd); + DBGMSF(debug, "Starting parsed_cmd = %p", parsed_cmd); if (!init_failsim(parsed_cmd)) goto bye; // main_rc == EXIT_FAILURE @@ -181,7 +185,7 @@ init_ddc_services(); // n. initializes start timestamp // global variable in dyn_dynamic_features: enable_dynamic_features = parsed_cmd->flags & CMD_FLAG_ENABLE_UDF; - DBGMSF(debug, "Setting enable_dynamic_features = %s", sbool(enable_dynamic_features)); + DBGMSF(debug, " Setting enable_dynamic_features = %s", sbool(enable_dynamic_features)); if (parsed_cmd->edid_read_size >= 0) EDID_Read_Size = parsed_cmd->edid_read_size; suppress_se_post_read = parsed_cmd->flags & CMD_FLAG_F1; @@ -214,7 +218,7 @@ ok = true; bye: - DBGMSF(debug, "Done. Returning %s", sbool(ok)); + DBGMSF(debug, "Done Returning %s", sbool(ok)); return ok; }