Fixing the loopback test issue on C6657
[keystone-rtos/mcbsp-lld.git] / example / c6657 / MCBSPDigLpbk / sample_init.c
index 54fc9557401f6a43557f0c490e316ee5c91a6881..b8f0b6295423b30a6484ada92b28c3ffa008f187 100644 (file)
@@ -4,7 +4,7 @@
  * Sample Initialization for the EDMA3 Driver for BIOS 6 based applications.
  * It should be MANDATORILY done once before EDMA3 usage.
  *
- * Copyright (C) 2009-2012 Texas Instruments Incorporated - http://www.ti.com/
+ * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/
  *
  *
  *  Redistribution and use in source and binary forms, with or without
 #include <ti/sysbios/knl/Semaphore.h>
 #include <ti/sysbios/family/c64p/EventCombiner.h>
 
-#include "bios6_edma3_drv_sample.h"
+#include <ti/sdo/edma3/drv/sample/bios6_edma3_drv_sample.h>
 
 /** @brief EDMA3 Driver Instance specific Semaphore handle */
-extern EDMA3_OS_Sem_Handle semHandle[];
+extern EDMA3_OS_Sem_Handle semHandle[EDMA3_MAX_EDMA3_INSTANCES];
 
 /**  To Register the ISRs with the underlying OS, if required. */
-extern void registerEdma3Interrupts (unsigned int edma3Id);
+extern void registerEdma3Interrupts (uint32_t edma3Id);
 /**  To Unregister the ISRs with the underlying OS, if previously registered. */
-extern void unregisterEdma3Interrupts (unsigned int edma3Id);
+extern void unregisterEdma3Interrupts (uint32_t edma3Id);
 
 /* To find out the DSP# */
-extern unsigned short determineProcId();
+extern uint16_t determineProcId(void);
 
 /**
  * To check whether the global EDMA3 configuration is required or not.
@@ -62,31 +62,31 @@ extern unsigned short determineProcId();
  * by one of the masters. Hence this function will return TRUE only once
  * and FALSE for all other masters. 
  */
-extern unsigned short isGblConfigRequired(unsigned int dspNum);
+extern uint16_t isGblConfigRequired(uint32_t dspNum);
 
 /**
  * DSP instance number on which the executable is running. Its value is
  * determined by reading the processor specific register DNUM.
  */
-unsigned int dsp_num;
+uint32_t dsp_num;
 
 /**
  * Shadow Region on which the executable is runnig. Its value is populated
  * with the DSP Instance Number here in this case.
  */
-unsigned int region_id;
+uint32_t region_id;
 
 /* Number of EDMA3 controllers present in the system */
-extern const unsigned int numEdma3Instances;
+extern const uint32_t numEdma3Instances;
 
 /* External Global Configuration Structure */
-extern EDMA3_DRV_GblConfigParams sampleEdma3GblCfgParams[];
+extern EDMA3_DRV_GblConfigParams sampleEdma3GblCfgParams[EDMA3_MAX_EDMA3_INSTANCES];
 
 /* External Instance Specific Configuration Structure */
-extern EDMA3_DRV_InstanceInitConfig sampleInstInitConfig[][EDMA3_MAX_REGIONS];
+extern EDMA3_DRV_InstanceInitConfig sampleInstInitConfig[EDMA3_MAX_EDMA3_INSTANCES][EDMA3_MAX_REGIONS];
 
-#if defined (CHIP_TI814X)
-extern EDMA3_DRV_Result sampleInitXbarEvt(EDMA3_DRV_Handle hEdma, unsigned int edma3Id);
+#ifdef DMA_XBAR_AVAILABLE
+extern EDMA3_DRV_Result sampleInitXbarEvt(EDMA3_DRV_Handle hEdma, uint32_t edma3Id);
 #endif
 
 /**
@@ -97,7 +97,7 @@ extern EDMA3_DRV_Result sampleInitXbarEvt(EDMA3_DRV_Handle hEdma, unsigned int e
  *
   * \return  EDMA3_DRV_SOK if success, else error code
  */
-EDMA3_DRV_Handle edma3init (unsigned int edma3Id, EDMA3_DRV_Result *errorCode)
+EDMA3_DRV_Handle edma3init (uint32_t edma3Id, EDMA3_DRV_Result *errorCode)
     {
     EDMA3_DRV_Result edma3Result = EDMA3_DRV_E_INVALID_PARAM;
     Semaphore_Params semParams;
@@ -107,11 +107,13 @@ EDMA3_DRV_Handle edma3init (unsigned int edma3Id, EDMA3_DRV_Result *errorCode)
        EDMA3_DRV_Handle hEdma = NULL;
 
        if ((edma3Id >= numEdma3Instances) || (errorCode == NULL))
-               return hEdma;
-
+    {
+               hEdma = NULL;
+    }
+    else
+    {
     /* DSP instance number */
     dsp_num = determineProcId();
-//    dsp_num = 0; /* selection of region ID */
 
        globalConfig = &sampleEdma3GblCfgParams[edma3Id];
 
@@ -129,7 +131,7 @@ EDMA3_DRV_Handle edma3init (unsigned int edma3Id, EDMA3_DRV_Result *errorCode)
                Semaphore_Params_init(&semParams);
 
                initCfg.drvSemHandle = NULL;
-               edma3Result = edma3OsSemCreate(1, &semParams, &initCfg.drvSemHandle);
+               edma3Result = edma3OsSemCreate((int32_t)1, &semParams, &initCfg.drvSemHandle);
                }
 
        if (edma3Result == EDMA3_DRV_SOK)
@@ -160,15 +162,15 @@ EDMA3_DRV_Handle edma3init (unsigned int edma3Id, EDMA3_DRV_Result *errorCode)
                hEdma = EDMA3_DRV_open (edma3Id, (void *) &initCfg, &edma3Result);
                }
 
-#if defined (CHIP_TI814X)
+#ifdef DMA_XBAR_AVAILABLE
        {
-       if(hEdma && (edma3Result == EDMA3_DRV_SOK))
+       if((hEdma != NULL) && (edma3Result == EDMA3_DRV_SOK))
                {
                edma3Result = sampleInitXbarEvt(hEdma, edma3Id);
                }
        }
 #endif
-       if(hEdma && (edma3Result == EDMA3_DRV_SOK))
+       if((hEdma != NULL) && (edma3Result == EDMA3_DRV_SOK))
                {
                /**
                * Register Interrupt Handlers for various interrupts
@@ -178,8 +180,9 @@ EDMA3_DRV_Handle edma3init (unsigned int edma3Id, EDMA3_DRV_Result *errorCode)
                registerEdma3Interrupts(edma3Id);
                }
 
-       *errorCode = edma3Result;       
-       return hEdma;
+       *errorCode = edma3Result;
+    }
+    return hEdma;
     }
 
 
@@ -191,7 +194,7 @@ EDMA3_DRV_Handle edma3init (unsigned int edma3Id, EDMA3_DRV_Result *errorCode)
  *
   * \return  EDMA3_DRV_SOK if success, else error code
  */
-EDMA3_DRV_Result edma3deinit (unsigned int edma3Id, EDMA3_DRV_Handle hEdma)
+EDMA3_DRV_Result edma3deinit (uint32_t edma3Id, EDMA3_DRV_Handle hEdma)
     {
     EDMA3_DRV_Result edma3Result = EDMA3_DRV_E_INVALID_PARAM;