crystalhd/linux_lib/libcrystalhd/libcrystalhd_int_if.h

290 lines
5.4 KiB
C

/********************************************************************
* Copyright(c) 2006-2009 Broadcom Corporation.
*
* Name: libcrystalhd_int_if.h
*
* Description: Driver Internal functions.
*
* AU
*
* HISTORY:
*
********************************************************************
*
* This file is part of libcrystalhd.
*
* This library is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License
* along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*******************************************************************/
#ifndef _BCM_DRV_INT_H_
#define _BCM_DRV_INT_H_
#include "bc_dts_glob_lnx.h"
#ifdef __cplusplus
extern "C" {
#endif
#define BSVS_UART_DEC_NONE 0x00
#define BSVS_UART_DEC_OUTER 0x01
#define BSVS_UART_DEC_INNER 0x02
#define BSVS_UART_STREAM 0x03
#define STREAM_VERSION_ADDR 0x001c5f00
typedef uint32_t BC_DTS_CFG;
DRVIFLIB_INT_API BC_STATUS
DtsGetHwType(
HANDLE hDevice,
uint32_t *DeviceID,
uint32_t *VendorID,
uint32_t *HWRev
);
DRVIFLIB_INT_API VOID
DtsHwReset(
HANDLE hDevice
);
DRVIFLIB_INT_API BC_STATUS
DtsSetLinkIn422Mode(HANDLE hDevice);
DRVIFLIB_INT_API BC_STATUS
DtsSetFleaIn422Mode(HANDLE hDevice);
DRVIFLIB_INT_API BC_STATUS
DtsSoftReset(
HANDLE hDevice
);
DRVIFLIB_INT_API BC_STATUS
DtsGetConfig(
HANDLE hDevice,
BC_DTS_CFG *cfg
);
DRVIFLIB_INT_API BC_STATUS
DtsSetCoreClock(
HANDLE hDevice,
uint32_t freq
);
DRVIFLIB_INT_API BC_STATUS
DtsSetTSMode(
HANDLE hDevice,
uint32_t resrv1
);
DRVIFLIB_INT_API BC_STATUS
DtsSetProgressive(
HANDLE hDevice,
uint32_t resrv1
);
BC_STATUS
DtsRstVidClkDLL(
HANDLE hDevice
);
DRVIFLIB_INT_API BC_STATUS
DtsSetVideoClock(
HANDLE hDevice,
uint32_t freq
);
DRVIFLIB_INT_API BOOL
DtsIsVideoClockSet(HANDLE hDevice);
DRVIFLIB_INT_API BC_STATUS
DtsGetPciConfigSpace(
HANDLE hDevice,
uint8_t *info
);
DRVIFLIB_INT_API BC_STATUS
DtsReadPciConfigSpace(
HANDLE hDevice,
uint32_t offset,
uint32_t *Value,
uint32_t Size
);
DRVIFLIB_INT_API BC_STATUS
DtsWritePciConfigSpace(
HANDLE hDevice,
uint32_t Offset,
uint32_t Value,
uint32_t Size
);
DRVIFLIB_INT_API BC_STATUS
DtsDevRegisterRead(
HANDLE hDevice,
uint32_t offset,
uint32_t *Value
);
DRVIFLIB_INT_API BC_STATUS
DtsDevRegisterWr(
HANDLE hDevice,
uint32_t offset,
uint32_t Value
);
DRVIFLIB_INT_API BC_STATUS
DtsFPGARegisterRead(
HANDLE hDevice,
uint32_t offset,
uint32_t *Value
);
DRVIFLIB_INT_API BC_STATUS
DtsFPGARegisterWr(
HANDLE hDevice,
uint32_t offset,
uint32_t Value
);
DRVIFLIB_INT_API BC_STATUS
DtsDevMemRd(
HANDLE hDevice,
uint32_t *Buffer,
uint32_t BuffSz,
uint32_t Offset
);
DRVIFLIB_INT_API BC_STATUS
DtsDevMemWr(
HANDLE hDevice,
uint32_t *Buffer,
uint32_t BuffSz,
uint32_t Offset
);
DRVIFLIB_INT_API BC_STATUS
DtsTxDmaText(
HANDLE hDevice ,
uint8_t *pUserData,
uint32_t ulSizeInBytes,
uint32_t *dramOff,
uint8_t Encrypted
);
DRVIFLIB_INT_API BC_STATUS
DtsGetDrvStat(
HANDLE hDevice,
BC_DTS_STATS *pDrvStat
);
DRVIFLIB_INT_API BC_STATUS
DtsSendData(
HANDLE hDevice ,
uint8_t *pUserData,
uint32_t ulSizeInBytes,
uint64_t timeStamp,
BOOL encrypted
);
DRVIFLIB_INT_API BC_STATUS
DtsSetTemperatureMeasure(
HANDLE hDevice,
BOOL bTurnOn
);
DRVIFLIB_INT_API BC_STATUS
DtsGetCoreTemperature(
HANDLE hDevice,
float *pTemperature
);
DRVIFLIB_INT_API BC_STATUS
DtsRstDrvStat(
HANDLE hDevice
);
DRVIFLIB_INT_API BC_STATUS
DtsGetFWFiles(
HANDLE hDevice,
char *StreamFName,
char *VDecOuter,
char *VDecInner
);
DRVIFLIB_INT_API BC_STATUS
DtsDownloadFWBin(
HANDLE hDevice,
uint8_t *binBuff,
uint32_t buffsize,
uint32_t sig
);
DRVIFLIB_INT_API BC_STATUS
DtsCancelProcOutput(
HANDLE hDevice,
PVOID Context);
DRVIFLIB_INT_API BC_STATUS
DtsChkYUVSizes(
struct _DTS_LIB_CONTEXT *Ctx,
BC_DTS_PROC_OUT *Vout,
BC_DTS_PROC_OUT *Vin);
BC_STATUS DtsCopyRawDataToOutBuff(
struct _DTS_LIB_CONTEXT *Ctx,
BC_DTS_PROC_OUT *Vout,
BC_DTS_PROC_OUT *Vin);
BC_STATUS DtsCopyNV12ToYV12(
struct _DTS_LIB_CONTEXT *Ctx,
BC_DTS_PROC_OUT *Vout,
BC_DTS_PROC_OUT *Vin);
BC_STATUS DtsCopyNV12(
struct _DTS_LIB_CONTEXT *Ctx,
BC_DTS_PROC_OUT *Vout,
BC_DTS_PROC_OUT *Vin);
BC_STATUS DtsCopyFormat(
struct _DTS_LIB_CONTEXT *Ctx,
BC_DTS_PROC_OUT *Vout,
BC_DTS_PROC_OUT *Vin);
BC_STATUS DtsSendEOS(
HANDLE hDevice,
uint32_t Op
);
extern DRVIFLIB_INT_API BC_STATUS
DtsPushFwBinToLink(HANDLE hDevice, uint32_t *FwBinFile, uint32_t bytesDnld);
/*================ Debug/Test Routines ===================*/
DRVIFLIB_INT_API
void DumpDataToFile(
FILE *fp,
char *header,
uint32_t off,
uint8_t *buff,
uint32_t dwcount
);
void DumpInputSampleToFile(uint8_t *buff, uint32_t buffsize);
#ifdef __cplusplus
}
#endif
#endif