PDK API Guide for J721E

Introduction

These are display controller FVID2 APIs that can be called by the application.

Macros

#define IOCTL_DSS_DCTRL_SET_PATH   (DSS_DCTRL_IOCTL_BASE + 0x01U)
 Command to set the DSS display path configuration. More...
 
#define IOCTL_DSS_DCTRL_CLEAR_PATH   (DSS_DCTRL_IOCTL_BASE + 0x02U)
 Command to clear the DSS display path configuration. More...
 
#define IOCTL_DSS_DCTRL_SET_VP_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x03U)
 Command to set Video Port configuration. More...
 
#define IOCTL_DSS_DCTRL_SET_OVERLAY_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x04U)
 Command to set configuration of the given overlay. More...
 
#define IOCTL_DSS_DCTRL_SET_LAYER_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x05U)
 Command to set layer/Z-order configuration of the given overlay. More...
 
#define IOCTL_DSS_DCTRL_SET_VP_CSC_COEFF   (DSS_DCTRL_IOCTL_BASE + 0x06U)
 Command to program the CSC coefficients for Video Port. By default BT 601 coefficients are set. More...
 
#define IOCTL_DSS_DCTRL_SET_ADV_VP_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x07U)
 Command to set advance Video Port configuration. More...
 
#define IOCTL_DSS_DCTRL_SET_LCD_BLANK_TIMING_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x08U)
 Command to program blank timing parameters of given LCD. More...
 
#define IOCTL_DSS_DCTRL_SET_VP_SAFETY_CHK_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x09U)
 Command to program Safety Check configuration at Video Port Output. More...
 
#define IOCTL_DSS_DCTRL_GET_VP_ERROR_STATS   (DSS_DCTRL_IOCTL_BASE + 0x0AU)
 IOCTL to get the number of errors for a given Video Port. More...
 
#define IOCTL_DSS_DCTRL_SET_GLOBAL_DSS_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x0BU)
 IOCTL to set the global DSS parameters. More...
 
#define IOCTL_DSS_DCTRL_STOP_VP   (DSS_DCTRL_IOCTL_BASE + 0x0CU)
 Command to disable Video Port. More...
 
#define IOCTL_DSS_DCTRL_REGISTER_SYNCLOST_CB   (DSS_DCTRL_IOCTL_BASE + 0x0DU)
 Command to register Video Port sync lost callback function. More...
 
#define IOCTL_DSS_DCTRL_REGISTER_LINENUM_CB   (DSS_DCTRL_IOCTL_BASE + 0x0EU)
 Command to register Video Port line number callback function. More...
 
#define IOCTL_DSS_DCTRL_SET_DSI_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x0FU)
 Command to set the DSI specific parameters. More...
 
#define IOCTL_DSS_DCTRL_PROCESS_DP_HPD   (DSS_DCTRL_SOC_IOCTL_BASE + 0x01U)
 IOCTL to process Display port HPD. More...
 
#define IOCTL_DSS_DCTRL_REGISTER_DP_HPD_CB   (DSS_DCTRL_SOC_IOCTL_BASE + 0x02U)
 IOCTL to register Display port HPD callback. More...
 

Macro Definition Documentation

#define IOCTL_DSS_DCTRL_SET_PATH   (DSS_DCTRL_IOCTL_BASE + 0x01U)

Command to set the DSS display path configuration.

All the DSS modules handled by the Display Controller can be represented by a graph, where node represents a module like video port, overlay etc. and edge is present between two nodes if they are connected. All DSS paths can be configured by this IOCTL in one shot. Use macros defined in <dss_soc.h> for different node ids.

This IOCTL takes list of edges connecting nodes and configures display paths. It first validates these paths and then configures DSS for the display paths. It configures all the modules present in the path.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlPathInfo
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_CLEAR_PATH   (DSS_DCTRL_IOCTL_BASE + 0x02U)

Command to clear the DSS display path configuration.

This IOCTL takes list of edges connecting nodes and clears the configuration. It also stops Video Ports.

It does not validates the edge list. It simply disables the edge connecting nodes. For the Video Ports, it checks for the validity and then disables the video port if there are no errors. Use macros defined in <dss_soc.h> for different node ids.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlPathInfo
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_VP_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x03U)

Command to set Video Port configuration.

This IOCTL is used to set the Video Port configuration if Video Port is not on. For the enabled Video Port, port has to be stopped first, then configuration can can be changed. Refer Dss_DctrlVpParams for configuration details. This IOCTL should be called before IOCTL_DSS_DCTRL_SET_PATH.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlVpParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_OVERLAY_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x04U)

Command to set configuration of the given overlay.

