This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Display link buffer mechanism

Guru 20755 points

Hello,

I would like to understand the buffer mechanism in display link please. Are the buffers from queue input copied to some pool inside link and then delivered to display driver ? Is there any documentation about that ? what is ment in the following remark  " The maximum number of frame info is equal to max display queue length.
 This is set to max number of frames queued X 2 since we need to  queue frames as two separate fields  */ in displayLink_priv.h ?

Thanks,

Ran

  • Display link does not copy buffers. It directly queues buffer received from previous link to the display driver.Below is how display link works:

    1. Driver posts display link callback.

    2. Callback initiates DisplayLink_drvProcessData

    3. DisplayLink_drvProcessData does the following:

        -- Deque buffer from driver and free them

        -- Get new frames from the input display link full queue and queue them to driver.

    The comment in the display link you are referring to is related to CVBS display

    CVBS (SD) display driver display fields . Both the fields that constitute a frame should be given in a single FVID2_queue call to the driver.

    The fields may be in field separated mode (Even and odd fields are separate buffers) or field merged mode (even and odd fields in a single buffer).

    RDK supports a mode called SD bypass wherein seperate fields can be given to display link and it will display them.

    When operating in this mode, display link needs to collect the even and odd field and then give a single field seperated FVID2_Frame to the display driver for display.

    Driver has a limit on the maximum number of frames that can be queued. This is the "max display queue length". FVID2_queue call will fail if this limit is exceeded