/** @brief Set system register byte. */ int tua9001_SetSysRegByte( TUNER_MODULE *pTuner, unsigned short RegAddr, unsigned char WritingByte ) { // Set demod system register byte. // if(RTK_SYS_Byte_Write(RegAddr, LEN_1_BYTE, &WritingByte) != TRUE) // goto error_status_set_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 ( write_usb_sys_char_bytes( d, RTD2832U_SYS, RegAddr, &WritingByte, LEN_1_BYTE) ) goto error_status_set_system_registers; return FUNCTION_SUCCESS; error_status_set_system_registers: return FUNCTION_ERROR; }
static int rtl2832u_streaming_ctrl(struct dvb_usb_adapter *adap , int onoff) { u8 data[2]; //3 to avoid scanning channels loss if(onoff) { data[0] = data[1] = 0; if ( write_usb_sys_char_bytes( adap->dev , RTD2832U_USB , USB_EPA_CTL , data , 2) ) goto error; } else { data[0] = 0x10; //3stall epa, set bit 4 to 1 data[1] = 0x02; //3reset epa, set bit 9 to 1 if ( write_usb_sys_char_bytes( adap->dev , RTD2832U_USB , USB_EPA_CTL , data , 2) ) goto error; } return 0; error: return -1; }
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; }