Head to Window Assignment

The following sections describe head to window assignment.

Configuring Head to Window Assignment

Configure head to window assignment in the Device Tree. If an assignment is not specified in the DT, the driver assigns windows (2N) and (2N + 1) to HEAD N. In DT, specify the assignment using 64 bit mask, which is interpreted as:

Head-Bitmask Window-Number
BITMASK(0-7) 0
BITMASK(8-15) 1
BITMASK(16-23) 2
BITMASK(24-31) 3
BITMASK(32-39) 4
BITMASK(40-47) 5
BITMASK(48-55) 6
BITMASK(56-63) 7

The display driver fails to load if an invalid assignment is specified in the DT. The specified assignment must adhere to the conditions below:

  1. The specified window number must be supported by hardware.
  2. The specified head number must be supported by hardware.
  3. The same window must not be assigned simultaneously for multiple heads.
  4. At least one window must be assigned to at least one head (that is, specified window-head mask should not be 0).

The display driver culls the head with no windows assigned, and all the heads above it. For example, if hardware supports three heads and the user uses the assignment mask to assign valid windows to head-0 and head-2 but no windows to head-1, then head-1 and head-2 is culled.

An example Device Tree fragment is shown below. In this example, window-0, window-1, and window-2 is assigned to head-0 and window-3 is assigned to head-1.

\ {
    display@13800000 {
        nvidia,window-head-mask = <0x00000000 0x02010101>;
    };
};

In the preceding example:

  • display@13800000 is the overall parent node for the entire display device. This node already exists today.
    • nvidia,window-head-mask is used to specify the 64-bit window head assignment mask.