diff options
author | Neil Armstrong <neil.armstrong@linaro.org> | 2023-01-18 14:28:35 +0100 |
---|---|---|
committer | Dmitry Baryshkov <dbaryshkov@gmail.com> | 2023-11-15 09:11:48 +0000 |
commit | 6acadd495c30678f603c69b8bca456aa3cc8bf38 (patch) | |
tree | 879f49a102ab27a7af43b5ad8af50104aa0598a9 | |
parent | a0b011439d44e7d79ffed6dd2d372e60dc7f3b1b (diff) | |
download | libdrm-6acadd495c30678f603c69b8bca456aa3cc8bf38.tar.gz libdrm-6acadd495c30678f603c69b8bca456aa3cc8bf38.tar.bz2 libdrm-6acadd495c30678f603c69b8bca456aa3cc8bf38.zip |
modetest: switch usage to proper options grammar
It was unclear how #mode could be used, so fixup the usage string and print
the struct grammar of the -s and -P options to clarify the usage.
The following grammar was compiled:
<plane_topology> ::= <plane_id> "@" <crtc_id> ":" <width> "x" <height> ( <plane_offsets> )?
<plane_offsets> ::= "+" <x_offset> "+" <y_offset> ( <plane_scale> )?
<plane_scale> ::= "*" <scale> ( <plane_format> )?
<plane_format> ::= "@" <format>
<mode_topology> ::= <connector_id> ( "," <connector_id> )* ( "@" <crtc_id> )? ":" <mode_selection> ( "@" <format> )?
<mode_selection> ::= <indexed_mode> | <named_mode> | <custom_mode>
<indexed_mode> ::= "#" <mode_index>
<named_mode> ::= <width> "x" <height> ( "-" <vrefresh> )?
<custom_mode> ::= <hdisplay> "," <hsyncstart> "," <hsyncend> "," <htotal> "," <vdisplay> "," <vsyncstart> "," <vsyncend> "," <vtotal> "-" <vrefresh>
<property> ::= <object_id> ":" <property_name> ":" <value>
<plane_id> ::= [0-9]+
<crtc_id> ::= [0-9]+
<width> ::= [0-9]+
<height> ::= [0-9]+
<x_offset> ::= [0-9]+
<y_offset> ::= [0-9]+
<scale> ::= [0-9]+ ( "." [0-9]+ )
<format> ::= ( [A-Z] | [0-9] )+
<connector_id> ::= [0-9]+
<mode_index> ::= [0-9]+
<hdisplay> ::= [0-9]+
<hsyncstart> ::= [0-9]+
<hsyncend> ::= [0-9]+
<htotal> ::= [0-9]+
<vdisplay> ::= [0-9]+
<vsyncstart> ::= [0-9]+
<vsyncend> ::= [0-9]+
<vtotal> ::= [0-9]+
<object_id> ::= [0-9]+
<vrefresh> ::= [0-9]+
<property_name> ::= ( [A-Z] | [0-9] | "_" )+
<value> ::= [0-9]+
with the https://bnfplayground.pauliankline.com/ service
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
-rw-r--r-- | tests/modetest/modetest.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c index cc96015f..d9e761e6 100644 --- a/tests/modetest/modetest.c +++ b/tests/modetest/modetest.c @@ -2137,13 +2137,16 @@ static void usage(char *name) fprintf(stderr, "\t-p\tlist CRTCs and planes (pipes)\n"); fprintf(stderr, "\n Test options:\n\n"); - fprintf(stderr, "\t-P <plane_id>@<crtc_id>:<w>x<h>[+<x>+<y>][*<scale>][@<format>]\tset a plane\n"); - fprintf(stderr, "\t-s <connector_id>[,<connector_id>][@<crtc_id>]:[#<mode index>]<mode>[-<vrefresh>][@<format>]\tset a mode\n"); - fprintf(stderr, "\t\tcustom mode can be specified as <hdisplay>,<hsyncstart>,<hsyncend>,<htotal>,<vdisplay>,<vsyncstart>,<vsyncend>,<vtotal>\n"); + fprintf(stderr, "\t-P <plane_id>@<crtc_id>:<w>x<h>[+<x>+<y>][*<scale>][@<format>]\tset a plane, see 'plane-topology'\n"); + fprintf(stderr, "\t-s <connector_id>[,<connector_id>][@<crtc_id>]:mode[@<format>]\tset a mode, see 'mode-topology'\n"); + fprintf(stderr, "\t\twhere mode can be specified as:\n"); + fprintf(stderr, "\t\t<hdisp>x<vdisp>[-<vrefresh>]\n"); + fprintf(stderr, "\t\t<hdisp>,<hss>,<hse>,<htot>,<vdisp>,<vss>,<vse>,<vtot>-<vrefresh>\n"); + fprintf(stderr, "\t\t#<mode index>\n"); fprintf(stderr, "\t-C\ttest hw cursor\n"); fprintf(stderr, "\t-v\ttest vsynced page flipping\n"); fprintf(stderr, "\t-r\tset the preferred mode for all connectors\n"); - fprintf(stderr, "\t-w <obj_id>:<prop_name>:<value>\tset property\n"); + fprintf(stderr, "\t-w <obj_id>:<prop_name>:<value>\tset property, see 'property'\n"); fprintf(stderr, "\t-a \tuse atomic API\n"); fprintf(stderr, "\t-F pattern1,pattern2\tspecify fill patterns\n"); fprintf(stderr, "\t-o <desired file path> \t Dump writeback output buffer to file\n"); @@ -2154,6 +2157,25 @@ static void usage(char *name) fprintf(stderr, "\t-D device\tuse the given device\n"); fprintf(stderr, "\n\tDefault is to dump all info.\n"); + + fprintf(stderr, "\n"); + fprintf(stderr, "Plane Topology is defined as:\n"); + fprintf(stderr, "\tplane-topology\t::= plane-id '@' crtc-id ':' width 'x' height ( <plane-offsets> )? ;\n"); + fprintf(stderr, "\tplane-offsets\t::= '+' x-offset '+' y-offset ( <plane-scale> )? ;\n"); + fprintf(stderr, "\tplane-scale\t::= '*' scale ( <plane-format> )? ;\n"); + fprintf(stderr, "\tplane-format\t::= '@' format ;\n"); + + fprintf(stderr, "\n"); + fprintf(stderr, "Mode Topology is defined as:\n"); + fprintf(stderr, "\tmode-topology\t::= connector-id ( ',' connector-id )* ( '@' crtc-id )? ':' <mode-selection> ( '@' format )? ;\n"); + fprintf(stderr, "\tmode-selection\t::= <indexed-mode> | <named-mode> | <custom-mode> ;\n"); + fprintf(stderr, "\tindexed-mode\t::= '#' mode-index ;\n"); + fprintf(stderr, "\tnamed-mode\t::= width 'x' height ( '-' vrefresh )? ;\n"); + fprintf(stderr, "\tcustom-mode\t::= hdisplay ',' hsyncstart ',' hsyncend ',' htotal ',' vdisplay ',' vsyncstart ',' vsyncend ',' vtotal '-' vrefresh ;\n"); + + fprintf(stderr, "\n"); + fprintf(stderr, "Property is defined as:\n"); + fprintf(stderr, "\tproperty\t::= object-id ':' property-name ':' value ;\n"); exit(0); } |