aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/tdmb/tdmb_port_tcc3170.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/tdmb/tdmb_port_tcc3170.c')
-rw-r--r--drivers/media/tdmb/tdmb_port_tcc3170.c26
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;
}