dra7xx: example for vdrm display

example for vdrm display: this ca dispaly early boot and vdrm linux

From vsdk0305, hlos support vdrm.

commit b9beb57b5a2716aa2331b89784f7d613bc6c3dd5
Author: xxx Zhang <xxx@xxx.com>
Date:   Mon May 27 21:27:45 2019 +0800

    add vdrm display

diff --git a/apps/src/hlos/adas/src/usecases/disp_dist_src_display/chains_dispDistSrc_Display.c b/apps/src/hlos/adas/src/usecases/disp_dist_src_display/chains_dispDistSrc_Display.c
index 7e967ff..07640ac 100644
--- a/apps/src/hlos/adas/src/usecases/disp_dist_src_display/chains_dispDistSrc_Display.c
+++ b/apps/src/hlos/adas/src/usecases/disp_dist_src_display/chains_dispDistSrc_Display.c
@@ -88,6 +88,25 @@ typedef struct {
 
 } Chains_DispDistSrcDisplayAppObj;
 
+
+Void chains_dispDistSrc_Display_SetGlobalAlphaPrms(Chains_DispDistSrcDisplayAppObj *appObj)
+{
+    DisplayCtrlLink_OvlyPipeParams pipeParams[4];
+
+    pipeParams[0].pipeLine = DISPLAY_LINK_INST_DSS_GFX1;
+    pipeParams[0].globalAlpha = 0x88;
+    pipeParams[0].preMulxxxplyAlpha = 0;
+    pipeParams[0].zorderEnable = TRUE;
+    pipeParams[0].zorder = SYSTEM_DSS_DISPC_ZORDER3;
+
+    pipeParams[1].pipeLine = DISPLAY_LINK_INST_DSS_VID3;
+    pipeParams[1].globalAlpha = 0x88;
+    pipeParams[1].preMulxxxplyAlpha = 0;
+    pipeParams[1].zorderEnable = TRUE;
+    pipeParams[1].zorder = SYSTEM_DSS_DISPC_ZORDER2;
+
+    ChainsCommon_dssOvlyPipeConfig(pipeParams, 2);
+}
 /**
  *******************************************************************************
  *
@@ -127,6 +146,7 @@ Void chains_dispDistSrc_Display_SetAppPrms(chains_dispDistSrc_DisplayObj *pUcObj
     pPrm_display->rtParams.posX             = 0;
     pPrm_display->rtParams.posY             = 0;
     pPrm_display->displayId                 = DISPLAY_LINK_INST_DSS_GFX1;
+
 #if 0 /*controled by M4*/
     ChainsCommon_StartDisplayCtrl(
         pObj->chainsCfg->displayType,
@@ -228,6 +248,8 @@ Void Chains_dispDistSrc_Display(Chains_Ctrl *chainsCfg)
                 break;
 
             case 'p':
+                chains_dispDistSrc_Display_SetGlobalAlphaPrms(&chainsObj);
+                break;
             case 'P':
                 ChainsCommon_PrintStaxxxsxxxcs();
                 chains_dispDistSrc_Display_printStaxxxsxxxcs(&chainsObj.ucObj);
diff --git a/apps/src/hlos/common/chains_common.c b/apps/src/hlos/common/chains_common.c
index ca7e065..c432da5 100644
--- a/apps/src/hlos/common/chains_common.c
+++ b/apps/src/hlos/common/chains_common.c
@@ -47,10 +47,10 @@ Limited License.
 
  DISCLAIMER.
 
- THIS SOFTWARE IS PROVIDED BY xxx AND xxx<92>S LICENSORS "AS IS" AND ANY EXPRESS OR
+ THIS SOFTWARE IS PROVIDED BY xxx AND xxx�S LICENSORS "AS IS" AND ANY EXPRESS OR
  IMPLIED WARRANxxxES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANxxxES OF
  MERCHANTABILITY AND FITNESS FOR A PARxxxCULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL xxx AND xxx<92>S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ IN NO EVENT SHALL xxx AND xxx�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENxxxAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSxxxTUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPxxxON) HOWEVER CAUSED AND ON ANY THEORY OF
@@ -2051,3 +2051,28 @@ Void ChainsCommon_SetDecodePrm(     DecLink_CreateParams *pDecPrm,
         }
     }
 }
