mirror of
https://github.com/FeralInteractive/gamemode.git
synced 2025-08-07 05:38:30 +02:00
Prevent platform profile error on unsupported systems
If a system does not support setting the platform profile (i.e., does not have the file /sys/firmware/acpi/platform_profile), then everything that interacts with it is skipped to prevent errors. This situation is more common than I expected.[1] [1] https://github.com/FeralInteractive/gamemode/issues/524
This commit is contained in:

committed by
afayaz-feral

parent
5f691c3171
commit
499af4c7bb
@@ -317,7 +317,7 @@ static int game_mode_set_governor(GameModeContext *self, enum GameModeGovernor g
|
||||
|
||||
static void game_mode_store_profile(GameModeContext *self)
|
||||
{
|
||||
if (self->current_profile != GAME_MODE_PROFILE_DEFAULT)
|
||||
if (!profile_exists() || self->current_profile != GAME_MODE_PROFILE_DEFAULT)
|
||||
return;
|
||||
|
||||
const char *initial_state = get_profile_state();
|
||||
@@ -335,6 +335,11 @@ static int game_mode_set_profile(GameModeContext *self, enum GameModeProfile pro
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!profile_exists()) {
|
||||
LOG_MSG("Setting platform profile unsupported; skipping\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *prof_str = NULL;
|
||||
char prof_config_str[CONFIG_VALUE_MAX] = { 0 };
|
||||
switch (prof) {
|
||||
|
@@ -361,6 +361,9 @@ static int run_cpu_governor_tests(struct GameModeConfig *config)
|
||||
/* Check the platform profile setting works */
|
||||
static int run_platform_profile_tests(struct GameModeConfig *config)
|
||||
{
|
||||
if (!profile_exists())
|
||||
return 1;
|
||||
|
||||
/* get the two config parameters we care about */
|
||||
char desiredprof[CONFIG_VALUE_MAX] = { 0 };
|
||||
config_get_desired_profile(config, desiredprof);
|
||||
@@ -866,15 +869,17 @@ static int game_mode_run_feature_tests(struct GameModeConfig *config)
|
||||
{
|
||||
LOG_MSG("::: Verifying platform profile setting\n");
|
||||
|
||||
int govstatus = run_platform_profile_tests(config);
|
||||
int profstatus = run_platform_profile_tests(config);
|
||||
|
||||
if (govstatus == 0)
|
||||
if (profstatus == 1)
|
||||
LOG_MSG("::: Passed (platform profile not supported)\n");
|
||||
else if (profstatus == 0)
|
||||
LOG_MSG("::: Passed\n");
|
||||
else {
|
||||
LOG_MSG("::: Failed!\n");
|
||||
LOG_MSG(" -- You may need to add your user to the gamemode group:");
|
||||
LOG_MSG(" -- $ sudo usermod -aG gamemode $(whoami)");
|
||||
// Consider the platform profile feature requried
|
||||
// If available, setting the platform profile should work
|
||||
status = -1;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user