static s32 tcpal_irq_stream_callback(
#endif
	s32 _dev_idx,
	u8 *_stream,
	s32 _size,
	u8 _subch_id,
	u8 _type)
{
	/*static u64 time = 0;*/
	/*struct tcbd_status_data status;*/
#if 0 //ndef CONFIG_SKY_TDMB
	s32 ret, i = 0;
#endif

	switch (_type) {
	case 0: /*MSC*/
		/* write your own code!!*/
	case 1: /*FIC*/
		/* write your own code!!*/

#ifdef CONFIG_SKY_TDMB
    tcc3170_put_data(_stream, _size, _type);
#endif

#if 0 //ndef CONFIG_SKY_TDMB
		if (!start_tune) /* set by tune_frequency*/
			goto skip_fic_parse;

		for (i = 0; i < _size/TCBD_FIC_SIZE; i++) {
			ret = tcc_fic_run_decoder(_stream + (i * TCBD_FIC_SIZE),
					MAX_FIC_SIZE);
			if (ret > 0) {
				tcc_fic_get_ensbl_info(1);
				start_tune = 0;
				tcc_fic_parser_init();
			}
		}
		/*tcbd_read_signal_info(tcbd_irq_handler_data.device, &status);
		tcbd_debug(DEBUG_ERROR,
			"PCBER:%d, SNR:%d, RSSI:%d, VBER:%d, TSPER:%d\n",
				status.pcber, status.snr, status.rssi,
				status.vber, status.tsper);*/
		/*if (tcpal_diff_time(time) > 1000) {
			tcbd_check_dsp_status(tcbd_irq_handler_data.device);
			time = tcpal_get_time();
		}*/
skip_fic_parse:
		tcbd_enqueue_data(_stream, _size, _subch_id, _type);
#endif
		break;
	case 2: /*STATUS*/
		tcbd_debug(DEBUG_STATUS, "status size:%d\n", _size);
		tcbd_update_status(_stream, _size, NULL);
		break;
	default:
		break;
	}
	return 0;
}
static s32 __stream_callback(
	s32 _dev_idx,
	u8 *_stream,
	s32 _size,
	u8 _subch_id,
	u8 _type)
{
	u8 *stream;
	s32 size;
	s32 ret, i = 0;

#ifdef __CALLBACK_BUFFER_HEADER__
	stream = _stream + SIZE_BUFF_HEADER;
	size = _size - SIZE_BUFF_HEADER;
#else
	stream = _stream;
	size = _size;
#endif

	/* DPRINTK("%s : _type %d size %d\n", __func__, _type, size); */

	switch (_type) {
	case DATA_TYPE_FIC: /*FIC*/
		for (i = 0; i < size/TCBD_FIC_SIZE; i++) {
			ret = tcc_fic_run_decoder(stream + (i*TCBD_FIC_SIZE),
					MAX_FIC_SIZE);
			if (ret > 0)
				scan_done = true;
		}
		break;
	case DATA_TYPE_MSC: /*MSC*/
		tdmb_store_data(stream, size);
		break;
	case DATA_TYPE_STATUS: /*STATUS*/
		tcbd_update_status(stream, size, NULL);
	default:
		break;
	}
	return 0;
}