summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9ea1043)
raw | patch | inline | side by side (parent: 9ea1043)
author | Frank Livingston <frank-livingston@ti.com> | |
Tue, 15 May 2018 19:07:24 +0000 (14:07 -0500) | ||
committer | Frank Livingston <frank-livingston@ti.com> | |
Tue, 15 May 2018 19:07:24 +0000 (14:07 -0500) |
index 01a35510dca9d63974f9ac7b7b90d8e94d53e377..0c8ab2d8efde5e754c5f182ff6363f5e038a0312 100644 (file)
Int status;
Aud_STATUS AudStatus;
Int k;
- Board_initCfg cfg;
+ //Board_initCfg cfg;
Log_info0("Enter main()");
#endif
/* initialize board */
- cfg = BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK;
- Board_init(cfg);
+ // board init is handled by GEL files or SBL
+ //cfg = BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK;
+ //Board_init(cfg);
evmI2CInit(I2C_PORT_0);
evmI2CInit(I2C_PORT_1);
evmI2CInit(I2C_PORT_2);
diff --git a/pasdk/test_dsp/framework/audioStreamInpProc.h b/pasdk/test_dsp/framework/audioStreamInpProc.h
index 4f9ca0dea5830bb29ab43714b6a3b4b682ced21d..3bfd7b3c231f634731225797e890c75eb614d517 100644 (file)
enum {
ASIT_NO_ERR,
+ ASIT_AUTODET_TIME_OUT,
ASIT_ERR_IOBUFF_INIT,
ASIT_ERR_IODATA_INIT,
- ASIT_ERR_IOPYH_INIT,
+ ASIT_ERR_IOPHY_INIT,
ASIT_ERR_INPDATA_PROC,
ASIT_ERR_INPBUF_UNDERFLOW,
ASIT_ERR_AUTO_DETECION,
diff --git a/pasdk/test_dsp/framework/audioStreamInpProcNewIO.c b/pasdk/test_dsp/framework/audioStreamInpProcNewIO.c
index e07c9f1a725a1098216562a7e8b3c383d409ff64..fa15ce522d8e9965e2eb65be1e6f8fe6362b3348 100644 (file)
// Input data is ready - perform source detection.
// New state will be decided inside the function
asitErr = asitSourceDetection(pP, pQ, pAsitCfg);
+
+ if(asitErr == ASIT_AUTODET_TIME_OUT) {
+ // Should restart if new interface is selected.
+ TRACE_VERBOSE0("TaskAsip: auto-detection time out.");
+ }
}
else {
//Error checking & debug
// Mark input data read complete
ioDataReadComplete(pInp->hIoData);
+ if(autoDetStatus.syncTimeOut) {
+ return ASIT_AUTODET_TIME_OUT;
+ }
// Check if bitstream or PCM is detected
- if( autoDetStatus.syncState == IODATA_SYNC_BITSTREAM
+ else if( autoDetStatus.syncState == IODATA_SYNC_BITSTREAM
|| autoDetStatus.syncState == IODATA_SYNC_PCM) {
// Decide input source and inform decoder
asitErr = asitDecideSource(pAstCfg, pInp, &autoDetStatus);
}
}
}
+ else {
+ // SYNC search ongoing, no action is needed
+ }
// Start next transfer
asitPhyTransferStart(pInp);
ioPhyParams.mcaspChanHandle = pInpIo->hMcaspChan;
ioPhyParams.ioBuffOp = IOPHY_IOBUFFOP_WRITE;
if (ioPhyInit(pInpIo->hIoPhy, &ioPhyParams) != IOPHY_NOERR) {
- return (ASIT_ERR_IOPYH_INIT); // to remove magic number
+ return (ASIT_ERR_IOPHY_INIT); // to remove magic number
}
pInpIo->numPrimeXfers = NUM_PRIME_XFERS;
}
}
- return ASIT_NO_ERR;
+ return ASIP_NO_ERR;
} /* asitSelectDevices */
/*======================================================================================
TRACE_VERBOSE0("ASIT error handling: input buffer underflows. No actions needed.");
}
+ if(asitErr == ASIT_AUTODET_TIME_OUT) {
+ pAsitCfg->pIoInp[0].asipState = ASIT_RESET;
+ pAsitCfg->pIoInp[0].numAsitRestart++;
+ TRACE_VERBOSE1("ASIT error %d handling finished. Go to state ASIT_RESET.", asitErr);
+ }
+
if(asitErr == ASIT_ERR_DECODE_QUIT) {
TRACE_VERBOSE0("ASIT error handling: DECODE_QUIT - clear INPDATA event.");
#if 0
#endif
pAsitCfg->pIoInp[0].asipState = ASIT_RESET;
pAsitCfg->pIoInp[0].numAsitRestart++;
- TRACE_VERBOSE0("ASIT error handling finished. Go to state ASIT_RESET.");
+ TRACE_VERBOSE1("ASIT error %d handling finished. Go to state ASIT_RESET.", asitErr);
}
if(asitErr == ASIT_ERR_EVENTS) {
pAsitCfg->pIoInp[0].asipState = ASIT_RESET;
pAsitCfg->pIoInp[0].numAsitRestart++;
- TRACE_VERBOSE0("ASIT error handling: events error. Go to state ASIT_RESET.");
+ TRACE_VERBOSE1("ASIT error %d handling: events error. Go to state ASIT_RESET.", asitErr);
}
return;
index 1db06be89256b916a3ec3cb68e5ccfa79f45e1a4..4c5c673c71f82f9c30a0fe528568cd1125ff1591 100644 (file)
size_t frameDataSize;
uint8_t deliverZeros;
uint8_t ioBuffUnderFlow;
+ uint8_t syncTimeOut;
void *buff1;
void *buff2;
size_t size1;
pIoDataInst->autoDetState = AUTODET_SYNC_SEARCH_INITIAL;
pIoDataInst->dbgStats.numSyncLost = 0;
pIoDataInst->ioBuffUnderFlow = FALSE;
+ pIoDataInst->syncTimeOut = FALSE;
autoDetReset(pIoDataInst);
ioDataCtl->param.autoDetStats.syncState = pIoDataInst->autoDet.syncState;
ioDataCtl->param.autoDetStats.deliverZeros = pIoDataInst->deliverZeros;
ioDataCtl->param.autoDetStats.bitStreamInfo = pIoDataInst->autoDet.bitStreamInfo;
+ ioDataCtl->param.autoDetStats.syncTimeOut = pIoDataInst->syncTimeOut;
break;
/*
case IODATA_CTL_GET_STEAM_INFO:
/* Search for SYNC the first time */
autoDetSyncScan(pIoDataInst);
+ pIoDataInst->syncTimeOut = FALSE;
+
if(pIoDataInst->autoDet.syncDetected) {
syncCheckInit(pIoDataInst); // prepare for SYNC checking in subsequent frames
/* Reset if zero-run is long enough */
autoDetReset(pIoDataInst);
pIoDataInst->autoDetState = AUTODET_SYNC_SEARCH_INITIAL;
+ pIoDataInst->syncTimeOut = TRUE;
}
else {
// inform decoder where to read PCM data
index bed31c5adbc2ea892a4860b1c70c054c010e7d81..087990234f7a3f92581dbe36956927464ffe98c0 100644 (file)
uint_least16_t syncState; // SYNC state
uint_least16_t bitStreamInfo; // bit stream information - value of IEC_PC
uint8_t deliverZeros; // flag to indicate whether zeros should be sent to output
+ uint8_t syncTimeOut;
} ioDataAutoDetStat_t;
// I/O DATA control structure