diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 106efe1e2bab21b062757bdb0ea06d8fca306456..c2efe285396c4afbbb245f1cdccfd86479ce6956 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1669,6 +1669,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 			debugging driver suspend/resume hooks).  This may
 			not work reliably with all consoles, but is known
 			to work with serial and VGA consoles.
+			To facilitate more flexible debugging, we also add
+			console_suspend, a printk module parameter to control
+			it. Users could use console_suspend (usually
+			/sys/module/printk/parameters/console_suspend) to
+			turn on/off it dynamically.
 
 	noaliencache	[MM, NUMA, SLAB] Disables the allocation of alien
 			caches in the slab allocator.  Saves per-node memory,
diff --git a/kernel/printk.c b/kernel/printk.c
index e62f949ec14075fd11c0517c9f20514b8a4bc2d0..6d9dedd1145067c5dddcd376ff75d08d16464e8d 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -1111,6 +1111,10 @@ static int __init console_suspend_disable(char *str)
 	return 1;
 }
 __setup("no_console_suspend", console_suspend_disable);
+module_param_named(console_suspend, console_suspend_enabled,
+		bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(console_suspend, "suspend console during suspend"
+	" and hibernate operations");
 
 /**
  * suspend_console - suspend the console subsystem