diff --git a/src/include/bootsplash.h b/src/include/bootsplash.h index f935476e44..9dffc28eb8 100644 --- a/src/include/bootsplash.h +++ b/src/include/bootsplash.h @@ -31,6 +31,7 @@ void set_bootsplash(unsigned char *framebuffer, unsigned int x_resolution, */ const char *bmp_logo_filename(void); void *bmp_load_logo(size_t *logo_size); +void *bmp_load_logo_by_type(enum bootsplash_type type, size_t *logo_size); void bmp_release_logo(void); /* * Platform specific callbacks for power-off handling. diff --git a/src/lib/bmp_logo.c b/src/lib/bmp_logo.c index 9822ca00f3..b62cb867fa 100644 --- a/src/lib/bmp_logo.c +++ b/src/lib/bmp_logo.c @@ -29,11 +29,9 @@ static const char *bmp_get_logo_filename(enum bootsplash_type type) return bootsplash_list[type]; } -void *bmp_load_logo(size_t *logo_size) +void *bmp_load_logo_by_type(enum bootsplash_type type, size_t *logo_size) { void *logo_buffer; - const char *logo_name; - enum bootsplash_type type = BOOTSPLASH_CENTER; /* CBMEM is locked for S3 resume path. */ if (acpi_is_wakeup_s3()) @@ -47,18 +45,23 @@ void *bmp_load_logo(size_t *logo_size) if (!logo_buffer) return NULL; - if (platform_is_low_battery_shutdown_needed()) - type = BOOTSPLASH_LOW_BATTERY; - - logo_name = bmp_get_logo_filename(type); - - *logo_size = cbfs_load(logo_name, logo_buffer, 1 * MiB); + *logo_size = cbfs_load(bmp_get_logo_filename(type), logo_buffer, 1 * MiB); if (*logo_size == 0) return NULL; return logo_buffer; } +void *bmp_load_logo(size_t *logo_size) +{ + enum bootsplash_type type = BOOTSPLASH_CENTER; + + if (platform_is_low_battery_shutdown_needed()) + type = BOOTSPLASH_LOW_BATTERY; + + return bmp_load_logo_by_type(type, logo_size); +} + void bmp_release_logo(void) { if (logo_entry)