Analog in and analog out configuration is working.
authorJianzhong Xu <a0869574@ti.com>
Tue, 12 Jun 2018 14:35:03 +0000 (10:35 -0400)
committerJianzhong Xu <a0869574@ti.com>
Tue, 12 Jun 2018 14:35:03 +0000 (10:35 -0400)
pasdk/test_dsp/application/itopo/evmk2g/atboot.c
pasdk/test_dsp/application/itopo/evmk2g/mcasp_cfg.c
pasdk/test_dsp/application/main.c
pasdk/test_dsp/framework/audioStreamInpProcNewIO.c

index 3140c4bdddd33354df7c0c15ad7a3ef6de008ca7..270de83b30dad748578cdd5c89a2e22028d5fd08 100644 (file)
@@ -61,8 +61,8 @@ All rights reserved.
     writeVOLOffsetMasterN(0x7fff), \
     writeSYSRecreationModeDirect, \
     writeSYSChannelConfigurationRequestSurround4_1, \
-    execPAIInHDMIStereo, \
-    execPAIOutAnalog
+    execPAIInAnalog, \
+    execPAIOutAnalogSlave
 #else 
 //Not DTS_ATBOOT_CFG
 
index b3f1f14f3c96149c007e236092fff16124e6b7c9..bf4886aa02e1102621d8d1437e25fd9023d8e79f 100644 (file)
@@ -149,9 +149,9 @@ Mcasp_HwSetupData mcaspXmtSetupDAC = {
         /* .xevtctl  = */ 0x00000000, /* DMA request is enabled or disabled   */
         {
 //             /* .aclkxctl  = */ 0X000000E1,  // Transmit bit clock divide ratio = 2 --> works for 48khz PCM but not for DDP
-             /* .aclkxctl  = */ 0X000000E7,  // Transmit bit clock divide ratio = 8 --> working for DDP/MAT/THD 48khz but not for PCM
-//             /* .aclkxctl  = */ 0X000000E3,  // Transmit bit clock divide ratio = 4 --> THD 96khz
-//             /* .aclkxctl  = */ 0X000000E1,  // Transmit bit clock divide ratio = 2 --> THD 192khz
+             /* .aclkxctl  = */ 0X000000E7,  // Transmit bit clock divide ratio = 8 --> working for Dolby/DTS 48khz but not for PCM
+//             /* .aclkxctl  = */ 0X000000E3,  // Transmit bit clock divide ratio = 4 --> Dolby/DTS 96khz
+//             /* .aclkxctl  = */ 0X000000E1,  // Transmit bit clock divide ratio = 2 --> Dolby/DTS 192khz
              /* .ahclkxctl = */ 0x00004000,
              /* .xclkchk   = */ 0x00000000
         },
@@ -799,7 +799,7 @@ mcaspLLDconfig LLDconfigRxHDMIStereo =   // for SAP_D10_RX_HDMI_STEREO
     &mcaspRxChanParamHDMIStereo,
     0x23,
     0x63,
-    0x02000000,                     // Set Amute pin as output since mcasp0 is both Rx & Tx for DIR/HDMI
+    0x02000000,                     // Set Amute pin as output since mcasp0 is both Rx & Tx for HDMI
     0x2,
     CSL_MCASP_0,
     MCASP_INPUT,
@@ -814,7 +814,7 @@ mcaspLLDconfig LLDconfigRxHDMI =    // for SAP_D10_RX_HDMI
     &mcaspRxChanParamHDMI,
     0x23,
     0x63,
-    0x02000000,                    // Set Amute pin as output since mcasp0 is both Rx & Tx for DIR/HDMI
+    0x02000000,                    // Set Amute pin as output since mcasp0 is both Rx & Tx for HDMI
     0x2,
     CSL_MCASP_0,
     MCASP_INPUT,
@@ -974,4 +974,5 @@ Aud_STATUS mcasplldChanCreate(mcaspLLDconfig *lldCfg, Ptr *pChanHandle)
     return (Aud_EOK);
 }  /* mcasplldChanCreate */
 
