DXGK_DSI_PACKET structure (dispmprt.h)

An OEM panel driver uses DXGK_DSI_PACKET structures to transmit Digital Serial Interface (DSI) packets to the bus driver (graphics kernel).

Syntax

typedef struct _DXGK_DSI_PACKET {
  union {
    BYTE DataId;
    struct {
      BYTE DataType : 6;
      BYTE VirtualChannel : 2;
    };
  };
  union {
    struct {
      BYTE Data0;
      BYTE Data1;
    };
    WORD LongWriteWordCount;
  };
  BYTE  EccFiller;
  BYTE  Payload[DXGK_DSI_PACKET_EMBEDDED_PAYLOAD_SIZE];
} DXGK_DSI_PACKET, *PDXGK_DSI_PACKET;

Members

DataId

8-bit value, where the lower 6 bits form the DataType and the higher 2 bits are VirtualChannel.

DataType

Type of data being transmitted, which implicitly defines the transaction as a read or a write as well as the number of parameters and whether the transaction is formed as a short or long packet.

VirtualChannel

Indicates the sub-unit of the peripheral being addressed. Can be one of 0, 1, 2, or 3.

Data0

8-bit value used in short packets to transfer parameters. Short packets have 0, 1, or 2 bytes of parameters, where the number and meaning is determined by the DataType.

Data1

8-bit value used in short packets to transfer parameters. Short packets have 0, 1, or 2 bytes of parameters, where the number and meaning is determined by the DataType.

LongWriteWordCount

Word count, in bytes, of the Payload for a write long packet.

EccFiller

An 8-bit field which occupies the space that the Error Correction Code (ECC) will take in the sequence of transmitted bytes. The fourth byte of the transmission is always an ECC and for long writes, the payload directly follows the ECC so this filler allows a long write command to be constructed in memory as a complete command. It is the responsibility of the graphics driver to overwrite the filler value with the correct ECC value prior to transmission.

Payload[DXGK_DSI_PACKET_EMBEDDED_PAYLOAD_SIZE]

Array of 8 bytes which allows for sequences of small writes to be sent as an array of packets in the same transmission but limits the size of the data. The final packet in a transmission can append further data in memory directly after the last byte of the embedded Payload. Read packets are only permitted as the last one in a transmission but may be in the form of a long or short packet and either way, the read data should be placed in the Payload buffer, with extra space in the buffer to accommodate longer responses.

Remarks

The panel driver calls IOCTL_MIPI_DSI_TRANSMISSION with an array of DSI_PACKET structures in a DXGK_DSI_TRANSMISSION structure.

Requirements

Requirement Value
Minimum supported client Windows 10, version 2004
Header dispmprt.h

See also

**IOCTL_MIPI_DSI_QUERY_CAPS

IOCTL_MIPI_DSI_RESET

IOCTL_MIPI_DSI_TRANSMISSION