aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/Kconfig17
-rw-r--r--drivers/char/vt.c43
2 files changed, 44 insertions, 16 deletions
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index ed31638bd75c..3610c5729553 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -62,6 +62,23 @@ config HW_CONSOLE
62 depends on VT && !S390 && !UML 62 depends on VT && !S390 && !UML
63 default y 63 default y
64 64
65config VT_HW_CONSOLE_BINDING
66 bool "Support for binding and unbinding console drivers"
67 depends on HW_CONSOLE
68 default n
69 ---help---
70 The virtual terminal is the device that interacts with the physical
71 terminal through console drivers. On these systems, at least one
72 console driver is loaded. In other configurations, additional console
73 drivers may be enabled, such as the framebuffer console. If more than
74 1 console driver is enabled, setting this to 'y' will allow you to
75 select the console driver that will serve as the backend for the
76 virtual terminals.
77
78 See <file:Documentation/console/console.txt> for more
79 information. For framebuffer console users, please refer to
80 <file:Documentation/fb/fbcon.txt>.
81
65config SERIAL_NONSTANDARD 82config SERIAL_NONSTANDARD
66 bool "Non-standard serial port support" 83 bool "Non-standard serial port support"
67 ---help--- 84 ---help---
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index 037d8a3f5882..714d95ff2f1e 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -2691,22 +2691,6 @@ int __init vty_init(void)
2691 2691
2692static struct class *vtconsole_class; 2692static struct class *vtconsole_class;
2693 2693
2694static int con_is_graphics(const struct consw *csw, int first, int last)
2695{
2696 int i, retval = 0;
2697
2698 for (i = first; i <= last; i++) {
2699 struct vc_data *vc = vc_cons[i].d;
2700
2701 if (vc && vc->vc_mode == KD_GRAPHICS) {
2702 retval = 1;
2703 break;
2704 }
2705 }
2706
2707 return retval;
2708}
2709
2710static int bind_con_driver(const struct consw *csw, int first, int last, 2694static int bind_con_driver(const struct consw *csw, int first, int last,
2711 int deflt) 2695 int deflt)
2712{ 2696{
@@ -2808,6 +2792,23 @@ err:
2808 return retval; 2792 return retval;
2809}; 2793};
2810 2794
2795#ifdef CONFIG_VT_HW_CONSOLE_BINDING
2796static int con_is_graphics(const struct consw *csw, int first, int last)
2797{
2798 int i, retval = 0;
2799
2800 for (i = first; i <= last; i++) {
2801 struct vc_data *vc = vc_cons[i].d;
2802
2803 if (vc && vc->vc_mode == KD_GRAPHICS) {
2804 retval = 1;
2805 break;
2806 }
2807 }
2808
2809 return retval;
2810}
2811
2811static int unbind_con_driver(const struct consw *csw, int first, int last, 2812static int unbind_con_driver(const struct consw *csw, int first, int last,
2812 int deflt) 2813 int deflt)
2813{ 2814{
@@ -2984,6 +2985,16 @@ static int vt_unbind(struct con_driver *con)
2984err: 2985err:
2985 return 0; 2986 return 0;
2986} 2987}
2988#else
2989static inline int vt_bind(struct con_driver *con)
2990{
2991 return 0;
2992}
2993static inline int vt_unbind(struct con_driver *con)
2994{
2995 return 0;
2996}
2997#endif /* CONFIG_VT_HW_CONSOLE_BINDING */
2987 2998
2988static ssize_t store_bind(struct class_device *class_device, 2999static ssize_t store_bind(struct class_device *class_device,
2989 const char *buf, size_t count) 3000 const char *buf, size_t count)