+
 /* Nothing past this point */
index 0c8ab2d8efde5e754c5f182ff6363f5e038a0312..01a35510dca9d63974f9ac7b7b90d8e94d53e377 100644 (file)
@@ -82,7 +82,7 @@ Int main()
     Int status;
     Aud_STATUS AudStatus;
     Int k;
-    //Board_initCfg cfg;
+    Board_initCfg cfg;
 
     Log_info0("Enter main()");
     
@@ -112,9 +112,8 @@ Int main()
 #endif    
 
     /* initialize board */
-    // board init is handled by GEL files or SBL
-    //cfg = BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK;
-    //Board_init(cfg);
+    cfg = BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK;
+    Board_init(cfg);
     evmI2CInit(I2C_PORT_0);
     evmI2CInit(I2C_PORT_1);
     evmI2CInit(I2C_PORT_2);
index f1d7dc41b699b0f3830cbb1069a512f9050821e5..e5b962961cbc7912e2cada5dff78f42ac2c6a84f 100644 (file)
@@ -561,6 +561,9 @@ Int asitSourceDetection(const PAF_ASIT_Params *pP,
                 // always point to PCM data from 1st I2S (out of 4 for HDMI 4xI2S)
                 ioBuffAdjustDelay(pInp->hIoBuff, pInp->phyXferSize);
 
+                // Mute decoder output during PCM transition
+                pAstCfg->xInp[zMD].inpBufConfig.deliverZeros = TRUE;
+
                 // Go to transition state to switch to PCM
                 pInp->asipState = ASIT_PCM_TRANSITION;
                 TRACE_VERBOSE0("PCM stream detected. Go to PCM transition. ");
@@ -622,6 +625,9 @@ Int asitPcmTransition(PAF_ASIT_Config *pAsitCfg)
     pInp->pcmSwitchHangOver--;
     if(pInp->pcmSwitchHangOver == 0) {
         pInp->asipState = ASIT_DECODE_PROCESSING;
+
+        // Unmute decoder output after PCM transition
+        pAsitCfg->pAstCfg->xInp[zMD].inpBufConfig.deliverZeros = FALSE;
     }
     else {
         ; // stay in this state
@@ -1607,24 +1613,7 @@ Int asitUpdateIoComps(const PAF_ASIT_Params *pP, PAF_AST_Config *pAstCfg,
     sourceConfig = (Int)sharedMemReadInt8(&(pAstCfg->xDec[zMD].decodeStatus.sourceSelect),
                                           GATEMP_INDEX_DEC);
 
-    if(autoDetStatus->syncState == IODATA_SYNC_PCM) {
-        // Bitstream preamble is not found and it times out -> assume this is PCM
-        deliverZeros = autoDetStatus->deliverZeros;
-        if (sourceConfig == PAF_SOURCE_PCM || sourceConfig == PAF_SOURCE_DSD1 ||
-            sourceConfig == PAF_SOURCE_DSD2 || sourceConfig == PAF_SOURCE_DSD3) {
-            // set to one -- ensures that PCM decode calls made before data is
-            // available will result in zero output.
-            // (mostly needed for PA15 since, currently, all other frameworks
-            // require a frame of data before the first decode call.
-            deliverZeros = TRUE;  // override deliverZeros returned by ioDataControl
-        }
-
-        // update input buffer config structure
-        pBufConfig->deliverZeros  = deliverZeros;
-    }
-
-    //JXTODO: decide what to do with hRxSio
-    //temporary - does ARM use hRxSio or just check if it is not NULL?
+    // temporary - does ARM use hRxSio or just check if it is not NULL?
     pAstCfg->xInp[zMD].hRxSio = pInp->hIoData;
     pAstCfg->xInp[zMD].pInpBuf = &(pAstCfg->xInp[zMD].inpBufConfig);