[CAL DRV][PDK-5252]Added real time vs non real time configuration
authorVivek Dhande <a0132295@ti.com>
Mon, 18 May 2020 09:25:08 +0000 (14:55 +0530)
committerSivaraj R <sivaraj@ti.com>
Mon, 18 May 2020 11:39:13 +0000 (06:39 -0500)
- Maxwell PG2: CAL Configuration option to route traffic through real time or non real time path

Signed-off-by: Vivek Dhande <a0132295@ti.com>
packages/ti/drv/cal/include/cal_drv.h
packages/ti/drv/cal/src/core/cal_coreapi.c
packages/ti/drv/cal/src/core/cal_corecapture.h
packages/ti/drv/cal/src/drv/cal_drvCore.c

index 1ee5a47d80f12944cc9e047f0664310323880303..1b6d18eb7a7071bc285165502748586f1b55912c 100755 (executable)
@@ -1,4 +1,4 @@
-/* 
+/*
  *  Copyright (c) Texas Instruments Incorporated 2018
  *
  *  Redistribution and use in source and binary forms, with or without
  *    <tr>
  *      <td>streamId</td>
  *      <td>
- *      Value can be from 0 .. Cal_CaptCreateParams.numStream-1 
+ *      Value can be from 0 .. Cal_CaptCreateParams.numStream-1
  *      </td>
  *    </tr>
  *  </table>
@@ -466,6 +466,12 @@ typedef struct
      *   Channel number must be unique across the whole system.
      *   Users can use Cal_captMakeChNum() to generate a system unique
      *   channel number. */
+    uint32_t mFlagH;
+    /**< When no real time data is received, this should be 0xFF. A 8 bit value,
+     *  please refer spec for details while capturing real time data. */
+    uint32_t mFlagL;
+    /**< When no real time data is received, this should be 0xFF. A 8 bit value,
+     *  please refer spec for details while capturing real time data. */
     void  *pAdditionalArgs;
     /**< [IN] Used by some driver to hold additional information. Please refer
      *          the device specific include, on expected use. */
@@ -792,8 +798,12 @@ static inline void CalCaptCreateParams_init(Cal_CaptCreateParams *createPrms)
         createPrms->videoIfWidth     = FVID2_VIFW_16BIT;
         createPrms->bufCaptMode      = CAL_CAPT_BCM_LAST_FRM_REPEAT;
         createPrms->chInQueueLength  = CAL_CAPT_QUEUE_LEN_PER_CH;
-        createPrms->numCh     = 1U;
-        createPrms->numStream = 1U;
+        createPrms->numCh            = 1U;
+        createPrms->numStream        = 1U;
+        /* By default every traffic is considered as non-real time,
+           Application can make it real time by changing following mFlags */
+        createPrms->mFlagL           = 0xFFU;
+        createPrms->mFlagH           = 0xFFU;
         for (streamId = 0U; streamId < CAL_CAPT_MAX_STREAMS; streamId++)
         {
             for (chId = 0U; chId < CAL_CAPT_CH_PER_PORT_MAX; chId++)
index 33282fce1859f6f532fbacd9579208e439f35a5e..638f86cc19818f41db15269995b4807d876cb1b0 100755 (executable)
@@ -1053,6 +1053,8 @@ Cal_CoreHandle calCoreCaptOpen(Cal_CoreInst            inst,
                         IOCTL_CAL_HAL_GET_INSTANCECFG,
                         (void *) &pInstObj->instCfg, NULL);
 
+                    pInstObj->instCfg.mFlagH = pOpenParams->mFlagH;
+                    pInstObj->instCfg.mFlagL = pOpenParams->mFlagL;
                     for (i = 0; ((i < CAL_CAPT_MAX_CMPLXIO_INST) &&
                                  (FVID2_SOK == rtnVal)); i++)
                     {
index 1ccc2d880efb42c183cc09eb809117f0ad152702..48eb7ec9a9b8918212da7f0a02823c3da7057eb5 100755 (executable)
@@ -151,6 +151,12 @@ typedef struct Cal_CoreCaptOpenParams
     uint32_t                csi2PhyClock[CSL_CAL_CMPLXIO_CNT];
     /**< Specify the CSI2 PHY clock in MHz. e.g. if 400 MHz is the clock
      *      \code csi2PhyClock = 400; */
+    uint32_t               mFlagH;
+    /**< When no real time data is received, this should be 0xFF. A 8 bit value,
+     *  please refer spec for details while capturing real time data. */
+    uint32_t               mFlagL;
+    /**< When no real time data is received, this should be 0xFF. A 8 bit value,
+     *  please refer spec for details while capturing real time data. */
     void                   *arg;
     /**< Not Used as of now */
 } Cal_CoreCaptOpenParams_t;
index fede2f8af30d8b9188503edde43317154b7eb45d..10d8c33528ed7f686fed3b6c0aeaf5952b47cb41 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
  *  Copyright (c) Texas Instruments Incorporated 2018
  *
  *  Redistribution and use in source and binary forms, with or without
@@ -123,7 +123,7 @@ int32_t calDrvCaptOpenCore(CalDrv_CaptInstObj *instObj)
 int32_t calDrvCaptCloseCore(CalDrv_CaptInstObj *instObj)
 {
     int32_t  retVal = FVID2_SOK;
-    
+
     GT_assert(CalTrace, (NULL != instObj));
     GT_assert(CalTrace, (NULL != instObj->coreOps));
     GT_assert(CalTrace, (NULL != instObj->coreOps->close));
@@ -200,6 +200,8 @@ static int32_t calDrvCaptOpenCoreInt(CalDrv_CaptInstObj *instObj)
 
     coreOpenParms.arg          = NULL;
     coreOpenParms.numStreams   = instObj->createPrms.numStream;
+    coreOpenParms.mFlagH       = instObj->createPrms.mFlagH;
+    coreOpenParms.mFlagL       = instObj->createPrms.mFlagL;
 
     if (FVID2_VIFM_SCH_CSI2 == instObj->createPrms.videoIfMode)
     {