1/*
2 *  linux/drivers/video/dummycon.c -- A dummy console driver
3 *
4 *  To be used if there's no other console driver (e.g. for plain VGA text)
5 *  available, usually until fbcon takes console over.
6 */
7
8#include <linux/types.h>
9#include <linux/kdev_t.h>
10#include <linux/console.h>
11#include <linux/vt_kern.h>
12#include <linux/screen_info.h>
13#include <linux/init.h>
14#include <linux/module.h>
15
16/*
17 *  Dummy console driver
18 */
19
20#if defined(__arm__)
21#define DUMMY_COLUMNS	ORIG_VIDEO_COLS
22#define DUMMY_ROWS	ORIG_VIDEO_LINES
23#elif defined(__hppa__)
24/* set by Kconfig. Use 80x25 for 640x480 and 160x64 for 1280x1024 */
25#define DUMMY_COLUMNS	CONFIG_DUMMY_CONSOLE_COLUMNS
26#define DUMMY_ROWS	CONFIG_DUMMY_CONSOLE_ROWS
27#else
28#define DUMMY_COLUMNS	80
29#define DUMMY_ROWS	25
30#endif
31
32static const char *dummycon_startup(void)
33{
34    return "dummy device";
35}
36
37static void dummycon_init(struct vc_data *vc, int init)
38{
39    vc->vc_can_do_color = 1;
40    if (init) {
41	vc->vc_cols = DUMMY_COLUMNS;
42	vc->vc_rows = DUMMY_ROWS;
43    } else
44	vc_resize(vc, DUMMY_COLUMNS, DUMMY_ROWS);
45}
46
47static int dummycon_dummy(void)
48{
49    return 0;
50}
51
52#define DUMMY	(void *)dummycon_dummy
53
54/*
55 *  The console `switch' structure for the dummy console
56 *
57 *  Most of the operations are dummies.
58 */
59
60const struct consw dummy_con = {
61    .owner =		THIS_MODULE,
62    .con_startup =	dummycon_startup,
63    .con_init =		dummycon_init,
64    .con_deinit =	DUMMY,
65    .con_clear =	DUMMY,
66    .con_putc =		DUMMY,
67    .con_putcs =	DUMMY,
68    .con_cursor =	DUMMY,
69    .con_scroll =	DUMMY,
70    .con_bmove =	DUMMY,
71    .con_switch =	DUMMY,
72    .con_blank =	DUMMY,
73    .con_font_set =	DUMMY,
74    .con_font_get =	DUMMY,
75    .con_font_default =	DUMMY,
76    .con_font_copy =	DUMMY,
77    .con_set_palette =	DUMMY,
78    .con_scrolldelta =	DUMMY,
79};
80