/**

@brief   Get system register byte.

*/
int
tua9001_GetSysRegByte(
	TUNER_MODULE *pTuner,
	unsigned short RegAddr,
	unsigned char *pReadingByte
	)
{
	// Get demod system register byte.
//	if(RTK_SYS_Byte_Read(RegAddr, LEN_1_BYTE, pReadingByte) != TRUE)
//		goto error_status_get_system_registers;

	I2C_BRIDGE_MODULE *pI2cBridge;
	BASE_INTERFACE_MODULE *pBaseInterface;

	struct dvb_usb_device	*d;	

	// Get I2C bridge.
	pI2cBridge = pTuner->pI2cBridge;
	pBaseInterface = pTuner->pBaseInterface;	

	pBaseInterface->GetUserDefinedDataPointer(pBaseInterface, (void **)&d);	

	if ( read_usb_sys_char_bytes(d, RTD2832U_SYS, RegAddr, pReadingByte, LEN_1_BYTE) )
		goto error_status_get_system_registers;

	return FUNCTION_SUCCESS;


error_status_get_system_registers:
	return FUNCTION_ERROR;
}
int rtl2832u_remoto_control_initial_setting(struct dvb_usb_device *d)
{ 
	


	//begin setting
	int ret = RC_FUNCTION_SUCCESS;
	u8 data=0,i=0,NumberOfRcInitialTable=0;


	deb_rc("+rc_%s\n", __FUNCTION__);

	NumberOfRcInitialTable = sizeof(p_rtl2832u_rc_initial_table)/sizeof(RT_rc_set_reg_struct);
	

	for (i=0;i<NumberOfRcInitialTable;i++)
	{	
		switch(p_rtl2832u_rc_initial_table[i].type)
		{
			case RTD2832U_SYS:
			case RTD2832U_USB:
				data=p_rtl2832u_rc_initial_table[i].data;
				if (p_rtl2832u_rc_initial_table[i].op != OP_NO)
				{
					if ( read_usb_sys_char_bytes( d , 
								      p_rtl2832u_rc_initial_table[i].type , 
								      p_rtl2832u_rc_initial_table[i].address,
								      &data , 
								      LEN_1) ) 
					{
						deb_rc("+%s : rc- usb or sys register read error! \n", __FUNCTION__);
						ret=RC_FUNCTION_UNSUCCESS;
						goto error;
					}					
				
					if (p_rtl2832u_rc_initial_table[i].op == OP_AND){
					        data &=  p_rtl2832u_rc_initial_table[i].op_mask;	
					}
					else{//OP_OR
						data |=  p_rtl2832u_rc_initial_table[i].op_mask;
					}			
				}
				
				if ( write_usb_sys_char_bytes( d , 
							      p_rtl2832u_rc_initial_table[i].type , 
							      p_rtl2832u_rc_initial_table[i].address,
							      &data , 
							      LEN_1) ) 
				{
						deb_rc("+%s : rc- usb or sys register write error! \n", __FUNCTION__);
						ret= RC_FUNCTION_UNSUCCESS;
						goto error;
				}
		
			break;
			case RTD2832U_RC:
				data= p_rtl2832u_rc_initial_table[i].data;
				if (p_rtl2832u_rc_initial_table[i].op != OP_NO)
				{
					if ( read_rc_char_bytes( d , 
								 p_rtl2832u_rc_initial_table[i].type , 
								 p_rtl2832u_rc_initial_table[i].address,
								 &data , 
								 LEN_1) ) 
					{
						deb_rc("+%s : rc -ir register read error! \n", __FUNCTION__);
						ret=RC_FUNCTION_UNSUCCESS;
						goto error;
					}					
				
					if (p_rtl2832u_rc_initial_table[i].op == OP_AND){
					        data &=  p_rtl2832u_rc_initial_table[i].op_mask;	
					}
					else{//OP_OR
					    data |=  p_rtl2832u_rc_initial_table[i].op_mask;
					}			
				}
				if ( write_rc_char_bytes( d , 
							      p_rtl2832u_rc_initial_table[i].type , 
							      p_rtl2832u_rc_initial_table[i].address,
							      &data , 
							      LEN_1) ) 
				{
					deb_rc("+%s : rc -ir register write error! \n", __FUNCTION__);
					ret=RC_FUNCTION_UNSUCCESS;
					goto error;
				}

			break;
			default:
				deb_rc("+%s : rc table error! \n", __FUNCTION__);
				ret=RC_FUNCTION_UNSUCCESS;
				goto error;			     	
			break;	
		}	
	}
	rtl2832u_remote_control_state=RC_INSTALL_OK;
	ret=RC_FUNCTION_SUCCESS;
error: 
	deb_rc("-rc_%s ret = %d \n", __FUNCTION__, ret);
	return ret;

	
}