+ case 'o':
+ pipe_args->dump = true;
+ dump_path = optarg;
+ break;
case 'P':
plane_args = realloc(plane_args,
(plane_count + 1) * sizeof *plane_args);
@@ -2098,6 +2173,7 @@ int main(int argc, char **argv)
crtcs = 1;
planes = 1;
break;
+ case 'x':
case 's':
pipe_args = realloc(pipe_args,
(count + 1) * sizeof *pipe_args);
@@ -2109,7 +2185,7 @@ int main(int argc, char **argv)
if (parse_connector(&pipe_args[count], optarg) < 0)
usage(argv[0]);
-
+ pipe_args->custom = (c == 'x');
count++;
break;
case 'C':
@@ -2165,6 +2241,7 @@ int main(int argc, char **argv)
if (use_atomic) {
ret = drmSetClientCap(dev.fd, DRM_CLIENT_CAP_ATOMIC, 1);
+ drmSetClientCap(dev.fd, DRM_CLIENT_CAP_WRITEBACK_CONNECTORS, 1);
if (ret) {
fprintf(stderr, "no atomic modesetting support: %s\n", strerror(errno));
drmClose(dev.fd);
@@ -2208,6 +2285,8 @@ int main(int argc, char **argv)
if (set_preferred || count)
set_mode(&dev, pipe_args, count);
+ writeback_config(&dev, pipe_args, count);
+
if (plane_count)
atomic_set_planes(&dev, plane_args, plane_count, false);
@@ -2217,6 +2296,13 @@ int main(int argc, char **argv)
return 1;
}