summaryrefslogtreecommitdiff
path: root/tests/modetest
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2013-03-01 02:28:42 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2013-08-05 14:21:44 +0200
commit6e0c74c5f8860748f03dad4548d3ef2cf2df5489 (patch)
treecd166a4b6facd1b514ed12d0e3582ee0e0720689 /tests/modetest
parent02fa8f79b05456184028f014432647b19601a288 (diff)
modetest: Don't limit mode set and planes to two instances
Configuring mode on more than two connectors or two planes is perfectly valid. Support it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'tests/modetest')
-rw-r--r--tests/modetest/modetest.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
index c047c365..48352c51 100644
--- a/tests/modetest/modetest.c
+++ b/tests/modetest/modetest.c
@@ -1067,8 +1067,8 @@ int main(int argc, char **argv)
char *module = NULL;
unsigned int i;
int count = 0, plane_count = 0;
- struct connector_arg con_args[2];
- struct plane_arg plane_args[2] = { { 0, }, };
+ struct connector_arg *con_args = NULL;
+ struct plane_arg *plane_args = NULL;
unsigned int args = 0;
opterr = 0;
@@ -1097,8 +1097,16 @@ int main(int argc, char **argv)
modes = 1;
break;
case 'P':
+ plane_args = realloc(plane_args,
+ (plane_count + 1) * sizeof *plane_args);
+ if (plane_args == NULL) {
+ fprintf(stderr, "memory allocation failed\n");
+ return 1;
+ }
+
if (parse_plane(&plane_args[plane_count], optarg) < 0)
usage(argv[0]);
+
plane_count++;
break;
case 'p':
@@ -1106,8 +1114,16 @@ int main(int argc, char **argv)
planes = 1;
break;
case 's':
+ con_args = realloc(con_args,
+ (count + 1) * sizeof *con_args);
+ if (con_args == NULL) {
+ fprintf(stderr, "memory allocation failed\n");
+ return 1;
+ }
+
if (parse_connector(&con_args[count], optarg) < 0)
usage(argv[0]);
+
count++;
break;
case 'v':