diff options
author | codeworkx <codeworkx@cyanogenmod.com> | 2012-09-22 09:48:20 +0200 |
---|---|---|
committer | codeworkx <codeworkx@cyanogenmod.com> | 2012-09-22 14:02:16 +0200 |
commit | 2489007e7d740ccbc3e0a202914e243ad5178787 (patch) | |
tree | b8e6380ea7b1da63474ad68a5dba997e01146043 /drivers/media/isdbt/fc8150/fc8150_isr.c | |
parent | 5f67568eb31e3a813c7c52461dcf66ade15fc2e7 (diff) | |
download | kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.zip kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.gz kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.bz2 |
merge opensource jb u5
Change-Id: I1aaec157aa196f3448eff8636134fce89a814cf2
Diffstat (limited to 'drivers/media/isdbt/fc8150/fc8150_isr.c')
-rw-r--r-- | drivers/media/isdbt/fc8150/fc8150_isr.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/media/isdbt/fc8150/fc8150_isr.c b/drivers/media/isdbt/fc8150/fc8150_isr.c new file mode 100644 index 0000000..259576b --- /dev/null +++ b/drivers/media/isdbt/fc8150/fc8150_isr.c @@ -0,0 +1,47 @@ +/***************************************************************************** + Copyright(c) 2012 FCI Inc. All Rights Reserved + + File name : fc8150_isr.c + + Description : fc8150 interrupt service routine + +*******************************************************************************/ +#include "fci_types.h" +#include "fci_hal.h" +#include "fci_oal.h" +#include "fc8150_regs.h" + +int (*pTSCallback)(u32 userdata, u8 *data, int length) = NULL; +int (*pACCallback)(u32 userdata, u8 *data, int length) = NULL; + +u32 gTSUserData; +u32 gACUserData; + +/* static u8 acBuffer[AC_BUF_THR]; */ +static u8 tsBuffer[TS_BUF_SIZE]; + +static void fc8150_data(HANDLE hDevice, u8 bufIntStatus) +{ + if (bufIntStatus & 0x01) { /* TS */ + bbm_data(hDevice, BBM_TS_DATA, &tsBuffer[0], TS_BUF_SIZE/2); + + if (pTSCallback) + (*pTSCallback)(gTSUserData + , &tsBuffer[0], TS_BUF_SIZE/2); + } +} + +void fc8150_isr(HANDLE hDevice) +{ + u8 IntStatus = 0; + u8 bufIntStatus = 0; + + bbm_read(hDevice, BBM_INT_STATUS, &IntStatus); + bbm_write(hDevice, BBM_INT_STATUS, IntStatus); + + bbm_read(hDevice, BBM_BUF_STATUS, &bufIntStatus); + if (bufIntStatus) { + bbm_write(hDevice, BBM_BUF_STATUS, bufIntStatus); + fc8150_data(hDevice, bufIntStatus); + } +} |