aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/selftests/test-drm_cmdline_parser.c')
-rw-r--r--drivers/gpu/drm/selftests/test-drm_cmdline_parser.c130
1 files changed, 130 insertions, 0 deletions
diff --git a/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c b/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c
index 14c96edb13df..013de9d27c35 100644
--- a/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c
+++ b/drivers/gpu/drm/selftests/test-drm_cmdline_parser.c
@@ -17,6 +17,136 @@
17 17
18static const struct drm_connector no_connector = {}; 18static const struct drm_connector no_connector = {};
19 19
20static int drm_cmdline_test_force_e_only(void *ignored)
21{
22 struct drm_cmdline_mode mode = { };
23
24 FAIL_ON(!drm_mode_parse_command_line_for_connector("e",
25 &no_connector,
26 &mode));
27 FAIL_ON(mode.specified);
28 FAIL_ON(mode.refresh_specified);
29 FAIL_ON(mode.bpp_specified);
30
31 FAIL_ON(mode.rb);
32 FAIL_ON(mode.cvt);
33 FAIL_ON(mode.interlace);
34 FAIL_ON(mode.margins);
35 FAIL_ON(mode.force != DRM_FORCE_ON);
36
37 return 0;
38}
39
40static int drm_cmdline_test_force_D_only_not_digital(void *ignored)
41{
42 struct drm_cmdline_mode mode = { };
43
44 FAIL_ON(!drm_mode_parse_command_line_for_connector("D",
45 &no_connector,
46 &mode));
47 FAIL_ON(mode.specified);
48 FAIL_ON(mode.refresh_specified);
49 FAIL_ON(mode.bpp_specified);
50
51 FAIL_ON(mode.rb);
52 FAIL_ON(mode.cvt);
53 FAIL_ON(mode.interlace);
54 FAIL_ON(mode.margins);
55 FAIL_ON(mode.force != DRM_FORCE_ON);
56
57 return 0;
58}
59
60static const struct drm_connector connector_hdmi = {
61 .connector_type = DRM_MODE_CONNECTOR_HDMIB,
62};
63
64static int drm_cmdline_test_force_D_only_hdmi(void *ignored)
65{
66 struct drm_cmdline_mode mode = { };
67
68 FAIL_ON(!drm_mode_parse_command_line_for_connector("D",
69 &connector_hdmi,
70 &mode));
71 FAIL_ON(mode.specified);
72 FAIL_ON(mode.refresh_specified);
73 FAIL_ON(mode.bpp_specified);
74
75 FAIL_ON(mode.rb);
76 FAIL_ON(mode.cvt);
77 FAIL_ON(mode.interlace);
78 FAIL_ON(mode.margins);
79 FAIL_ON(mode.force != DRM_FORCE_ON_DIGITAL);
80
81 return 0;
82}
83
84static const struct drm_connector connector_dvi = {
85 .connector_type = DRM_MODE_CONNECTOR_DVII,
86};
87
88static int drm_cmdline_test_force_D_only_dvi(void *ignored)
89{
90 struct drm_cmdline_mode mode = { };
91
92 FAIL_ON(!drm_mode_parse_command_line_for_connector("D",
93 &connector_dvi,
94 &mode));
95 FAIL_ON(mode.specified);
96 FAIL_ON(mode.refresh_specified);
97 FAIL_ON(mode.bpp_specified);
98
99 FAIL_ON(mode.rb);
100 FAIL_ON(mode.cvt);
101 FAIL_ON(mode.interlace);
102 FAIL_ON(mode.margins);
103 FAIL_ON(mode.force != DRM_FORCE_ON_DIGITAL);
104
105 return 0;
106}
107
108static int drm_cmdline_test_force_d_only(void *ignored)
109{
110 struct drm_cmdline_mode mode = { };
111
112 FAIL_ON(!drm_mode_parse_command_line_for_connector("d",
113 &no_connector,
114 &mode));
115 FAIL_ON(mode.specified);
116 FAIL_ON(mode.refresh_specified);
117 FAIL_ON(mode.bpp_specified);
118
119 FAIL_ON(mode.rb);
120 FAIL_ON(mode.cvt);
121 FAIL_ON(mode.interlace);
122 FAIL_ON(mode.margins);
123 FAIL_ON(mode.force != DRM_FORCE_OFF);
124
125 return 0;
126}
127
128static int drm_cmdline_test_margin_only(void *ignored)
129{
130 struct drm_cmdline_mode mode = { };
131
132 FAIL_ON(drm_mode_parse_command_line_for_connector("m",
133 &no_connector,
134 &mode));
135
136 return 0;
137}
138
139static int drm_cmdline_test_interlace_only(void *ignored)
140{
141 struct drm_cmdline_mode mode = { };
142
143 FAIL_ON(drm_mode_parse_command_line_for_connector("i",
144 &no_connector,
145 &mode));
146
147 return 0;
148}
149
20static int drm_cmdline_test_res(void *ignored) 150static int drm_cmdline_test_res(void *ignored)
21{ 151{
22 struct drm_cmdline_mode mode = { }; 152 struct drm_cmdline_mode mode = { };