From a60df14d8197b09319d6d23a5dcba75b679d13e4 Mon Sep 17 00:00:00 2001 From: GavinDarkglider <31815002+GavinDarkglider@users.noreply.github.com> Date: Wed, 17 Nov 2021 21:03:03 +0100 Subject: [PATCH] Lakka/Nintendo Switch: disable cpu scaling for Nintendo Switch Lakka on Nintendo Switch uses own cpu governor. Upstream of patch used by Lakka at build time https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-04-cpufreq-wip-disable-on-switch.patch --- driver.c | 4 ++++ menu/cbs/menu_cbs_left.c | 2 ++ menu/menu_driver.c | 4 ++++ retroarch.c | 4 ++++ 4 files changed, 14 insertions(+) diff --git a/driver.c b/driver.c index 8d9dddcf54..cc498e390f 100644 --- a/driver.c +++ b/driver.c @@ -668,9 +668,11 @@ void drivers_init( if (flags & DRIVER_MIDI_MASK) midi_driver_init(settings); +#ifndef HAVE_LAKKA_SWITCH #ifdef HAVE_LAKKA cpu_scaling_driver_init(); #endif +#endif /* #ifndef HAVE_LAKKA_SWITCH */ } void driver_uninit(int flags) @@ -755,9 +757,11 @@ void driver_uninit(int flags) if (flags & DRIVER_MIDI_MASK) midi_driver_free(); +#ifndef HAVE_LAKKA_SWITCH #ifdef HAVE_LAKKA cpu_scaling_driver_free(); #endif +#endif /* #ifndef HAVE_LAKKA_SWITCH */ } void retroarch_deinit_drivers(struct retro_callbacks *cbs) diff --git a/menu/cbs/menu_cbs_left.c b/menu/cbs/menu_cbs_left.c index 08a92fdce1..3d9ed590da 100644 --- a/menu/cbs/menu_cbs_left.c +++ b/menu/cbs/menu_cbs_left.c @@ -678,6 +678,7 @@ static int manual_content_scan_core_name_left(unsigned type, const char *label, return 0; } +#ifndef HAVE_LAKKA_SWITCH #ifdef HAVE_LAKKA static int cpu_policy_mode_change(unsigned type, const char *label, bool wraparound) @@ -792,6 +793,7 @@ static int cpu_policy_freq_tweak(unsigned type, const char *label, return 0; } #endif +#endif /* #ifndef HAVE_LAKKA_SWITCH */ static int core_setting_left(unsigned type, const char *label, bool wraparound) diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 87166738e6..ce94d3b8cc 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -6704,9 +6704,11 @@ void menu_driver_toggle( if (on) { +#ifndef HAVE_LAKKA_SWITCH #ifdef HAVE_LAKKA set_cpu_scaling_signal(CPUSCALING_EVENT_FOCUS_MENU); #endif +#endif /* #ifndef HAVE_LAKKA_SWITCH */ #ifdef HAVE_OVERLAY /* If an overlay was displayed before the toggle * and overlays are disabled in menu, need to @@ -6725,9 +6727,11 @@ void menu_driver_toggle( } else { +#ifndef HAVE_LAKKA_SWITCH #ifdef HAVE_LAKKA set_cpu_scaling_signal(CPUSCALING_EVENT_FOCUS_CORE); #endif +#endif /* #ifndef HAVE_LAKKA_SWITCH */ #ifdef HAVE_OVERLAY /* Inhibits pointer 'select' and 'cancel' actions * (until the next time 'select'/'cancel' are released) */ diff --git a/retroarch.c b/retroarch.c index 6773ccf923..3bd493ec05 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3626,15 +3626,19 @@ static void runloop_pause_checks(void) command_event(CMD_EVENT_DISCORD_UPDATE, &userdata); #endif +#ifndef HAVE_LAKKA_SWITCH #ifdef HAVE_LAKKA set_cpu_scaling_signal(CPUSCALING_EVENT_FOCUS_MENU); #endif +#endif /* #ifndef HAVE_LAKKA_SWITCH */ } else { +#ifndef HAVE_LAKKA_SWITCH #ifdef HAVE_LAKKA set_cpu_scaling_signal(CPUSCALING_EVENT_FOCUS_CORE); #endif +#endif /* #ifndef HAVE_LAKKA_SWITCH */ } #if defined(HAVE_TRANSLATE) && defined(HAVE_GFX_WIDGETS)