1*53ee8cc1Swenshuai.xi #include <linux/kernel.h>
2*53ee8cc1Swenshuai.xi #include <linux/string.h>
3*53ee8cc1Swenshuai.xi #include <linux/slab.h>
4*53ee8cc1Swenshuai.xi
5*53ee8cc1Swenshuai.xi #include "utopia.h"
6*53ee8cc1Swenshuai.xi #include "utopia_adp.h"
7*53ee8cc1Swenshuai.xi
8*53ee8cc1Swenshuai.xi #include "drvDMD_ATSC_v2.h"
9*53ee8cc1Swenshuai.xi
10*53ee8cc1Swenshuai.xi #ifdef MS_DEBUG
11*53ee8cc1Swenshuai.xi #define DMD_DBG(x) (x)
12*53ee8cc1Swenshuai.xi #else
13*53ee8cc1Swenshuai.xi #define DMD_DBG(x) //(x)
14*53ee8cc1Swenshuai.xi #endif
15*53ee8cc1Swenshuai.xi
16*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_PTR_VAL[5];
17*53ee8cc1Swenshuai.xi
18*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_DBG_LEVEL_PARAM[5];
19*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_Info[5];
20*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_INFO_PARAM[5];
21*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_ID_PARAM[5];
22*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_InitData[10];
23*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_INIT_PARAM[5];
24*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_SET_CONFIG_PARAM[5];
25*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_SET_QAM_SR_PARAM[5];
26*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_SET_ACTIVE_PARAM[5];
27*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_SET_POWER_STATE_PARAM[5];
28*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_LOCK_PARAM[5];
29*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_MODULATION_MODE_PARAM[5];
30*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_SIGNAL_STRENGTH_PARAM[5];
31*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_SIGNAL_QUALITY_PARAM[5];
32*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_SNR_PERCENTAGE_PARAM[5];
33*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_SnrData[5];
34*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_SNR_PARAM[5];
35*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_UCPKT_ERR_PARAM[5];
36*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_BerData[5];
37*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GET_BER_PARAM[5];
38*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_CfoData[5];
39*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_READ_FREQ_OFFSET_PARAM[5];
40*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_SET_SERIAL_CONTROL_PARAM[5];
41*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_IIC_BYPASS_MODE_PARAM[5];
42*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_SWITCH_SSPI_GPIO_PARAM[5];
43*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GPIO_LEVEL_PARAM[5];
44*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_GPIO_OUT_ENABLE_PARAM[5];
45*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_DO_IQ_SWAP_PARAM[5];
46*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_ATSC_REG_PARAM[5];
47*53ee8cc1Swenshuai.xi
48*53ee8cc1Swenshuai.xi MS_U32 ATSC_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs);
49*53ee8cc1Swenshuai.xi
ATSC_adp_Init(FUtopiaIOctl * pIoctl)50*53ee8cc1Swenshuai.xi MS_U32 ATSC_adp_Init(FUtopiaIOctl* pIoctl)
51*53ee8cc1Swenshuai.xi {
52*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Init\n"));
53*53ee8cc1Swenshuai.xi
54*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_PTR_VAL[0], 8);
55*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_PTR_VAL[1]);
56*53ee8cc1Swenshuai.xi
57*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_DBG_LEVEL_PARAM[0], sizeof(ATSC_DBG_LEVEL_PARAM));
58*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_DBG_LEVEL_PARAM[1]);
59*53ee8cc1Swenshuai.xi
60*53ee8cc1Swenshuai.xi UADP_SDT_BGN(&spt_DMD_ATSC_Info[0], sizeof(DMD_ATSC_Info));
61*53ee8cc1Swenshuai.xi UADP_SDT_FIN(&spt_DMD_ATSC_Info[1]);
62*53ee8cc1Swenshuai.xi UADP_SDT_BGN(&spt_DMD_ATSC_GET_INFO_PARAM[0], sizeof(ATSC_GET_INFO_PARAM));
63*53ee8cc1Swenshuai.xi UADP_SDT_KIND(&spt_DMD_ATSC_GET_INFO_PARAM[1], ATSC_GET_INFO_PARAM, UADP_SDT_P2N, pInfo, spt_DMD_ATSC_Info);
64*53ee8cc1Swenshuai.xi UADP_SDT_FIN(&spt_DMD_ATSC_GET_INFO_PARAM[2]);
65*53ee8cc1Swenshuai.xi
66*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_ID_PARAM[0], sizeof(ATSC_ID_PARAM));
67*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_ID_PARAM[1]);
68*53ee8cc1Swenshuai.xi
69*53ee8cc1Swenshuai.xi UADP_SDT_BGN(&spt_DMD_ATSC_InitData[0], sizeof(DMD_ATSC_InitData));
70*53ee8cc1Swenshuai.xi UADP_SDT_KIND(&spt_DMD_ATSC_InitData[1], DMD_ATSC_InitData, UADP_SDT_P2N, u8DMD_ATSC_DSPRegInitExt, spt_DMD_ATSC_PTR_VAL);
71*53ee8cc1Swenshuai.xi UADP_SDT_KIND(&spt_DMD_ATSC_InitData[2], DMD_ATSC_InitData, UADP_SDT_P2N, u8DMD_ATSC_InitExt, spt_DMD_ATSC_PTR_VAL);
72*53ee8cc1Swenshuai.xi UADP_SDT_KIND(&spt_DMD_ATSC_InitData[3], DMD_ATSC_InitData, UADP_SDT_AT, I2C_WriteBytes, spt_DMD_ATSC_PTR_VAL);
73*53ee8cc1Swenshuai.xi UADP_SDT_KIND(&spt_DMD_ATSC_InitData[4], DMD_ATSC_InitData, UADP_SDT_AT, I2C_ReadBytes, spt_DMD_ATSC_PTR_VAL);
74*53ee8cc1Swenshuai.xi UADP_SDT_FIN(&spt_DMD_ATSC_InitData[5]);
75*53ee8cc1Swenshuai.xi
76*53ee8cc1Swenshuai.xi UADP_SDT_BGN(&spt_DMD_ATSC_INIT_PARAM[0], sizeof(ATSC_INIT_PARAM));
77*53ee8cc1Swenshuai.xi UADP_SDT_KIND(&spt_DMD_ATSC_INIT_PARAM[1], ATSC_INIT_PARAM, UADP_SDT_P2N, pDMD_ATSC_InitData, spt_DMD_ATSC_InitData);
78*53ee8cc1Swenshuai.xi UADP_SDT_FIN(&spt_DMD_ATSC_INIT_PARAM[2]);
79*53ee8cc1Swenshuai.xi
80*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_SET_CONFIG_PARAM[0], sizeof(ATSC_SET_CONFIG_PARAM));
81*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_SET_CONFIG_PARAM[1]);
82*53ee8cc1Swenshuai.xi
83*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_SET_QAM_SR_PARAM[0], sizeof(ATSC_SET_QAM_SR_PARAM));
84*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_SET_QAM_SR_PARAM[1]);
85*53ee8cc1Swenshuai.xi
86*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_SET_ACTIVE_PARAM[0], sizeof(ATSC_SET_ACTIVE_PARAM));
87*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_SET_ACTIVE_PARAM[1]);
88*53ee8cc1Swenshuai.xi
89*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_SET_POWER_STATE_PARAM[0], sizeof(ATSC_SET_POWER_STATE_PARAM));
90*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_SET_POWER_STATE_PARAM[1]);
91*53ee8cc1Swenshuai.xi
92*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GET_LOCK_PARAM[0], sizeof(ATSC_GET_LOCK_PARAM));
93*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GET_LOCK_PARAM[1]);
94*53ee8cc1Swenshuai.xi
95*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GET_MODULATION_MODE_PARAM[0], sizeof(ATSC_GET_MODULATION_MODE_PARAM));
96*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GET_MODULATION_MODE_PARAM[1]);
97*53ee8cc1Swenshuai.xi
98*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GET_SIGNAL_STRENGTH_PARAM[0], sizeof(ATSC_GET_SIGNAL_STRENGTH_PARAM));
99*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GET_SIGNAL_STRENGTH_PARAM[1]);
100*53ee8cc1Swenshuai.xi
101*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GET_SIGNAL_QUALITY_PARAM[0], sizeof(ATSC_GET_SIGNAL_QUALITY_PARAM));
102*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GET_SIGNAL_QUALITY_PARAM[1]);
103*53ee8cc1Swenshuai.xi
104*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GET_SNR_PERCENTAGE_PARAM[0], sizeof(ATSC_GET_SNR_PERCENTAGE_PARAM));
105*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GET_SNR_PERCENTAGE_PARAM[1]);
106*53ee8cc1Swenshuai.xi
107*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_SnrData[0], sizeof(DMD_ATSC_SNR_DATA));
108*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_SnrData[1]);
109*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GET_SNR_PARAM[0], sizeof(ATSC_GET_SNR_PARAM));
110*53ee8cc1Swenshuai.xi UADP_SPT_NXT(&spt_DMD_ATSC_GET_SNR_PARAM[1], ATSC_GET_SNR_PARAM, snr, spt_DMD_ATSC_SnrData);
111*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GET_SNR_PARAM[2]);
112*53ee8cc1Swenshuai.xi
113*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GET_UCPKT_ERR_PARAM[0], sizeof(ATSC_GET_UCPKT_ERR_PARAM));
114*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GET_UCPKT_ERR_PARAM[1]);
115*53ee8cc1Swenshuai.xi
116*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_BerData[0], sizeof(DMD_ATSC_BER_DATA));
117*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_BerData[1]);
118*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GET_BER_PARAM[0], sizeof(ATSC_GET_BER_PARAM));
119*53ee8cc1Swenshuai.xi UADP_SPT_NXT(&spt_DMD_ATSC_GET_BER_PARAM[1], ATSC_GET_BER_PARAM, ber, spt_DMD_ATSC_BerData);
120*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GET_BER_PARAM[2]);
121*53ee8cc1Swenshuai.xi
122*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_CfoData[0], sizeof(DMD_ATSC_CFO_DATA));
123*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_CfoData[1]);
124*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_READ_FREQ_OFFSET_PARAM[0], sizeof(ATSC_READ_FREQ_OFFSET_PARAM));
125*53ee8cc1Swenshuai.xi UADP_SPT_NXT(&spt_DMD_ATSC_READ_FREQ_OFFSET_PARAM[1], ATSC_READ_FREQ_OFFSET_PARAM, cfo, spt_DMD_ATSC_CfoData);
126*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_READ_FREQ_OFFSET_PARAM[2]);
127*53ee8cc1Swenshuai.xi
128*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_SET_SERIAL_CONTROL_PARAM[0], sizeof(ATSC_SET_SERIAL_CONTROL_PARAM));
129*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_SET_SERIAL_CONTROL_PARAM[1]);
130*53ee8cc1Swenshuai.xi
131*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_IIC_BYPASS_MODE_PARAM[0], sizeof(ATSC_IIC_BYPASS_MODE_PARAM));
132*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_IIC_BYPASS_MODE_PARAM[1]);
133*53ee8cc1Swenshuai.xi
134*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_SWITCH_SSPI_GPIO_PARAM[0], sizeof(ATSC_SWITCH_SSPI_GPIO_PARAM));
135*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_SWITCH_SSPI_GPIO_PARAM[1]);
136*53ee8cc1Swenshuai.xi
137*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GPIO_LEVEL_PARAM[0], sizeof(ATSC_GPIO_LEVEL_PARAM));
138*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GPIO_LEVEL_PARAM[1]);
139*53ee8cc1Swenshuai.xi
140*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_GPIO_OUT_ENABLE_PARAM[0], sizeof(ATSC_GPIO_OUT_ENABLE_PARAM));
141*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_GPIO_OUT_ENABLE_PARAM[1]);
142*53ee8cc1Swenshuai.xi
143*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_DO_IQ_SWAP_PARAM[0], sizeof(ATSC_DO_IQ_SWAP_PARAM));
144*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_DO_IQ_SWAP_PARAM[1]);
145*53ee8cc1Swenshuai.xi
146*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_DMD_ATSC_REG_PARAM[0], sizeof(ATSC_REG_PARAM));
147*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_DMD_ATSC_REG_PARAM[1]);
148*53ee8cc1Swenshuai.xi
149*53ee8cc1Swenshuai.xi *pIoctl= (FUtopiaIOctl)ATSC_adp_Ioctl;
150*53ee8cc1Swenshuai.xi
151*53ee8cc1Swenshuai.xi return 0;
152*53ee8cc1Swenshuai.xi }
153*53ee8cc1Swenshuai.xi
ATSC_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)154*53ee8cc1Swenshuai.xi MS_U32 ATSC_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
155*53ee8cc1Swenshuai.xi {
156*53ee8cc1Swenshuai.xi MS_U32 u32Ret = UTOPIA_STATUS_FAIL;
157*53ee8cc1Swenshuai.xi char buffer_arg[2048];
158*53ee8cc1Swenshuai.xi
159*53ee8cc1Swenshuai.xi switch(u32Cmd)
160*53ee8cc1Swenshuai.xi {
161*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_SetDbgLevel:
162*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_SetDbgLevel\n"));
163*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_DBG_LEVEL_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
164*53ee8cc1Swenshuai.xi break;
165*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetInfo:
166*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_GetInfo\n"));
167*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GET_INFO_PARAM, spt_DMD_ATSC_GET_INFO_PARAM, buffer_arg, sizeof(buffer_arg));
168*53ee8cc1Swenshuai.xi break;
169*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetLibVer:
170*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_GetLibVer\n"));
171*53ee8cc1Swenshuai.xi break;
172*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_Init:
173*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_Init:
174*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_Init\n"));
175*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_INIT_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
176*53ee8cc1Swenshuai.xi break;
177*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_Exit:
178*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_Exit:
179*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_Exit\n"));
180*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_ID_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
181*53ee8cc1Swenshuai.xi break;
182*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetConfig:
183*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetConfig:
184*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetConfig\n"));
185*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_INIT_PARAM, spt_DMD_ATSC_INIT_PARAM, buffer_arg, sizeof(buffer_arg));
186*53ee8cc1Swenshuai.xi break;
187*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_SetConfig:
188*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_SetConfig:
189*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_SetConfig\n"));
190*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_SET_CONFIG_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
191*53ee8cc1Swenshuai.xi break;
192*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_SetReset:
193*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_SetReset:
194*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_SetReset\n"));
195*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_ID_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
196*53ee8cc1Swenshuai.xi break;
197*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_Set_QAM_SR:
198*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_Set_QAM_SR:
199*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_Set_QAM_SR\n"));
200*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_SET_QAM_SR_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
201*53ee8cc1Swenshuai.xi break;
202*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_SetActive:
203*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_SetActive:
204*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_SetActive\n"));
205*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_SET_ACTIVE_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
206*53ee8cc1Swenshuai.xi break;
207*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_SetPowerState:
208*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_SetPowerState:
209*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_SetPowerState\n"));
210*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_SET_POWER_STATE_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
211*53ee8cc1Swenshuai.xi break;
212*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetLock:
213*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetLock:
214*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetLock\n"));
215*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GET_LOCK_PARAM, spt_DMD_ATSC_GET_LOCK_PARAM, buffer_arg, sizeof(buffer_arg));
216*53ee8cc1Swenshuai.xi break;
217*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetModulationMode:
218*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetModulationMode:
219*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetModulationMode\n"));
220*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GET_MODULATION_MODE_PARAM, spt_DMD_ATSC_GET_MODULATION_MODE_PARAM, buffer_arg, sizeof(buffer_arg));
221*53ee8cc1Swenshuai.xi break;
222*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetSignalStrength:
223*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetSignalStrength:
224*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetSignalStrength\n"));
225*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GET_SIGNAL_STRENGTH_PARAM, spt_DMD_ATSC_GET_SIGNAL_STRENGTH_PARAM, buffer_arg, sizeof(buffer_arg));
226*53ee8cc1Swenshuai.xi break;
227*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetSignalQuality:
228*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetSignalQuality:
229*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetSignalQuality\n"));
230*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GET_SIGNAL_QUALITY_PARAM, spt_DMD_ATSC_GET_SIGNAL_QUALITY_PARAM, buffer_arg, sizeof(buffer_arg));
231*53ee8cc1Swenshuai.xi break;
232*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetSNRPercentage:
233*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetSNRPercentage:
234*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetSNRPercentage\n"));
235*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GET_SNR_PERCENTAGE_PARAM, spt_DMD_ATSC_GET_SNR_PERCENTAGE_PARAM, buffer_arg, sizeof(buffer_arg));
236*53ee8cc1Swenshuai.xi break;
237*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GET_QAM_SNR:
238*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GET_QAM_SNR:
239*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GET_QAM_SNR\n"));
240*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GET_SNR_PARAM, spt_DMD_ATSC_GET_SNR_PARAM, buffer_arg, sizeof(buffer_arg));
241*53ee8cc1Swenshuai.xi break;
242*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_Read_uCPKT_ERR:
243*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_Read_uCPKT_ERR:
244*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_Read_uCPKT_ERR\n"));
245*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_DMD_ATSC_GET_UCPKT_ERR_PARAM, buffer_arg, sizeof(buffer_arg));
246*53ee8cc1Swenshuai.xi break;
247*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetPreViterbiBer:
248*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetPreViterbiBer:
249*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetPreViterbiBer\n"));
250*53ee8cc1Swenshuai.xi break;
251*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetPostViterbiBer:
252*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetPostViterbiBer:
253*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetPostViterbiBer\n"));
254*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GET_BER_PARAM, spt_DMD_ATSC_GET_BER_PARAM, buffer_arg, sizeof(buffer_arg));
255*53ee8cc1Swenshuai.xi break;
256*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_ReadFrequencyOffset:
257*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_ReadFrequencyOffset:
258*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_ReadFrequencyOffset\n"));
259*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_READ_FREQ_OFFSET_PARAM, spt_DMD_ATSC_READ_FREQ_OFFSET_PARAM, buffer_arg, sizeof(buffer_arg));
260*53ee8cc1Swenshuai.xi break;
261*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_SetSerialControl:
262*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_SetSerialControl:
263*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_SetSerialControl\n"));
264*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_SET_SERIAL_CONTROL_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
265*53ee8cc1Swenshuai.xi break;
266*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_IIC_BYPASS_MODE:
267*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_IIC_BYPASS_MODE:
268*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_IIC_BYPASS_MODE\n"));
269*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_IIC_BYPASS_MODE_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
270*53ee8cc1Swenshuai.xi break;
271*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_SWITCH_SSPI_GPIO:
272*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_SWITCH_SSPI_GPIO:
273*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_SWITCH_SSPI_GPIO\n"));
274*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_SWITCH_SSPI_GPIO_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
275*53ee8cc1Swenshuai.xi break;
276*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GPIO_GET_LEVEL:
277*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GPIO_GET_LEVEL:
278*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GPIO_GET_LEVEL\n"));
279*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GPIO_LEVEL_PARAM, spt_DMD_ATSC_GPIO_LEVEL_PARAM, buffer_arg, sizeof(buffer_arg));
280*53ee8cc1Swenshuai.xi break;
281*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GPIO_SET_LEVEL:
282*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GPIO_SET_LEVEL:
283*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GPIO_SET_LEVEL\n"));
284*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GPIO_LEVEL_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
285*53ee8cc1Swenshuai.xi break;
286*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GPIO_OUT_ENABLE:
287*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GPIO_OUT_ENABLE:
288*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GPIO_OUT_ENABLE\n"));
289*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_GPIO_OUT_ENABLE_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
290*53ee8cc1Swenshuai.xi break;
291*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_DoIQSwap:
292*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_DoIQSwap:
293*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_DO_IQ_SWAP\n"));
294*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_DO_IQ_SWAP_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
295*53ee8cc1Swenshuai.xi break;
296*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_GetReg:
297*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_GetReg:
298*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_GetReg\n"));
299*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_REG_PARAM, spt_DMD_ATSC_REG_PARAM, buffer_arg, sizeof(buffer_arg));
300*53ee8cc1Swenshuai.xi break;
301*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_SetReg:
302*53ee8cc1Swenshuai.xi case DMD_ATSC_DRV_CMD_MD_SetReg:
303*53ee8cc1Swenshuai.xi DMD_DBG(printk("ATSC_adp_Ioctl - MDrv_DMD_ATSC_MD_SetReg\n"));
304*53ee8cc1Swenshuai.xi u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_ATSC_REG_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
305*53ee8cc1Swenshuai.xi break;
306*53ee8cc1Swenshuai.xi default:
307*53ee8cc1Swenshuai.xi break;
308*53ee8cc1Swenshuai.xi }
309*53ee8cc1Swenshuai.xi
310*53ee8cc1Swenshuai.xi return u32Ret;
311*53ee8cc1Swenshuai.xi }
312