+Int32 ChainsCommon_dssOvlyPipeConfig(
+       DisplayCtrlLink_OvlyPipeParams *pPipeParams, UInt32 numPipes)
+{
+    Int32 status=0;
+    Int32 j = 0;
+
+    gChains_commonObj.displayCtrlLinkId = SYSTEM_LINK_ID_DISPLAYCTRL;
+
+    /* There are no createxxxme Params for display controller */
+    status = System_linkCreate(gChains_commonObj.displayCtrlLinkId,
+                                NULL,
+                                0);
+
+    for(j = 0; j < numPipes; j++)
+    {
+        status = System_linkControl(gChains_commonObj.displayCtrlLinkId,
+                                DISPLAYCTRL_LINK_CMD_SET_OVLY_PIPELINE_PARAMS,
+                                &pPipeParams[j],
+                                sizeof(DisplayCtrlLink_OvlyPipeParams),
+                                TRUE);
+        OSA_assert(status == SYSTEM_LINK_STATUS_SOK);
+    }
+
+    return status;
+}
\ No newline at end of file
diff --git a/apps/src/hlos/common/chains_common.h b/apps/src/hlos/common/chains_common.h
index 363113b..c1ff18a 100644
--- a/apps/src/hlos/common/chains_common.h
+++ b/apps/src/hlos/common/chains_common.h
@@ -47,10 +47,10 @@ Limited License.
 
  DISCLAIMER.
 
- THIS SOFTWARE IS PROVIDED BY xxx AND xxx<92>S LICENSORS "AS IS" AND ANY EXPRESS OR
+ THIS SOFTWARE IS PROVIDED BY xxx AND xxx�S LICENSORS "AS IS" AND ANY EXPRESS OR
  IMPLIED WARRANxxxES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANxxxES OF
  MERCHANTABILITY AND FITNESS FOR A PARxxxCULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL xxx AND xxx<92>S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ IN NO EVENT SHALL xxx AND xxx�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENxxxAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSxxxTUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPxxxON) HOWEVER CAUSED AND ON ANY THEORY OF
@@ -204,6 +204,9 @@ extern "C" {
  *  Funcxxxon's
  *******************************************************************************
  */
+Int32 ChainsCommon_dssOvlyPipeConfig(
+             DisplayCtrlLink_OvlyPipeParams *pPipeParams,
+             UInt32 numPipes);
 Void ChainsCommon_SingleCam_SetCapturePrms(
                         CaptureLink_CreateParams *pPrm,
                         UInt32 captureInWidth,
diff --git a/apps/src/include/chains_common.h b/apps/src/include/chains_common.h
index 8093c4b..b115076 100644
--- a/apps/src/include/chains_common.h
+++ b/apps/src/include/chains_common.h
@@ -47,10 +47,10 @@ Limited License.
 
  DISCLAIMER.
 
- THIS SOFTWARE IS PROVIDED BY xxx AND xxx<92>S LICENSORS "AS IS" AND ANY EXPRESS OR
+ THIS SOFTWARE IS PROVIDED BY xxx AND xxx�S LICENSORS "AS IS" AND ANY EXPRESS OR
  IMPLIED WARRANxxxES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANxxxES OF
  MERCHANTABILITY AND FITNESS FOR A PARxxxCULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL xxx AND xxx<92>S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ IN NO EVENT SHALL xxx AND xxx�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENxxxAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSxxxTUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPxxxON) HOWEVER CAUSED AND ON ANY THEORY OF
diff --git a/apps/src/rtos/usecases/common/chains_common.c b/apps/src/rtos/usecases/common/chains_common.c
index e4d9d4c..d4c8c0d 100644
--- a/apps/src/rtos/usecases/common/chains_common.c
+++ b/apps/src/rtos/usecases/common/chains_common.c
@@ -47,10 +47,10 @@ Limited License.
 
  DISCLAIMER.
 
- THIS SOFTWARE IS PROVIDED BY xxx AND xxx<92>S LICENSORS "AS IS" AND ANY EXPRESS OR
+ THIS SOFTWARE IS PROVIDED BY xxx AND xxx�S LICENSORS "AS IS" AND ANY EXPRESS OR
  IMPLIED WARRANxxxES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANxxxES OF
  MERCHANTABILITY AND FITNESS FOR A PARxxxCULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL xxx AND xxx<92>S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ IN NO EVENT SHALL xxx AND xxx�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENxxxAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSxxxTUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPxxxON) HOWEVER CAUSED AND ON ANY THEORY OF
