diff -ru src.orig/suspend-0.8/fbsplash_funcs.c src/suspend-0.8/fbsplash_funcs.c --- src.orig/suspend-0.8/fbsplash_funcs.c 2007-12-31 19:50:12.000000000 +0100 +++ src/suspend-0.8/fbsplash_funcs.c 2009-07-01 09:51:00.479217981 +0200 @@ -26,13 +26,13 @@ extern char fbsplash_theme[]; static struct fbspl_theme *theme; +static fbspl_cfg_t *cfg; static int was_silent; static int have_input; static int force_verbose; int fbsplashfuncs_open(int mode) { - fbspl_cfg_t *cfg; int have_render = 0; int ret = 0; @@ -70,7 +70,7 @@ fbsplashr_message_set(theme, (mode==SPL_RESUME) ? "Resuming..." : "Suspending..." ); - fbsplashr_render_screen(theme, true, false, was_silent ? FBSPL_EFF_NONE : FBSPL_EFF_FADEIN); + fbsplashr_render_screen(theme, true, false, was_silent ? FBSPL_EFF_NONE : FBSPL_EFF_FADEIN & cfg->effects); have_input = !fbsplashr_input_init(); @@ -104,7 +104,7 @@ } if (fbsplash_is_silent()) { - fbsplashr_render_screen(theme, true, false, was_silent ? FBSPL_EFF_NONE : FBSPL_EFF_FADEOUT); + fbsplashr_render_screen(theme, true, false, was_silent ? FBSPL_EFF_NONE : FBSPL_EFF_FADEOUT & cfg->effects); } fbsplashr_tty_silent_cleanup(); @@ -117,6 +117,7 @@ fbsplashr_cleanup(); fbsplash_lib_cleanup(); + cfg = NULL; return 0; } diff -ru src.orig/suspend-0.8/suspend.c src/suspend-0.8/suspend.c --- src.orig/suspend-0.8/suspend.c 2007-12-31 19:50:12.000000000 +0100 +++ src/suspend-0.8/suspend.c 2009-07-01 09:56:01.365853572 +0200 @@ -799,8 +799,6 @@ static void suspend_shutdown(int snapshot_fd) { - splash.set_caption("Done."); - if (shutdown_method == SHUTDOWN_METHOD_REBOOT) { reboot(); } else if (shutdown_method == SHUTDOWN_METHOD_PLATFORM) { @@ -884,6 +882,8 @@ break; } else { splash.progress(100); + splash.set_caption("Done."); + splash.finish(); #ifdef CONFIG_BOTH if (s2ram) { /* If we die (and allow system to continue) @@ -1594,6 +1594,11 @@ ret = suspend_system(snapshot_fd, resume_fd); + /* Set progress back to where suspend started after resume for fadeout + * We don't set this to 100 because we use reverse progress bars + */ + splash.progress(0); + if (orig_loglevel >= 0) set_kernel_console_loglevel(orig_loglevel);