int SiSTouch_Aegis_Multi_FOR_NEW_DRIVER::call_87() { int ret = 0; if( m_verbose) { LOGI("call_87()"); } for( int i = 0; i < m_retry; i++) { ret = simple_io_master( 0x87, DELAY_FOR_GENEARL , DEFAULT_TIMEOUT, TIMEOUT_FOR_87 ); // [20150304] if(this->m_chipNum >= 7) { printf("chipNum >= 7, delay 4s\n"); int sleepTime = 4 * 1000 * 1000; usleep( sleepTime ); } if ( ret < 0 ) { ret = parse_syscall_return_value( ret, GENERAL_TYPE_FLAG ); break; } else { ret = read_simple_ack_master(ret); if ( ret != ERROR_WRONG_FORMAT ) { break; } } usleep( m_delay ); } if( ret < 0 ) { if ( m_verbose ) { log_out_error_message( ret, 0x87 ); } } else { #ifdef VIA_IOCTL #ifdef CLOSE_AFTER_RESET sis_usb_start(); usleep(WAIT_DEVICE_REMOVE * 1000); #endif for(int i = 0; i < DEVICE_CLOSE_RETRY_TIMES; i++ ) { ret = stop_driver(); // these three error not repeat retry in stop_driver() if(ret != ERROR_ACCESS && ret != ERROR_ENTRY_NOT_EXIST && ret != ERROR_DEVICE_NOT_EXIST) { break; } /* re-find /dev/hidraw* if hidrawCnt changed ====================*/ if(reFindSisTouchName() == false) { } /* ===========================================*/ usleep( DEVICE_CLOSE_RETRY_INTERVAL * 1000 ); } #else ret = stop_driver(); #endif } return ret; }
void CdenableSysStopRemove(void) { stop_driver(); remove_driver(); }
int SiSTouch_Aegis_Multi_FOR_NEW_DRIVER::call_82_without_retry() { if( m_verbose) { LOGI("call_82()"); } int ret = simple_io_master( 0x82, DELAY_FOR_GENEARL ); if ( ret < 0 ) { ret = parse_syscall_return_value( ret, GENERAL_TYPE_FLAG ); } else { ret = read_simple_ack_master(ret); } if( ret < 0 ) { if ( m_verbose ) { log_out_error_message( ret, 0x82 ); } } else { #ifdef VIA_IOCTL #ifdef CLOSE_AFTER_RESET sis_usb_start(); usleep(WAIT_DEVICE_REMOVE * 1000); #endif for(int i = 0; i < DEVICE_CLOSE_RETRY_TIMES; i++ ) { ret = stop_driver(); // these three error not repeat retry in stop_driver() if(ret != ERROR_ACCESS && ret != ERROR_ENTRY_NOT_EXIST && ret != ERROR_DEVICE_NOT_EXIST) { break; } /* re-find /dev/hidraw* if hidrawCnt changed ====================*/ if(reFindSisTouchName() == false) { } /* ===========================================*/ usleep( DEVICE_CLOSE_RETRY_INTERVAL * 1000 ); } #else ret = stop_driver(); #endif } return ret; }