Ejemplo n.º 1
0
void Tcc353xInterruptGetStream(I32U _fifoSize)
{
	I32U totalSize = 0;
	I32U freeSize = 0;
	I32U writeSize = 0;

	totalSize = _fifoSize - (_fifoSize%188);

	if(totalSize>=188) {
		Tcc353xApiStreamRead(0,
				     &Tcc353xStreamData[0],
				     totalSize);

		if(Tcc353xStreamData[0]!=0x47) {
			TcpalPrintErr((I08S *) "[TCC353X] SyncByte Error! [0x%02x]\n",
				     Tcc353xStreamData[0]);
			TcpalPrintErr((I08S *) "[TCC353X] Buff Flush for SyncByte matching\n");
		} else {
			freeSize = mbt_dataring_free(RingBufId);

			if(freeSize >= totalSize) {
				writeSize = mbt_dataring_write(RingBufId, &Tcc353xStreamData[0], totalSize);
				if(writeSize < 0) {
					TcpalPrintErr((I08S *) "[TCC353X] Ring Buffer Error!\n");
				}
			}
		}
	}
}
Ejemplo n.º 2
0
void Tcc353xInterruptGetStream(I32U _fifoSize)
{
#if defined (USE_LGE_RING_BUFFER) && !defined (_I2C_STS_)
#define _MAX_TS_READ_SIZE_	(15792) /* 188*84 */
	I32U totalSize = 0;
	I32U freeSize = 0;
	I32U writeSize = 0;
	I32U remainSize = 0;
	I32U i;
	I32U readSizes[2] = {0,0};

	totalSize = _fifoSize - (_fifoSize%188);

	//                                                                           
	//TcpalPrintErr((I08S *) "Tcc353xInterruptGetStream size[%d]\n", totalSize);

	totalSize = (totalSize/188/4)*188*4;

	//if(totalSize > 188 * 87)
	if(totalSize > _MAX_TS_READ_SIZE_) {
		remainSize = totalSize - _MAX_TS_READ_SIZE_;
		remainSize = (remainSize/188/4)*188*4;
		if(remainSize> _MAX_TS_READ_SIZE_)
			remainSize = _MAX_TS_READ_SIZE_;
		totalSize = _MAX_TS_READ_SIZE_;
	} else {
		remainSize = 0;
	}
	readSizes[0] = totalSize;
	readSizes[1] = remainSize;

	//                                                                         

	for(i=0; i<2; i++) {
		if(readSizes[i]>=188) {
			Tcc353xApiStreamRead(0,
					     &Tcc353xStreamData[0],
					     readSizes[i]);

			if(Tcc353xStreamData[0]!=0x47) {
				TcpalPrintErr((I08S *) "[TCC353X] SyncByte Error! [0x%02x]\n",
					     Tcc353xStreamData[0]);
				TcpalPrintErr((I08S *) "[TCC353X] Buff Flush for SyncByte matching\n");
			} else {
				freeSize = mbt_dataring_free(RingBufId);

				if(freeSize >= readSizes[i]) {
					writeSize = mbt_dataring_write(RingBufId, &Tcc353xStreamData[0], readSizes[i]);
					if(writeSize < 0) {
						TcpalPrintErr((I08S *) "[TCC353X] Ring Buffer Error!\n");
					}
				}
			}
		}
	}
#else
	return;
#endif
}
void Tcc353xInterruptGetStream(I32U _fifoSize)
{
	I32U totalSize = 0;
	I32U freeSize = 0;
	I32U writeSize = 0;

	totalSize = _fifoSize - (_fifoSize%188);

	//[Fix Start]align TS size to use DMA only mode - 20121228 [email protected]
	//TcpalPrintErr((I08S *) "Tcc353xInterruptGetStream size[%d]\n", totalSize);

	totalSize = (totalSize/188/4)*188*4;

	if(totalSize > 188 * 87)
		totalSize = 188 * 84;
	//[Fix End]align TS size to use DMA only mode - 20121228 [email protected]

	if(totalSize>=188) {
		Tcc353xApiStreamRead(0,
				     &Tcc353xStreamData[0],
				     totalSize);

		if(Tcc353xStreamData[0]!=0x47) {
			TcpalPrintErr((I08S *) "[TCC353X] SyncByte Error! [0x%02x]\n",
				     Tcc353xStreamData[0]);
			TcpalPrintErr((I08S *) "[TCC353X] Buff Flush for SyncByte matching\n");
		} else {
			freeSize = mbt_dataring_free(RingBufId);

			if(freeSize >= totalSize) {
				writeSize = mbt_dataring_write(RingBufId, &Tcc353xStreamData[0], totalSize);
				if(writeSize < 0) {
					TcpalPrintErr((I08S *) "[TCC353X] Ring Buffer Error!\n");
				}
			}
		}
	}
}