@@ -917,7 +917,7 @@ Void ChainsCommon_SetDisplayPrms(
 
     if(pPrm_Grpx)
     {
-        pPrm_Grpx->displayId                  = DISPLAY_LINK_INST_DSS_GFX1;
+        pPrm_Grpx->displayId                  = DISPLAY_LINK_INST_DSS_VID2;
 
         if((displayType == CHAINS_DISPLAY_TYPE_SDTV_NTSC) ||
           (displayType == CHAINS_DISPLAY_TYPE_SDTV_PAL))
@@ -1404,3 +1404,4 @@ Int32 Chains_statCollectorReset()
     return SYSTEM_LINK_STATUS_SOK;
 }
 
+
diff --git a/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay.c b/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay.c
index 2748bcb..fc9b3c0 100644
--- a/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay.c
+++ b/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay.c
@@ -416,13 +416,15 @@ Void chains_nullSrcDecDisplay_SetAppPrms(chains_nullSrcDecDisplayObj *pUcObj, Vo
 #if 1
     chains_nullSrcDecDisplay_SetDecodePrms(pObj, &pUcObj->DecodePrm);
 #endif
-#if 0
+#if 1
     ChainsCommon_SetDisplayPrms(&pUcObj->DisplayPrm,
                                 NULL,
                                 pObj->chainsCfg->displayType,
                                 pObj->displayWidth,
                                 pObj->displayHeight
                                );
+
+    
 #endif
 #if 1
     chains_nullSrcDecDisplay_SetVPEPrms(
@@ -434,7 +436,7 @@ Void chains_nullSrcDecDisplay_SetAppPrms(chains_nullSrcDecDisplayObj *pUcObj, Vo
         ENCDEC_MAX_FRAME_HEIGHT);
 #endif 
 
-
+// ChainsCommon_MulxxxDisplay_StartDisplayCtrl(&pObj->mDisplayPrms[0], 1);
 #if 1
     ChainsCommon_StartDisplayCtrl(
         pObj->chainsCfg->displayType,
diff --git a/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay_priv.c b/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay_priv.c
index f464733..97dc7f9 100644
--- a/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay_priv.c
+++ b/apps/src/rtos/usecases/null_src_dec_display/chains_nullSrcDecDisplay_priv.c
@@ -47,10 +47,10 @@ Limited License.
 
  DISCLAIMER.
 
- THIS SOFTWARE IS PROVIDED BY xxx AND xxx<92>S LICENSORS 'AS IS' AND ANY EXPRESS OR
+ THIS SOFTWARE IS PROVIDED BY xxx AND xxx�S LICENSORS 'AS IS' AND ANY EXPRESS OR
  IMPLIED WARRANxxxES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANxxxES OF
  MERCHANTABILITY AND FITNESS FOR A PARxxxCULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL xxx AND xxx<92>S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ IN NO EVENT SHALL xxx AND xxx�S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENxxxAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSxxxTUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  PROFITS; OR BUSINESS INTERRUPxxxON) HOWEVER CAUSED AND ON ANY THEORY OF
@@ -74,7 +74,8 @@ Void chains_nullSrcDecDisplay_SetLinkId(chains_nullSrcDecDisplayObj *pObj){
        pObj->NullLinkID                     = IPU1_0_LINK (SYSTEM_LINK_ID_NULL_0);
        pObj->DecodeLinkID                   = SYSTEM_LINK_ID_VDEC_0;
        pObj->VPELinkID                      = SYSTEM_LINK_ID_VPE_0;
-       pObj->DisplayLinkID                  = SYSTEM_LINK_ID_DISPLAY_0;
+       /*SYSTEM LINK ID DISPLAY _0 is used by vDRM cluster.*/
+       pObj->DisplayLinkID                  = SYSTEM_LINK_ID_DISPLAY_1;
 }
 
 Void chains_nullSrcDecDisplay_ResetLinkPrms(chains_nullSrcDecDisplayObj *pObj){
diff --git a/links_fw/src/rtos/links_common/null/nullLink_tsk.c b/links_fw/src/rtos/links_common/null/nullLink_tsk.c
index 0126073..3fc1f88 100644
--- a/links_fw/src/rtos/links_common/null/nullLink_tsk.c
+++ b/links_fw/src/rtos/links_common/null/nullLink_tsk.c
@@ -717,7 +717,7 @@ Void NullLink_tskMain(struct Uxxxls_TskHndl_t * pTsk, Uxxxls_MsgHndl * pMsg)
                     ackMsg = (Bool)TRUE;
                     break;
                 case SYSTEM_CMD_NEW_DATA:
-                    Vps_printf("Null link: New Data \n");
+                    //Vps_printf("Null link: New Data \n");
                     Uxxxls_tskAckOrFreeMsg(pMsg, status);
 
                     flushCmds[0] = SYSTEM_CMD_NEW_DATA;
diff --git a/links_fw/src/rtos/links_ipu/display/displayLink_tsk.c b/links_fw/src/rtos/links_ipu/display/displayLink_tsk.c
index a91fa1b..33ce5da 100644
--- a/links_fw/src/rtos/links_ipu/display/displayLink_tsk.c
+++ b/links_fw/src/rtos/links_ipu/display/displayLink_tsk.c
@@ -193,7 +193,7 @@ Int32 DisplayLink_tskRun(DisplayLink_Obj *pObj, Uxxxls_TskHndl *pTsk,
                 break;
 
             case SYSTEM_CMD_NEW_DATA:
-                Vps_printf("Display: New Data \n");
+                //Vps_printf("Display: New Data \n");
                 Uxxxls_tskAckOrFreeMsg(pRunMsg, status);
 
                 flushCmds[0] = SYSTEM_CMD_NEW_DATA;
(END)
posted @ 2019-05-29 11:24  夏海风  阅读(299)  评论(0编辑  收藏  举报