diff options
Diffstat (limited to 'drivers/media/tdmb/tdmb_port_tcc3170.c')
-rw-r--r-- | drivers/media/tdmb/tdmb_port_tcc3170.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/drivers/media/tdmb/tdmb_port_tcc3170.c b/drivers/media/tdmb/tdmb_port_tcc3170.c index b4daafb..b6e6abe 100644 --- a/drivers/media/tdmb/tdmb_port_tcc3170.c +++ b/drivers/media/tdmb/tdmb_port_tcc3170.c @@ -51,6 +51,7 @@ #include "tcbd_stream_parser.h" #include "tcc_fic_decoder.h" #include "tcbd_drv_ip.h" +#include "tcc_fic_decoder.h" #include "tcbd_hal.h" @@ -279,6 +280,7 @@ static s32 __set_frequency(unsigned long freqKHz, bool scan_mode) u8 status; tcbd_disable_irq(&tcc3170_device, 0); + tcc_fic_parser_init(); ret = tcbd_tune_frequency(&tcc3170_device, freqKHz, 1500); if (ret < 0) { DPRINTK("tcbd_tune_frequency fail %d\n", ret); @@ -387,9 +389,10 @@ static void tcc3170_pull_data(void) mutex_lock(&tcc3170_mutex); ret = tcbd_read_irq_status(&tcc3170_device, &irq_status, &irq_error); + ret |= tcbd_clear_irq(&tcc3170_device, irq_status); ret |= tcbd_read_stream(&tcc3170_device, buff_read, &size); if (ret == 0 && !irq_error) { - tcbd_split_stream(buff_read, size); + tcbd_split_stream(0, buff_read, size); } else { DPRINTK("### buffer is full, skip the data " "(ret:%d, status=0x%02X, error=0x%02X) ###\n", @@ -400,28 +403,13 @@ static void tcc3170_pull_data(void) tcc3170_device.selected_buff, tcc3170_device.intr_threshold); /*tcbd_reset_ip(device, TCBD_SYS_COMP_ALL, TCBD_SYS_COMP_EP);*/ - tcbd_init_parser(NULL); - } - ret = tcbd_read_irq_status(&tcc3170_device, &irq_status, &irq_error); - if (ret != 0 || irq_error != 0) { - DPRINTK("### buffer is full, skip the data " - "(ret:%d, status=0x%02X, error=0x%02X) ###\n", - ret, irq_status, irq_error); - tcbd_init_stream_data_config(&tcc3170_device, - ENABLE_CMD_FIFO, - tcc3170_device.selected_buff, - tcc3170_device.intr_threshold); - /*tcbd_reset_ip( - device, TCBD_SYS_COMP_ALL, TCBD_SYS_COMP_EP);*/ - tcbd_init_parser(NULL); - + tcbd_init_parser(0, NULL); } - tcbd_clear_irq(&tcc3170_device, irq_status); - mutex_unlock(&tcc3170_mutex); } static s32 __stream_callback( + s32 _dev_idx, u8 *_stream, s32 _size, u8 _subch_id, @@ -467,7 +455,7 @@ static bool tcc3170_init(void) #else #error #endif - tcbd_init_parser(__stream_callback); + tcbd_init_parser(0, __stream_callback); return true; } |