static void dtvd_tuner_main_inevt_rcv( void ) { DTVD_TUNER_RCVMSG_t* msgp = &tdtvd_tuner_msg; if( tdtvd_tuner_main.inevt[0].available != D_DTVD_TUNER_FALSE ) { dtvd_tuner_memset( msgp, 0x00, sizeof(DTVD_TUNER_RCVMSG_t), sizeof(DTVD_TUNER_RCVMSG_t) ); msgp->available = D_DTVD_TUNER_TRUE; msgp->toid = tdtvd_tuner_main.inevt[0].toid; msgp->fromid = tdtvd_tuner_main.inevt[0].fromid; msgp->command = tdtvd_tuner_main.inevt[0].command; dtvd_tuner_memmove( &msgp->buff, &tdtvd_tuner_main.inevt[0].buff, sizeof(DTVD_TUNER_MSG_u), sizeof(DTVD_TUNER_MSG_u) ); dtvd_tuner_memmove( &tdtvd_tuner_main.inevt[0], &tdtvd_tuner_main.inevt[1], sizeof(DTVD_TUNER_RCVMSG_t[D_DTVD_TUNER_INEVT_CUE_NUM-1]), sizeof(DTVD_TUNER_RCVMSG_t[D_DTVD_TUNER_INEVT_CUE_NUM-1]) ); tdtvd_tuner_main.inevt[D_DTVD_TUNER_INEVT_CUE_NUM - 1].available = D_DTVD_TUNER_FALSE; } else { msgp->available = D_DTVD_TUNER_FALSE; } return; }
static void dtvd_tuner_timer_handler_callfunc ( unsigned long funcid, unsigned char *need_toevt ) { unsigned long mask; if( need_toevt == NULL ) { DTVD_TUNER_SYSERR_RANK_A( D_DTVD_TUNER_SYSERR_DRV_PARAM, DTVD_TUNER_TIMER, 0, 0, 0, 0, 0, 0 ); return; } *need_toevt = D_DTVD_TUNER_TRUE; mask = 0; set_bit( D_DTVD_TUNER_TIMER_PWRON_HALFWAY, (void *)&mask ); if( ( funcid & mask ) == mask ) { { DTVD_TUNER_MSG_u body; unsigned int len; len = sizeof(DTVD_TUNER_EXEVT_TIMEOUT_t); dtvd_tuner_memset( &body, 0x00, len, sizeof(DTVD_TUNER_MSG_u) ); dtvd_tuner_msg_send( D_DTVD_TUNER_BLK_TIMER, D_DTVD_TUNER_CMD_TIMER_PWR_HALFTIMEOUT, &body, len ); } *need_toevt = D_DTVD_TUNER_FALSE; } mask = 0; set_bit( D_DTVD_TUNER_TIMER_PWRON, (void *)&mask ); if( ( funcid & mask ) == mask ) { dtvd_tuner_timer_pwron(); *need_toevt = D_DTVD_TUNER_TRUE; } return ; }
static void dtvd_tuner_main_init( void ) { DTVD_TUNER_CONTROL_t *info = &tdtvd_tuner_info; daemonize( "dtvtuner"); atomic_set( &info->event_flg, 0 ); info->block_flg = 0x00; init_waitqueue_head( &info->wait_queue ); init_waitqueue_head( &info->wait_queue_block ); dtvd_tuner_msg_init( ( D_DTVD_TUNER_EXEVT_CUE_NUM + 1 ), sizeof( DTVD_TUNER_EX_MSG_DATA_t ) ); dtvd_tuner_memset( &tdtvd_tuner_monitor, 0x00, sizeof( DTVD_TUNER_MONITOR_INFO_t ), sizeof( DTVD_TUNER_MONITOR_INFO_t ) ); dtvd_tuner_memset( &tdtvd_tuner_main, 0x00, sizeof( DTVD_TUNER_MAIN_t ), sizeof( DTVD_TUNER_MAIN_t ) ); dtvd_tuner_timer_init(); dtvd_tuner_core_init(); dtvd_tuner_ant_init(); dtvd_tuner_tuner_init(); dtvd_tuner_agc_init(); dtvd_tuner_tmcc_init(); dtvd_tuner_cn_init(); dtvd_tuner_ber_init(); dtvd_tuner_state_init(); dtvd_tuner_autoeco_init(); dtvd_tuner_tsprcv_init(); return; }
void dtvd_tuner_main_inevt_send_msg ( signed int evtcode, unsigned short toid, unsigned short fromid, void* body, unsigned int length ) { DTVD_TUNER_RCVMSG_t* send = tdtvd_tuner_main.inevt; signed int i; if( body == D_DTVD_TUNER_NULL ) { DTVD_TUNER_SYSERR_RANK_A( D_DTVD_TUNER_SYSERR_DRV_PARAM, DTVD_TUNER_MAIN, 0, 0, 0, 0, 0, 0 ); return; } for( i = 0; i < D_DTVD_TUNER_INEVT_CUE_NUM; i++ ) { if( send->available == D_DTVD_TUNER_FALSE ) { break; } send++; } if( i == D_DTVD_TUNER_INEVT_CUE_NUM ) { DTVD_TUNER_SYSERR_RANK_A( D_DTVD_TUNER_SYSERR_DRV_ETC, DTVD_TUNER_MAIN, 0, 0, 0, 0, 0, 0 ); return; } dtvd_tuner_memset( send, 0x00, sizeof(DTVD_TUNER_RCVMSG_t), sizeof(DTVD_TUNER_RCVMSG_t) ); send->available = D_DTVD_TUNER_TRUE; send->toid = toid; send->fromid = fromid; send->command = evtcode; dtvd_tuner_memmove( &send->buff, body, length, sizeof(DTVD_TUNER_MSG_u) ); return; }
static void dtvd_tuner_main_exevt_rcv( void ) { DTVD_TUNER_EX_MSG_DATA_t exevt; DTVD_TUNER_RCVMSG_t* msgp = &tdtvd_tuner_msg; dtvd_tuner_memset( &exevt, 0x00, sizeof(DTVD_TUNER_EX_MSG_DATA_t), sizeof(DTVD_TUNER_EX_MSG_DATA_t) ); msgp->available = D_DTVD_TUNER_FALSE; dtvd_tuner_msg_rcv( &exevt ); dtvd_tuner_memset( msgp, 0x00, sizeof(DTVD_TUNER_RCVMSG_t), sizeof(DTVD_TUNER_RCVMSG_t) ); msgp->fromid = exevt.fromid; msgp->command = exevt.command; dtvd_tuner_memmove( &msgp->buff, &exevt.buf, sizeof(DTVD_TUNER_MSG_u), sizeof(DTVD_TUNER_MSG_u) ); return; }
void dtvd_tuner_tuner_inevt_core_end( void ) { DTVD_TUNER_INEVT_CORE_TUNER_END_t data; unsigned int length = sizeof(DTVD_TUNER_INEVT_CORE_TUNER_END_t); DTVD_DEBUG_MSG_ENTER( 0, 0, 0 ); dtvd_tuner_memset( &data, 0x00, length, length ); dtvd_tuner_main_inevt_send_msg( D_DTVD_TUNER_INEVT_CORE_TUNER_END, D_DTVD_TUNER_CTL_CORE, D_DTVD_TUNER_CTL_TUNER, &data, length ); DTVD_DEBUG_MSG_EXIT(); return; }
void dtvd_tuner_tuner_inevt_state_tuner_init( void ) { DTVD_TUNER_INEVT_STATE_TUNER_INIT_t data; unsigned int length = sizeof(DTVD_TUNER_INEVT_STATE_TUNER_INIT_t); DTVD_DEBUG_MSG_ENTER( 0, 0, 0 ); dtvd_tuner_memset( &data, 0x00, length, length ); dtvd_tuner_main_inevt_send_msg( D_DTVD_TUNER_INEVT_STATE_TUNER_INIT, D_DTVD_TUNER_CTL_WATCH_STATE, D_DTVD_TUNER_CTL_TUNER, &data, length ); DTVD_DEBUG_MSG_EXIT(); return; }
void dtvd_tuner_tuner_inevt_tmcc_stop( void ) { DTVD_TUNER_INEVT_TMCC_TUNER_STOP_t data; unsigned int length = sizeof(DTVD_TUNER_INEVT_TMCC_TUNER_STOP_t); DTVD_DEBUG_MSG_ENTER( 0, 0, 0 ); dtvd_tuner_memset( &data, 0x00, length, length ); dtvd_tuner_main_inevt_send_msg( D_DTVD_TUNER_INEVT_TMCC_TUNER_STOP, D_DTVD_TUNER_CTL_WATCH_TMCC, D_DTVD_TUNER_CTL_TUNER, &data, length ); DTVD_DEBUG_MSG_EXIT(); return; }
void dtvd_tuner_tuner_inevt_core_tune_set( unsigned int result ) { DTVD_TUNER_INEVT_CORE_TUNER_TUNE_SET_t data; unsigned int length = sizeof(DTVD_TUNER_INEVT_CORE_TUNER_TUNE_SET_t); DTVD_DEBUG_MSG_ENTER( 0, 0, 0 ); dtvd_tuner_memset( &data, 0x00, length, length ); data.result = result; dtvd_tuner_main_inevt_send_msg( D_DTVD_TUNER_INEVT_CORE_TUNER_TUNE_SET, D_DTVD_TUNER_CTL_CORE, D_DTVD_TUNER_CTL_TUNER, &data, length ); DTVD_DEBUG_MSG_EXIT(); return; }
void dtvd_tuner_tuner_inevt_state_tuner_confirm( unsigned char kind ) { DTVD_TUNER_INEVT_STATE_TUNER_CONFIRM_t data; unsigned int length = sizeof(DTVD_TUNER_INEVT_STATE_TUNER_CONFIRM_t); DTVD_DEBUG_MSG_ENTER( 0, 0, 0 ); dtvd_tuner_memset( &data, 0x00, length, length ); data.kind = kind; dtvd_tuner_main_inevt_send_msg( D_DTVD_TUNER_INEVT_STATE_TUNER_CONFIRM, D_DTVD_TUNER_CTL_WATCH_STATE, D_DTVD_TUNER_CTL_TUNER, &data, length ); DTVD_DEBUG_MSG_EXIT(); return; }
void dtvd_tuner_tuner_inevt_core_nostd ( unsigned char kind ) { DTVD_TUNER_INEVT_CORE_TUNER_NONSTD_t data; unsigned int length = sizeof(DTVD_TUNER_INEVT_CORE_TUNER_NONSTD_t); DTVD_DEBUG_MSG_ENTER( kind, 0, 0 ); dtvd_tuner_memset( &data, 0x00, length, length ); data.kind = kind; dtvd_tuner_main_inevt_send_msg( D_DTVD_TUNER_INEVT_CORE_TUNER_NONSTD, D_DTVD_TUNER_CTL_CORE, D_DTVD_TUNER_CTL_TUNER, &data, length ); DTVD_DEBUG_MSG_EXIT(); return; }
void dtvd_tuner_tuner_inevt_core_tune_ng ( unsigned char cause ) { DTVD_TUNER_INEVT_CORE_TUNER_TUNE_NG_t data; unsigned int length = sizeof(DTVD_TUNER_INEVT_CORE_TUNER_TUNE_NG_t); printk("********ng**cause=%d**%s\n", cause, __func__); DTVD_DEBUG_MSG_ENTER( cause, 0, 0 ); dtvd_tuner_memset( &data, 0x00, length, length ); data.cause = cause; dtvd_tuner_main_inevt_send_msg( D_DTVD_TUNER_INEVT_CORE_TUNER_TUNE_NG, D_DTVD_TUNER_CTL_CORE, D_DTVD_TUNER_CTL_TUNER, &data, length ); DTVD_DEBUG_MSG_EXIT(); return; }
static void dtvd_tuner_timer_tasklet ( unsigned long data ) { DTVD_TUNER_MSG_u body; unsigned int len; DTVD_DEBUG_MSG_ENTER( (int)data, 0, 0 ); len = sizeof(DTVD_TUNER_EXEVT_TIMEOUT_t); dtvd_tuner_memset( &body, 0x00, len, sizeof(DTVD_TUNER_MSG_u) ); body.ex_timeout.timer_id = data; dtvd_tuner_msg_send( D_DTVD_TUNER_BLK_TIMER, D_DTVD_TUNER_CMD_TIMER_TIMEOUT, &body, len ); DTVD_DEBUG_MSG_EXIT(); return; }