drivers/gpu/drm/tests/drm_cmdline_parser_test.c
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/tests/drm_cmdline_parser_test.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/tests/drm_cmdline_parser_test.c- Extension
.c- Size
- 34735 bytes
- Lines
- 1080
- Domain
- Driver Families
- Bucket
- drivers/gpu
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
kunit/test.hdrm/drm_connector.hdrm/drm_kunit_helpers.hdrm/drm_modes.h
Detected Declarations
struct drm_cmdline_invalid_teststruct drm_cmdline_tv_option_testfunction drm_test_cmdline_force_e_onlyfunction drm_test_cmdline_force_D_only_not_digitalfunction drm_test_cmdline_force_D_only_hdmifunction drm_test_cmdline_force_D_only_dvifunction drm_test_cmdline_force_d_onlyfunction drm_test_cmdline_resfunction drm_test_cmdline_res_vesafunction drm_test_cmdline_res_vesa_rblankfunction drm_test_cmdline_res_rblankfunction drm_test_cmdline_res_bppfunction drm_test_cmdline_res_refreshfunction drm_test_cmdline_res_bpp_refreshfunction drm_test_cmdline_res_bpp_refresh_interlacedfunction drm_test_cmdline_res_bpp_refresh_marginsfunction drm_test_cmdline_res_bpp_refresh_force_offfunction drm_test_cmdline_res_bpp_refresh_force_onfunction drm_test_cmdline_res_bpp_refresh_force_on_analogfunction drm_test_cmdline_res_bpp_refresh_force_on_digitalfunction drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_onfunction drm_test_cmdline_res_margins_force_onfunction drm_test_cmdline_res_vesa_marginsfunction drm_test_cmdline_namefunction drm_test_cmdline_name_bppfunction drm_test_cmdline_name_optionfunction drm_test_cmdline_name_bpp_optionfunction drm_test_cmdline_rotate_0function drm_test_cmdline_rotate_90function drm_test_cmdline_rotate_180function drm_test_cmdline_rotate_270function drm_test_cmdline_hmirrorfunction drm_test_cmdline_vmirrorfunction drm_test_cmdline_margin_optionsfunction drm_test_cmdline_multiple_optionsfunction drm_test_cmdline_bpp_extra_and_optionfunction drm_test_cmdline_extra_and_optionfunction drm_test_cmdline_freestanding_optionsfunction drm_test_cmdline_freestanding_force_e_and_optionsfunction drm_test_cmdline_panel_orientationfunction drm_test_cmdline_invalidfunction drm_cmdline_invalid_descfunction drm_test_cmdline_tv_optionsfunction drm_cmdline_tv_option_desc
Annotated Snippet
struct drm_cmdline_invalid_test {
const char *name;
const char *cmdline;
};
static void drm_test_cmdline_invalid(struct kunit *test)
{
const struct drm_cmdline_invalid_test *params = test->param_value;
struct drm_cmdline_mode mode = { };
KUNIT_EXPECT_FALSE(test, drm_mode_parse_command_line_for_connector(params->cmdline,
&no_connector,
&mode));
}
static const struct drm_cmdline_invalid_test drm_cmdline_invalid_tests[] = {
{
.name = "margin_only",
.cmdline = "m",
},
{
.name = "interlace_only",
.cmdline = "i",
},
{
.name = "res_missing_x",
.cmdline = "x480",
},
{
.name = "res_missing_y",
.cmdline = "1024x",
},
{
.name = "res_bad_y",
.cmdline = "1024xtest",
},
{
.name = "res_missing_y_bpp",
.cmdline = "1024x-24",
},
{
.name = "res_bad_bpp",
.cmdline = "720x480-test",
},
{
.name = "res_bad_refresh",
.cmdline = "720x480@refresh",
},
{
.name = "res_bpp_refresh_force_on_off",
.cmdline = "720x480-24@60de",
},
{
.name = "res_invalid_mode",
.cmdline = "720x480f",
},
{
.name = "res_bpp_wrong_place_mode",
.cmdline = "720x480e-24",
},
{
.name = "name_bpp_refresh",
.cmdline = "NTSC-24@60",
},
{
.name = "name_refresh",
.cmdline = "NTSC@60",
},
{
.name = "name_refresh_wrong_mode",
.cmdline = "NTSC@60m",
},
{
.name = "name_refresh_invalid_mode",
.cmdline = "NTSC@60f",
},
{
.name = "rotate_multiple",
.cmdline = "720x480,rotate=0,rotate=90",
},
{
.name = "rotate_invalid_val",
.cmdline = "720x480,rotate=42",
},
{
.name = "rotate_truncated",
.cmdline = "720x480,rotate=",
},
{
.name = "invalid_option",
Annotation
- Immediate include surface: `kunit/test.h`, `drm/drm_connector.h`, `drm/drm_kunit_helpers.h`, `drm/drm_modes.h`.
- Detected declarations: `struct drm_cmdline_invalid_test`, `struct drm_cmdline_tv_option_test`, `function drm_test_cmdline_force_e_only`, `function drm_test_cmdline_force_D_only_not_digital`, `function drm_test_cmdline_force_D_only_hdmi`, `function drm_test_cmdline_force_D_only_dvi`, `function drm_test_cmdline_force_d_only`, `function drm_test_cmdline_res`, `function drm_test_cmdline_res_vesa`, `function drm_test_cmdline_res_vesa_rblank`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.