xref: /openbmc/linux/Documentation/gpu/dp-mst/topology-figure-3.dot (revision 597473720f4dc69749542bfcfed4a927a43d935e)
1*ebcc0e6bSLyude Pauldigraph T {
2*ebcc0e6bSLyude Paul    /* Make sure our payloads are always drawn below the driver node */
3*ebcc0e6bSLyude Paul    subgraph cluster_driver {
4*ebcc0e6bSLyude Paul        fillcolor = grey;
5*ebcc0e6bSLyude Paul        style = filled;
6*ebcc0e6bSLyude Paul        edge [dir=none];
7*ebcc0e6bSLyude Paul        driver -> payload1;
8*ebcc0e6bSLyude Paul        driver -> payload2 [penwidth=3];
9*ebcc0e6bSLyude Paul        edge [dir=""];
10*ebcc0e6bSLyude Paul    }
11*ebcc0e6bSLyude Paul
12*ebcc0e6bSLyude Paul    /* Driver malloc references */
13*ebcc0e6bSLyude Paul    edge [style=dashed];
14*ebcc0e6bSLyude Paul    driver -> port1;
15*ebcc0e6bSLyude Paul    driver -> port2;
16*ebcc0e6bSLyude Paul    driver -> port3:e;
17*ebcc0e6bSLyude Paul    driver -> port4 [color=grey];
18*ebcc0e6bSLyude Paul    payload1:s -> port1:e;
19*ebcc0e6bSLyude Paul    payload2:s -> port3:e [penwidth=3];
20*ebcc0e6bSLyude Paul    edge [style=""];
21*ebcc0e6bSLyude Paul
22*ebcc0e6bSLyude Paul    subgraph cluster_topology {
23*ebcc0e6bSLyude Paul        label="Topology Manager";
24*ebcc0e6bSLyude Paul        labelloc=bottom;
25*ebcc0e6bSLyude Paul
26*ebcc0e6bSLyude Paul        /* Topology references */
27*ebcc0e6bSLyude Paul        mstb1 -> {port1, port2};
28*ebcc0e6bSLyude Paul        port1 -> mstb2;
29*ebcc0e6bSLyude Paul        edge [color=grey];
30*ebcc0e6bSLyude Paul        port2 -> mstb3 -> {port3, port4};
31*ebcc0e6bSLyude Paul        port3 -> mstb4;
32*ebcc0e6bSLyude Paul        edge [color=""];
33*ebcc0e6bSLyude Paul
34*ebcc0e6bSLyude Paul        /* Malloc references */
35*ebcc0e6bSLyude Paul        edge [style=dashed;dir=back];
36*ebcc0e6bSLyude Paul        mstb1 -> {port1, port2};
37*ebcc0e6bSLyude Paul        port1 -> mstb2;
38*ebcc0e6bSLyude Paul        port2 -> mstb3 [penwidth=3];
39*ebcc0e6bSLyude Paul        mstb3 -> port3 [penwidth=3];
40*ebcc0e6bSLyude Paul        edge [color=grey];
41*ebcc0e6bSLyude Paul        mstb3 -> port4;
42*ebcc0e6bSLyude Paul        port3 -> mstb4;
43*ebcc0e6bSLyude Paul    }
44*ebcc0e6bSLyude Paul
45*ebcc0e6bSLyude Paul    mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen];
46*ebcc0e6bSLyude Paul    mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen];
47*ebcc0e6bSLyude Paul    mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen;penwidth=3];
48*ebcc0e6bSLyude Paul    mstb4 [label="MSTB #4";style=filled;fillcolor=grey];
49*ebcc0e6bSLyude Paul
50*ebcc0e6bSLyude Paul    port1 [label="Port #1"];
51*ebcc0e6bSLyude Paul    port2 [label="Port #2";penwidth=5];
52*ebcc0e6bSLyude Paul    port3 [label="Port #3";penwidth=3];
53*ebcc0e6bSLyude Paul    port4 [label="Port #4";style=filled;fillcolor=grey];
54*ebcc0e6bSLyude Paul
55*ebcc0e6bSLyude Paul    driver [label="DRM driver";style=filled;shape=box;fillcolor=lightblue];
56*ebcc0e6bSLyude Paul
57*ebcc0e6bSLyude Paul    payload1 [label="Payload #1";style=filled;shape=box;fillcolor=lightblue];
58*ebcc0e6bSLyude Paul    payload2 [label="Payload #2";style=filled;shape=box;fillcolor=lightblue;penwidth=3];
59*ebcc0e6bSLyude Paul}
60