SPRACX5 May 2021 DRA710 , DRA710 , DRA712 , DRA712 , DRA714 , DRA714 , DRA716 , DRA716 , DRA718 , DRA718 , DRA722 , DRA722 , DRA724 , DRA724 , DRA725 , DRA725 , DRA726 , DRA726 , DRA745 , DRA745 , DRA746 , DRA746 , DRA74P , DRA74P , DRA750 , DRA750 , DRA756 , DRA756 , DRA75P , DRA75P , DRA76P , DRA76P , DRA77P , DRA77P , DRA780 , DRA780 , DRA781 , DRA781 , DRA782 , DRA782 , DRA783 , DRA783 , DRA785 , DRA785 , DRA786 , DRA786 , DRA787 , DRA787 , DRA788 , DRA788 , DRA790 , DRA790 , DRA791 , DRA791 , DRA793 , DRA793 , DRA797 , DRA797 , TDA2EG-17 , TDA2EG-17 , TDA2HF , TDA2HF , TDA2HG , TDA2HG , TDA2HV , TDA2HV , TDA2LF , TDA2LF , TDA2P-ABZ , TDA2P-ABZ , TDA2P-ACD , TDA2P-ACD , TDA2SA , TDA2SA , TDA2SG , TDA2SG , TDA2SX , TDA2SX
In this framework, the omapdrm needs to be disabled in Linux as DSS is controlled by software running on IPU. The Linux application that based DRM will not work as there is no DRM device capable of mode setting (displaying content).
Virtual DRM can create multiple DRM devices capable of modesetting and expose them to user space. Each DRM device can contain multiple DRM connectors, and each connector can be configured to expose a predefined resolution and frame rate. Each DRM connector internally creates a DRM encoder, a DRM plane (primary) and a DRM CRTC, which are needed by DRM APIs to function properly.
Additionally, each DRM device creates a vdrm-controller device which can be opened by Linux applications to read the buffers submitted by DRM applications. Vision SDK can run a chain (usecase) with multiple instances of dispDistSrcLink, where each link reads a vdrm-controller device to obtain buffers submitted by a DRM application to a particular CRTC in a virtual DRM device.
Linux applications can continue to call DRM APIs to display a DRM Frame buffer on a DRM CRTC, even when the vision SDK application / chain is not running, or the running chain does not contain the dispDistSrcLink associated with the CRTC.
From VISION SDK 0304, vDRM framework support in SDK.