Merge remote-tracking branch 'origin/dev_pasdk_frank_pasdk577RunTimeAudioIoCfg' into...
authorJianzhong Xu <a0869574@ti.com>
Mon, 18 Jun 2018 16:33:24 +0000 (12:33 -0400)
committerJianzhong Xu <a0869574@ti.com>
Mon, 18 Jun 2018 16:33:24 +0000 (12:33 -0400)
pasdk/test_dsp/application/itopo/evmk2g/atboot.c
pasdk/test_dsp/application/itopo/evmk2g/mcasp_cfg.c
pasdk/test_dsp/application/itopo/evmk2g/sap_d10.c
pasdk/test_dsp/framework/audioStreamInpProcNewIO.c
pasdk/test_dsp/framework/audioStreamOutProc.h

index 270de83b30dad748578cdd5c89a2e22028d5fd08..bd43f338b8ef607289417df2201f9705e8ed67aa 100644 (file)
@@ -85,7 +85,7 @@ All rights reserved.
     writeVOLOffsetMasterN(0x7fff), \
     writeSYSRecreationModeDirect, \
     writeSYSChannelConfigurationRequestSurround4_1, \
-    execPAIInHDMI, \
+    execPAIInDigital, \
     execPAIOutAnalog
 #else
 // Performing PCM high-sampling rate + SRC + CAR benchmarking
index 8ee6325d7158bd1d3382f72450cb4f41d77ab0f3..74a2fdcbd784d6f3732e888d44e357866c697d3a 100644 (file)
@@ -148,10 +148,10 @@ Mcasp_HwSetupData mcaspXmtSetupDAC = {
         /* .xstat    = */ 0x000001FF, /* reset any existing status bits       */
         /* .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  = */ 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 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
         },
index d4f1564a42394ce24c2028823c1b3d7b7f8cebab..1ce8ed56294d31fa4ed1e2a5b5a16a4e273108f7 100644 (file)
@@ -97,6 +97,7 @@ unsigned int HDMIGpioGetState (void);
 // flag to facilitate one time initialization of DA10x Audio hardware
 // 0 ==> not initialized, 1 ==> initialized
 static char initDone = 0;
+static char initHDMIDone = 0;
 
 // input status
 static PAF_SIO_InputStatus primaryStatus =
@@ -795,7 +796,7 @@ static inline XDAS_Int32 initD10 (DEV2_Handle device)
        else
                Log_info0("Audio DIR Init Passed!\n");
 
-#if 1
+#if 0  // Configuring HDMI if available
        /* Setup HSR41 for HDMI input operation */
        //status = platformAudioSelectClkSrc(AUDIO_CLK_SRC_I2S);
        /* Initialize the HDMI Card      */
@@ -820,6 +821,34 @@ static inline XDAS_Int32 initD10 (DEV2_Handle device)
 
 } //initD10
 
+
+Aud_STATUS D10_initHDMI(void)
+{
+    Aud_STATUS status = Aud_EOK;
+
+    if(!initHDMIDone)
+    {
+        /* Setup HSR41 for HDMI input operation */
+        //status = platformAudioSelectClkSrc(AUDIO_CLK_SRC_I2S);
+        /* Initialize the HDMI Card  */
+        while(HDMIGpioGetState());
+        status = audioHDMIConfig();
+        if(status != Aud_EOK)
+        {
+            Log_info0("Audio HDMI Init Failed!\n");
+            return status;
+        }
+        else
+        {
+            Log_info0("Audio HDMI Init Passed!\n");
+        }
+
+        initHDMIDone = 1;
+    }
+
+    return status;
+}
+
 // -----------------------------------------------------------------------------
 // The McASP TX section is *only* used as a master clock mux.
 // Mux functionality is achieved by selecting either  external high
index edc287eae434b9f616fde74ce888cae06fd44454..7aec882afcf7ddb68b12db930d0c509e88dc515c 100644 (file)
@@ -57,6 +57,7 @@ All rights reserved.
 #include "ioPhy.h"
 #include "ioData.h"
 
+#include <pa_i13_evmk2g_io_a.h>
 
 #define STRIDE_WORST_CASE 32  // 4-byte (32-bit) word, 2 slots, 4 serializers
 
@@ -113,6 +114,7 @@ extern Void taskAsipFxnInit(const PAF_ASIT_Params *pP,const PAF_ASIT_Patchs *pQ)
 extern XDAS_Int32 D10_initClkMux(void *pD10Params);
 extern XDAS_Int32 D10_RxControl(const void *pD10RxParams,
                                 XDAS_Int32 code, XDAS_Int32 arg);
+extern Aud_STATUS D10_initHDMI(void);
 
 /*
  * Functions only used in this file
@@ -1236,6 +1238,10 @@ Int asitSelectDevices(
             //
             // Requested device is other than InNone
             //
+            if((interface == DEVINP_HDMI) || (interface == DEVINP_HDMI_STEREO))
+            {
+                D10_initHDMI();
+            }
             
             // Initialize Tx clock mux
             D10_initClkMux((void *)pD10Params);
index 9cf06b713f76590e5eed012c6beb169132fdda84..96e0433b16837da3830973d51bd6a7cc9cef321b 100644 (file)
@@ -208,8 +208,7 @@ typedef struct PAF_AST_OutIO {
     uint32_t ioBuffBuf2AllocCnt;        // Output buffer2 allocation (split buffer on buffer wrap) count
     uint32_t errIoBuffOvrCnt;           // Output IO overflow count
     uint32_t errIoBuffUndCnt;           // Output IO underflow count
-
-    float rateX;                        // Input/Output clock ratio
+    float    rateX;                     // Input/Output clock ratio
     
     // debugging counters
     uint32_t num_xfers;