This IOCTL is used to set the different Overlay parameters. Refer Dss_DctrlOverlayParams for configuration details. Note: In case color bar enable is TRUE then this IOCTL should be called at the end after doing all other display controller configuration.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlOverlayParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_LAYER_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x05U)

Command to set layer/Z-order configuration of the given overlay.

This IOCTL is used to set the layer/Z-order configuration. Refer Dss_DctrlOverlayLayerParams for details. Note: User should pass the layer configuration for all the video pipes which are present in the DSS in order to set/change the Z order. In case a particular pipe is disabled, layerNum should be set to CSL_DSS_OVERLAY_LAYER_INVALID.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlOverlayLayerParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_VP_CSC_COEFF   (DSS_DCTRL_IOCTL_BASE + 0x06U)

Command to program the CSC coefficients for Video Port. By default BT 601 coefficients are set.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlVpCscCoeff
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_ADV_VP_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x07U)

Command to set advance Video Port configuration.

This IOCTL is used to program the advance Video Port configuration. Refer Dss_DctrlAdvVpParams for configuration details.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlAdvVpParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_LCD_BLANK_TIMING_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x08U)

Command to program blank timing parameters of given LCD.

This IOCTL is used to program the blank timing parameters for the LCD. This IOCTL can be called dynamically at runtime. Note: The change in timing will take effect from the next vsync. This API should be called in the vsync callback to the application in the ISR context or immediately after that in task/swi context. Calling this IOCTL near the vsync should be avoided as the shadow to work copy could happens while we are changing the timing parameters and could result in taking only a part of this configuration for next one frame or delaying the timing change by next one frame. Subsequent frames will have proper timing.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlLcdBlankTimingParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_VP_SAFETY_CHK_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x09U)

Command to program Safety Check configuration at Video Port Output.

This IOCTL is used to program the safety check configuration parameters. Note: There are up to four sub-regions within the active video output in which safety check can be enabled. This IOCTL should be called separately for each region.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlVpSafetyChkParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_GET_VP_ERROR_STATS   (DSS_DCTRL_IOCTL_BASE + 0x0AU)

IOCTL to get the number of errors for a given Video Port.

This IOCTL is used to get the count of sync lost errors, security violations and safety check errors for a given video port.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlVpErrorStats
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_GLOBAL_DSS_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x0BU)

IOCTL to set the global DSS parameters.

This IOCTL can be used to set the global mflag and CBA configuration.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlGlobalDssParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_STOP_VP   (DSS_DCTRL_IOCTL_BASE + 0x0CU)

Command to disable Video Port.

This IOCTL is used to disable the Video Port. Refer Dss_DctrlVpParams for configuration details.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlVpParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_REGISTER_SYNCLOST_CB   (DSS_DCTRL_IOCTL_BASE + 0x0DU)

Command to register Video Port sync lost callback function.

This IOCTL can be used to register a callback when there is a sync loss for a particular video port. See Dss_DctrlSyncLostCbFxn for details. This IOCTL is per Video Port and hence should be called separately for each port. Note: syncLostCbFxn should be set to NULL in order to unregister the callback.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlSyncLostCbParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_REGISTER_LINENUM_CB   (DSS_DCTRL_IOCTL_BASE + 0x0EU)

Command to register Video Port line number callback function.

This IOCTL can be used to register a callback when there is a line number interrupt for a particular video port. See Dss_DctrlLineNumCbFxn for details. This IOCTL is per Video Port and hence should be called separately for each port. Note: lineNumCbFxn should be set to NULL in order to unregister the callback.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlLineNumCbParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_SET_DSI_PARAMS   (DSS_DCTRL_IOCTL_BASE + 0x0FU)

Command to set the DSI specific parameters.

Currently used to set number of output lanes.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlDsiParams
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_PROCESS_DP_HPD   (DSS_DCTRL_SOC_IOCTL_BASE + 0x01U)

IOCTL to process Display port HPD.

This IOCTL can be used to process the display port HPD interrupt. Note: This IOCTL is supported only for J721E SoC.

Parameters
cmdArgs[IN] Pointer of type uint32_t. Supported values: TRUE/FALSE
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code
#define IOCTL_DSS_DCTRL_REGISTER_DP_HPD_CB   (DSS_DCTRL_SOC_IOCTL_BASE + 0x02U)

IOCTL to register Display port HPD callback.

This IOCTL can be used to register the callback for display port HPD interrupt. Refer Dss_DctrlDpHpdCbParams for details. Note: This IOCTL is supported only for J721E SoC.

Parameters
cmdArgs[IN] Pointer of type Dss_DctrlDpHpdCbParams.
cmdArgsStatus[OUT] NULL
Returns
FVID2_SOK if successful, else suitable error code