diff options
Diffstat (limited to '0015-bootsplash.patch')
-rw-r--r-- | 0015-bootsplash.patch | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/0015-bootsplash.patch b/0015-bootsplash.patch deleted file mode 100644 index 8e87eb463187..000000000000 --- a/0015-bootsplash.patch +++ /dev/null @@ -1,129 +0,0 @@ -diff --git a/Documentation/ABI/testing/sysfs-platform-bootsplash b/Documentation/ABI/testing/sysfs-platform-bootsplash -index 742c7b035ded..f8f4b259220e 100644 ---- a/Documentation/ABI/testing/sysfs-platform-bootsplash -+++ b/Documentation/ABI/testing/sysfs-platform-bootsplash -@@ -9,3 +9,35 @@ Description: - 1: Splash is shown whenever fbcon would show a text console - (i.e. no graphical application is running), and a splash - file is loaded. -+ -+What: /sys/devices/platform/bootsplash.0/drop_splash -+Date: Oct 2017 -+KernelVersion: 4.14 -+Contact: Max Staudt <mstaudt@suse.de> -+Description: -+ Can only be set. -+ -+ Any value written will cause the current splash theme file -+ to be unloaded and the text console to be redrawn. -+ -+What: /sys/devices/platform/bootsplash.0/load_file -+Date: Oct 2017 -+KernelVersion: 4.14 -+Contact: Max Staudt <mstaudt@suse.de> -+Description: -+ Can only be set. -+ -+ Any value written will cause the splash to be disabled and -+ internal memory structures to be freed. -+ -+ A firmware path written will cause a new theme file to be -+ loaded and the current bootsplash to be replaced. -+ The current enabled/disabled status is not touched. -+ If the splash is already active, it will be redrawn. -+ -+ The path has to be a path in /lib/firmware since -+ request_firmware() is used to fetch the data. -+ -+ When setting the splash from the shell, echo -n has to be -+ used as any trailing '\n' newline will be interpreted as -+ part of the path. -diff --git a/Documentation/bootsplash.rst b/Documentation/bootsplash.rst -index 611f0c558925..b35aba5093e8 100644 ---- a/Documentation/bootsplash.rst -+++ b/Documentation/bootsplash.rst -@@ -67,6 +67,14 @@ sysfs run-time configuration - a splash theme file is also loaded. - - -+``/sys/devices/platform/bootsplash.0/drop_splash`` -+ Unload splash data and free memory. -+ -+``/sys/devices/platform/bootsplash.0/load_file`` -+ Load a splash file from ``/lib/firmware/``. -+ Note that trailing newlines will be interpreted as part of the file name. -+ -+ - - Kconfig - ======= -diff --git a/drivers/video/fbdev/core/bootsplash.c b/drivers/video/fbdev/core/bootsplash.c -index 13fcaabbc2ca..16cb0493629d 100644 ---- a/drivers/video/fbdev/core/bootsplash.c -+++ b/drivers/video/fbdev/core/bootsplash.c -@@ -251,11 +251,65 @@ static ssize_t splash_store_enabled(struct device *device, - return count; - } - -+static ssize_t splash_store_drop_splash(struct device *device, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ struct splash_file_priv *fp; -+ -+ if (!buf || !count || !splash_state.file) -+ return count; -+ -+ mutex_lock(&splash_state.data_lock); -+ fp = splash_state.file; -+ splash_state.file = NULL; -+ mutex_unlock(&splash_state.data_lock); -+ -+ /* Redraw the text console */ -+ schedule_work(&splash_state.work_redraw_vc); -+ -+ bootsplash_free_file(fp); -+ -+ return count; -+} -+ -+static ssize_t splash_store_load_file(struct device *device, -+ struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ struct splash_file_priv *fp, *fp_old; -+ -+ if (!count) -+ return 0; -+ -+ fp = bootsplash_load_firmware(&splash_state.splash_device->dev, -+ buf); -+ -+ if (!fp) -+ return -ENXIO; -+ -+ mutex_lock(&splash_state.data_lock); -+ fp_old = splash_state.file; -+ splash_state.splash_fb = NULL; -+ splash_state.file = fp; -+ mutex_unlock(&splash_state.data_lock); -+ -+ /* Update the splash or text console */ -+ schedule_work(&splash_state.work_redraw_vc); -+ -+ bootsplash_free_file(fp_old); -+ return count; -+} -+ - static DEVICE_ATTR(enabled, 0644, splash_show_enabled, splash_store_enabled); -+static DEVICE_ATTR(drop_splash, 0200, NULL, splash_store_drop_splash); -+static DEVICE_ATTR(load_file, 0200, NULL, splash_store_load_file); - - - static struct attribute *splash_dev_attrs[] = { - &dev_attr_enabled.attr, -+ &dev_attr_drop_splash.attr, -+ &dev_attr_load_file.attr, - NULL - }; - |