int CitBinder::setCitAutoTestFlag(int data) { int result = 0; F_ID sncit_nvram_fd; int file_lid = AP_CFG_REEB_PRODUCT_INFO_LID; int i = 0,rec_sizem,rec_size,rec_num,loacation; loacation = data; PRODUCT_INFO snCitParam; //LOGI("setCitAutoTestFlag loacation = %d",loacation); memset(&snCitParam,0,sizeof(snCitParam)); sncit_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISREAD); result = read(sncit_nvram_fd.iFileDesc, &snCitParam , rec_size*rec_num); if(result) { snCitParam.barcode[loacation]=1; //LOGI("setCitAutoTestFlag succeseed"); } else { //LOGE("setCitAutoTestFlag fail"); } //LOGI("SNcit.flag snCitParam.barcode[]= %d",snCitParam.barcode[loacation]); NVM_CloseFileDesc(sncit_nvram_fd); sncit_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISWRITE); result = write(sncit_nvram_fd.iFileDesc, &snCitParam , rec_size*rec_num); NVM_CloseFileDesc(sncit_nvram_fd); // FileOp_BackupToBinRegion_All(); //LOGI("setCitAutoTestFlag done %d\n",loacation); return result; }
///////////////////////////////////////gs_cali add start////////////////////////////// int gs_save_cali(int x, int y, int z) { //LOGI("gs_save_calix=%d,y=%d,z=%d",x,y,z); int file_lid = AP_CFG_RDCL_HWMON_ACC_LID;//iFileACCCaliID; F_ID nvram_fid; NVRAM_HWMON_ACC_STRUCT cali; int rec_size; int rec_num; int Ret = 0; /* cali.offset[0] = x; cali.offset[1] = y; cali.offset[2] = z; */ cali.offset[0] = x*65536/9807; cali.offset[1] = y*65536/9807 ; cali.offset[2] = z*65536/9807; //LOGI("gcali.offset[0] =%d, cali.offset[1] =%d, cali.offset[2]=%d",cali.offset[0] , cali.offset[1] ,cali.offset[2]); nvram_fid = NVM_GetFileDesc(file_lid, &rec_size, &rec_num,ISWRITE); if (nvram_fid.iFileDesc < 0) { //LOGE("Unable to open NVRAM file!"); return -1; } //LOGI("open NVRAM success!, rec_num=%d, rec_size=%d",rec_size,rec_num); Ret = write(nvram_fid.iFileDesc, &cali, rec_size*rec_num);//write NVRAM if (Ret < 0) { //LOGE("write NVRAM error!"); return -1; } //LOGI("write NVRAM success! Ret=%d",Ret); NVM_CloseFileDesc(nvram_fid); #if 0 nvram_fid = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, 1); if (nvram_fid.iFileDesc < 0) { //LOGE("Unable to open NVRAM file!"); return -1; } Ret = read(nvram_fid.iFileDesc, &cali, rec_size*rec_num);//read NVRAM if (Ret < 0) { //LOGE("write NVRAM error!"); return -1; } //LOGI("read NVRAM success!, cali x/y/z: %d %d %d",cali.offset[0],cali.offset[1],cali.offset[2]); NVM_CloseFileDesc(nvram_fid); #endif // FileOp_BackupToBinRegion_All(); //LOGI("FileOp_BackupToBinRegion_All()"); return 0; }
//----------------------------------------------------------------------------- bool META_Editor_ReadFile_OP(FT_AP_Editor_read_req *pReq) { FT_AP_Editor_read_cnf kCnf; F_INFO kFileInfo; int iNvmRecSize = 0, iReadSize; F_ID iFD; char* pBuffer = NULL; bool IsRead =true; memset(&kCnf, 0, sizeof(FT_AP_Editor_read_cnf)); kCnf.header.id = pReq->header.id + 1; kCnf.header.token = pReq->header.token; kCnf.file_idx = pReq->file_idx; kCnf.para = pReq->para; iFD = NVM_GetFileDesc(pReq->file_idx,&(kFileInfo.i4RecSize),&(kFileInfo.i4RecNum),IsRead); if (iFD.iFileDesc == -1) { NVRAM_LOG("Error AP_Editor_ReadFile can't open file: file index-%d, %d\n", pReq->file_idx, iNvmRecSize); kCnf.status = META_FAILED; WriteDataToPC(&kCnf, sizeof(FT_AP_Editor_read_cnf), NULL, 0); return false; } iNvmRecSize = kFileInfo.i4RecSize; if (pReq->para > kFileInfo.i4RecNum) { NVRAM_LOG("Error AP_Editor_ReadFile para: %d, %d\n", pReq->file_idx, pReq->para); NVM_CloseFileDesc(iFD); kCnf.status = META_FAILED; WriteDataToPC(&kCnf, sizeof(FT_AP_Editor_read_cnf), NULL, 0); return false; } /* Open NVRAM realted files */ pBuffer = (char*)malloc(iNvmRecSize); lseek(iFD.iFileDesc, (pReq->para - 1) * iNvmRecSize, SEEK_CUR); iReadSize=read(iFD.iFileDesc, pBuffer, iNvmRecSize); if(iNvmRecSize != iReadSize){ NVRAM_LOG("Error AP_Editor_ReadFile :Read size not match:iReadSize(%d),iNvmRecSize(%d),error:%s\n",iReadSize,iNvmRecSize,strerror(errno)); NVM_CloseFileDesc(iFD); kCnf.status = META_FAILED; WriteDataToPC(&kCnf, sizeof(FT_AP_Editor_read_cnf), NULL, 0); return false; } NVM_CloseFileDesc(iFD); kCnf.read_status = META_STATUS_SUCCESS; kCnf.status = META_SUCCESS; WriteDataToPC(&kCnf, sizeof(FT_AP_Editor_read_cnf), pBuffer, iNvmRecSize); NVRAM_LOG("AP_Editor_ReadFile result: file_idx ~ %d para ~ %d read ~ %d\n", pReq->file_idx, pReq->para, iReadSize); free(pBuffer); return true; }
/****************************************************************************** * Functions *****************************************************************************/ static int read_write(unsigned int *data) { int result; F_ID test_nvram_id; int file_lid = AP_CFG_REEB_PRODUCT_INFO_LID; int test_fd; int rec_size=0 , rec_num = 0; bool IsRead = true,IsWrite = false; FLPLOGD("--@read:\n"); test_nvram_id = NVM_GetFileDesc(file_lid, &rec_size, &rec_num,IsRead);//IsRead=true if(test_nvram_id.iFileDesc < 0){ FLPLOGE("--@NVM_GetFileDesc failed\n"); return -1; } result = read(test_nvram_id.iFileDesc,&test_struct,rec_num*rec_size); if(result != rec_num*rec_size){ FLPLOGE("--@Get file failed\n"); return -1; } //读取nvram的数据 FLPLOGD("--@---------read---------\n"); //FLPLOGD("--@perso1[0]:%d\n",test_struct.trace_nvram_data.info_name_perso1[0]); FLPLOGD("--@perso1[0]:%d\n",test_struct.ps_cali_nvram_data[0]); FLPLOGD("--@------------------\n"); if(!NVM_CloseFileDesc(test_nvram_id)) { FLPLOGE("NVM_CloseFileDesc failed\n"); } FLPLOGD("write:\n"); test_nvram_id = NVM_GetFileDesc(file_lid, &rec_size, &rec_num,IsWrite);//IsWrite=false if(test_nvram_id.iFileDesc < 0){ FLPLOGE("NVM_GetFileDesc failed\n"); return -1; } // test_struct.ps_cali_nvram_data[0] = *data; // test_struct.trace_nvram_data.info_name_perso1[0] = *data; test_struct.ps_cali_nvram_data[0] = *data & 0xff; test_struct.ps_cali_nvram_data[1] = (*data & 0xff00) >> 8; FLPLOGD("--------write----------\n"); //FLPLOGD("--@perso1[0]:%d\n",test_struct.trace_nvram_data.info_name_perso1[0]); FLPLOGD("--@perso1[0]:%d\n",test_struct.ps_cali_nvram_data[0]); FLPLOGD("--@------------------\n"); result = write(test_nvram_id.iFileDesc,&test_struct,rec_num*rec_size); if(result != rec_num*rec_size){ FLPLOGE("write file failed\n"); return -1; } if(!NVM_CloseFileDesc(test_nvram_id)) { FLPLOGE("NVM_CloseFileDesc failed\n"); return -1; } return 0; }
//----------------------------------------------------------------------------- FT_AP_Editor_write_cnf META_Editor_WriteFile_OP( FT_AP_Editor_write_req *pReq, char *peer_buf, unsigned short peer_len) { FT_AP_Editor_write_cnf kCnf; F_INFO kFileInfo; int iNvmRecSize = 0, iWriteSize; F_ID iFD; bool IsRead = false; memset(&kCnf, 0, sizeof(FT_AP_Editor_write_cnf)); kCnf.file_idx = pReq->file_idx; kCnf.para = pReq->para; if ((peer_buf == NULL) || (peer_len == 0)) { NVRAM_LOG("Error AP_Editor_WriteFile Peer Buffer Error\n"); kCnf.status = META_FAILED; return kCnf; } iFD = NVM_GetFileDesc(pReq->file_idx,&(kFileInfo.i4RecSize),&(kFileInfo.i4RecNum),IsRead); if (iFD.iFileDesc == -1) { NVRAM_LOG("Error AP_Editor_WriteFile can't open file: file index-%d, %d\n", pReq->file_idx, iNvmRecSize); kCnf.status = META_FAILED; return kCnf; } iNvmRecSize = kFileInfo.i4RecSize; if ((pReq->para > kFileInfo.i4RecNum) || (peer_len > kFileInfo.i4RecSize)) { NVRAM_LOG("Error AP_Editor_WriteFile para: %d, %d, %d\n", pReq->file_idx, pReq->para, peer_len); NVM_CloseFileDesc(iFD); kCnf.status = META_FAILED; return kCnf; } lseek(iFD.iFileDesc, (pReq->para - 1) * iNvmRecSize, SEEK_CUR); iWriteSize = write(iFD.iFileDesc, peer_buf, iNvmRecSize); if(iNvmRecSize != iWriteSize){ NVRAM_LOG("Error AP_Editor_WriteFile :Write size not match:iWriteSize(%d),iNvmRecSize(%d),error:%s\n",iWriteSize,iNvmRecSize,strerror(errno)); NVM_CloseFileDesc(iFD); kCnf.status = META_FAILED; return kCnf; } NVM_CloseFileDesc(iFD); kCnf.write_status = META_STATUS_SUCCESS; kCnf.status = META_SUCCESS; NVRAM_LOG("AP_Editor_WriteFile result: file_idx-%d para-%d write-%d\n", pReq->file_idx, pReq->para, iWriteSize); NVRAM_LOG("AddBackupFileNum Begin"); NVM_AddBackupFileNum(pReq->file_idx); NVRAM_LOG("AddBackupFileNum End"); return kCnf; }
static int read_offset(unsigned int *data) { int result; F_ID test_nvram_id; int file_lid = AP_CFG_REEB_PRODUCT_INFO_LID; int test_fd; int rec_size=0 , rec_num = 0; bool IsRead = true,IsWrite = false; // PSCALILOGD("--@read:\n"); test_nvram_id = NVM_GetFileDesc(file_lid, &rec_size, &rec_num,IsRead);//IsRead=true if(test_nvram_id.iFileDesc < 0){ // PSCALILOGD("--@NVM_GetFileDesc failed\n"); return -1; } result = read(test_nvram_id.iFileDesc,&test_struct,rec_num*rec_size); if(result != rec_num*rec_size){ // PSCALILOGD("--@Get file failed\n"); return -1; } //*data = test_struct.ps_cali_nvram_data[0]; //*data = test_struct.trace_nvram_data.info_name_perso1[0]; *data = test_struct.ps_cali_nvram_data[0] & 0xff; *data = ((test_struct.ps_cali_nvram_data[1] & 0xff) << 8) |*data; // PSCALILOGD("--@---------read---------\n"); //PSCALILOGD("--@perso1[0]:%d\n",test_struct.trace_nvram_data.info_name_perso1[0]); //PSCALILOGD("--@------------------\n"); if(!NVM_CloseFileDesc(test_nvram_id)) { //PSCALILOGD("NVM_CloseFileDesc failed\n"); return -1; } return 0; }
int CitBinder::setPsCali_close(int data) { int result = 0; F_ID ps_nvram_fd = {0}; int rec_size = 0; int rec_num = 0; LOGV("setPsCali_close data: %d,%d,%d\n",data ); ps_nvram_fd = NVM_GetFileDesc(AP_CFG_CUSTOM_FILE_CUSTOM1_LID, &rec_size, &rec_num, ISWRITE); // //LOGE("[LONG][ALS/PS]read:FD %d rec_size %d rec_num %d\n", ps_nvram_fd.iFileDesc, rec_size, rec_num); g_ps_nvram.offset[0]=data; //g_ps_nvram.offset[1]=ps_cali_temp->far_away; //g_ps_nvram.offset[2]=ps_cali_temp->valid; ////LOGE("[LONG][ALS/PS]read: %d,%d,%d\n", g_ps_nvram.offset[0],g_ps_nvram.offset[1],g_ps_nvram.offset[2]); if (rec_size != write(ps_nvram_fd.iFileDesc, &g_ps_nvram, rec_size)){ //LOGE("[LONG][ALS/PS]write to NVRAM ERR\r\n"); return -1; } //LOGE("[LONG][ALS/PS]read: %d,%d,%d\n", g_ps_nvram.offset[0],g_ps_nvram.offset[1],g_ps_nvram.offset[2]); NVM_CloseFileDesc(ps_nvram_fd); // FileOp_BackupToBinRegion_All(); //LOGE("setPsCali_close FileOp_BackupToBinRegion_All"); return result; }
int NvramDrv::writeNvramData( CAMERA_DUAL_CAMERA_SENSOR_ENUM a_eSensorType, CAMERA_DATA_TYPE_ENUM a_eNvramDataType, void *a_pNvramData ) { F_ID rNvramFileID; int i4FileInfo; int i4RecSize; int i4RecNum; NVRAM_DRV_LOG("[writeNvramData] sensor type = %d; NVRAM data type = %d\n", a_eSensorType, a_eNvramDataType); switch (a_eNvramDataType) { case CAMERA_NVRAM_DATA_ISP: i4FileInfo = AP_CFG_RDCL_CAMERA_PARA_LID; break; case CAMERA_NVRAM_DATA_3A: i4FileInfo = AP_CFG_RDCL_CAMERA_3A_LID; break; case CAMERA_NVRAM_DATA_SHADING: i4FileInfo = AP_CFG_RDCL_CAMERA_SHADING_LID; break; case CAMERA_NVRAM_DATA_LENS: i4FileInfo = AP_CFG_RDCL_CAMERA_LENS_LID; break; case CAMERA_NVRAM_DATA_STROBE: i4FileInfo = AP_CFG_RDCL_CAMERA_DEFECT_LID; break; default: NVRAM_DRV_ERR("writeNvramData(): incorrect data type\n"); return NVRAM_WRITE_PARAMETER_ERROR; break; } #ifdef NVRAM_SUPPORT rNvramFileID = NVM_GetFileDesc(i4FileInfo, &i4RecSize, &i4RecNum, ISWRITE); if (rNvramFileID.iFileDesc == INVALID_HANDLE_VALUE) { NVRAM_DRV_ERR("writeNvramData(): create NVRAM file fail\n"); return NVRAM_CAMERA_FILE_ERROR; } if (a_eSensorType == DUAL_CAMERA_MAIN_SECOND_SENSOR) { lseek(rNvramFileID.iFileDesc, i4RecSize, SEEK_SET); } if (a_eSensorType == DUAL_CAMERA_SUB_SENSOR) { lseek(rNvramFileID.iFileDesc, i4RecSize*2, SEEK_SET); } write(rNvramFileID.iFileDesc, a_pNvramData, i4RecSize); NVM_CloseFileDesc(rNvramFileID); #endif return NVRAM_NO_ERROR; }
unsigned char CitBinder::getFlag(int data) { int result = 0; //LOGI("data= %d",data); F_ID sncit_nvram_fd; int file_lid = AP_CFG_REEB_PRODUCT_INFO_LID; int i = 0,rec_sizem,rec_size,rec_num ; unsigned char ret=0 , num = 1; PRODUCT_INFO snCitParam; memset(&snCitParam,0,sizeof(snCitParam)); sncit_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISREAD); result = read(sncit_nvram_fd.iFileDesc, &snCitParam , rec_size*rec_num); // if(result) //LOGI("SNcit.flag read success result = %d",result); // else //LOGE("sn cit setflag fail"); NVM_CloseFileDesc(sncit_nvram_fd); for(i = 0;i <data ;i++) { //LOGI("i= %d",i); if(snCitParam.barcode[i]==1) { //LOGI("SNcit.flag snCitParam.barcode[%d]= %d",i,snCitParam.barcode[i]); int j =0; unsigned char num = 1; for( j;j<data-i-1;j++) { num = num *2 ; } //LOGI("SNcit.flag num= %d",num); ret = ret +num; //LOGI("SNcit.flag ret= %d",ret); } }/* NVM_CloseFileDesc(sncit_nvram_fd); if(snCitParam.barcode[0]==1) ret=1; if(snCitParam.barcode[1]==1) ret=2+ret; if(snCitParam.barcode[2]==1) ret=4+ret; if(snCitParam.barcode[3]==1) ret=8+ret; //LOGI("ret =%d\n",ret); return ret;*/ //LOGI("ret =%d\n",ret); return ret; }
int CitBinder::setFirstPwrOn_Flag() { int result = 0; //int sncit_nvram_fd = 0; F_ID sncit_nvram_fd; // int file_lid = AP_CFG_CUSTOM_FILE_CUSTOM2_LID; int file_lid = 0; int i = 0,rec_sizem,rec_size,rec_num; int snCitParam; memset(&snCitParam,0,sizeof(snCitParam)); sncit_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISREAD); result = read(sncit_nvram_fd.iFileDesc, &snCitParam , rec_size*rec_num); //LOGI("setFirstPwrOn_Flag snCitParam = %d",snCitParam); //LOGI("setFirstPwrOn_Flag result = %d",result); if(result) { //LOGI("setFirstPwrOn_Flag 11111"); snCitParam=1; } else { //LOGI("setFirstPwrOn_Flag 222222"); //LOGE("sn cit setflag fail"); } //LOGI("setFirstPwrOn_Flag snCitParam 2 = %d",snCitParam); //LOGI("setFirstPwrOn_Flag result 2 = %d",result); NVM_CloseFileDesc(sncit_nvram_fd); sncit_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISWRITE); result = write(sncit_nvram_fd.iFileDesc, &snCitParam , rec_size*rec_num); NVM_CloseFileDesc(sncit_nvram_fd); // setresult=FileOp_BackupToBinRegion_All(); //LOGI("setFirstPwrOn_Flag--write resul= %d----FileOp_BackupToBinRegion_All %d",result,setresult); return result; }
int SetHeadphoneCompFltCustParamToNV(AUDIO_ACF_CUSTOM_PARAM_STRUCT *audioParam) { // write to NV ram F_ID audio_nvram_fd; int file_lid = AP_CFG_RDCL_FILE_HEADPHONE_COMPFLT_LID; int i = 0,rec_sizem,rec_size,rec_num,result; audio_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISWRITE); result = write(audio_nvram_fd.iFileDesc, audioParam, rec_size*rec_num); NVM_CloseFileDesc(audio_nvram_fd); return result; }
int GetAudioCompFltCustParamFromNV(AUDIO_ACF_CUSTOM_PARAM_STRUCT *audioParam) { int result = 0; F_ID audio_nvram_fd; int file_lid = AP_CFG_RDCL_FILE_AUDIO_COMPFLT_LID; int i = 0, rec_sizem, rec_size, rec_num; if(!checkNvramReady()) { LOGW("checkNvramReady fail"); } audio_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISREAD); result = read(audio_nvram_fd.iFileDesc, audioParam, rec_size*rec_num); NVM_CloseFileDesc(audio_nvram_fd); return result; }
static int read_NVRAM() { //int gps_nvram_fd = 0; F_ID gps_nvram_fd; int rec_size; int rec_num; int i; memset(&stGPSReadback, 0, sizeof(stGPSReadback)); gps_nvram_fd = NVM_GetFileDesc(AP_CFG_CUSTOM_FILE_GPS_LID, &rec_size, &rec_num, ISREAD); if(gps_nvram_fd.iFileDesc > 0)/*>0 means ok*/ { if(read(gps_nvram_fd.iFileDesc, &stGPSReadback , rec_size*rec_num) < 0) MND_ERR("read NVRAM error, %s\n", strerror(errno));; NVM_CloseFileDesc(gps_nvram_fd); if(strlen(stGPSReadback.dsp_dev) != 0) { MND_MSG("GPS NVRam (%d * %d) : \n", rec_size, rec_num); MND_MSG("dsp_dev : %s\n", stGPSReadback.dsp_dev); } else { MND_ERR("GPS NVRam mnl_config.dev_dsp == NULL \n"); return -1; } } else { MND_ERR("GPS NVRam gps_nvram_fd == %d \n", gps_nvram_fd); return -1; } if(strcmp(stGPSReadback.dsp_dev, "/dev/stpgps") == 0) { MND_ERR("not 3332 UART port\n"); return 1; } return 0; }
unsigned int CitBinder::getFirstPwrOn_Flag() { int result = 0; // int sncit_nvram_fd = 0; F_ID sncit_nvram_fd; // int file_lid = AP_CFG_CUSTOM_FILE_CUSTOM2_LID; int file_lid = 0; int i = 0,rec_sizem,rec_size,rec_num; unsigned int ret=0; //unsigned char barcode[64]; int snCitParam; memset(&snCitParam,0,sizeof(snCitParam)); sncit_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISREAD); result = read(sncit_nvram_fd.iFileDesc, &snCitParam , rec_size*rec_num); if(result) { int temp = 0; //LOGI("getFirstPwrOn_Flag SNcit.flag = %d",snCitParam); //LOGI("getFirstPwrOn_Flag SNcit.flag result = %d",result); }else { int temp = 0; //LOGE("sn cit setflag fail"); } NVM_CloseFileDesc(sncit_nvram_fd); if (snCitParam != 0) { //LOGI("getFirstPwrOn_Flag 11111"); ret =1; } else { //LOGI("getFirstPwrOn_Flag 222222"); ret = 0; } return ret; }
int CitBinder::setPsCali_valid(int data) { int result = 0; F_ID ps_nvram_fd = {0}; int rec_size = 0; int rec_num = 0; ps_nvram_fd = NVM_GetFileDesc(AP_CFG_CUSTOM_FILE_CUSTOM1_LID, &rec_size, &rec_num, ISWRITE); g_ps_nvram.offset[2]=data; if (rec_size != write(ps_nvram_fd.iFileDesc, &g_ps_nvram, rec_size)){ //LOGE("[LONG][ALS/PS]write to NVRAM ERR\r\n"); return -1; } NVM_CloseFileDesc(ps_nvram_fd); //LOGE("setPsCali_vali FileOp_BackupToBinRegion_All"); // FileOp_BackupToBinRegion_All(); return result; }
/***************************************************************************** * FUNCTION * mtk_gps_sys_init * DESCRIPTION * * PARAMETERS * * RETURNS * *****************************************************************************/ int mtk_gps_sys_init() { //int gps_nvram_fd = 0; F_ID gps_nvram_fd; int file_lid = AP_CFG_CUSTOM_FILE_GPS_LID; int rec_size; int rec_num; int i; /*create message queue*/ #if defined(LIB_MQUEUE) mnl_agps_mq_attr.mq_maxmsg = 72; mnl_agps_mq_attr.mq_msgsize = sizeof(MTK_GPS_AGPS_AGENT_MSG); mnl_agps_mq_attr.mq_flags = 0; mnl_agps_mq_fd = mq_open (MNL_AGPS_MQ_NAME, O_CREAT|O_RDWR|O_EXCL, PMODE, &mnl_agps_mq_attr); if (mnl_agps_mq_fd == -1) { MNL_MSG("Fail to create mnl_agps_msg_queue, errno=%s\n",strerror(errno)); if (errno == EEXIST) { MNL_MSG("mnl_agps_msg_queue already exists, unlink it now ...\n"); mq_unlink(MNL_AGPS_MQ_NAME); } return MTK_GPS_ERROR; } #else #endif memset(&stGPSReadback, 0, sizeof(stGPSReadback)); //gps_nvram_fd.iFileDesc = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISREAD); #ifdef MTK_GPS_NVRAM gps_nvram_fd = NVM_GetFileDesc(file_lid, &rec_size, &rec_num, ISREAD); if(gps_nvram_fd.iFileDesc != 0) { read(gps_nvram_fd.iFileDesc, &stGPSReadback , rec_size*rec_num); NVM_CloseFileDesc(gps_nvram_fd); if(strlen(stGPSReadback.dsp_dev) != 0) { gps_nvram_valid = 1; //strncpy(mnl_config.dev_dsp, stGPSReadback.dsp_dev, sizeof(mnl_config.dev_dsp)); MNL_MSG("GPS NVRam (%d * %d) : \n", rec_size, rec_num); //MNL_MSG("dsp_dev(mt6620:/dev/stpgps) : %s\n", stGPSReadback.dsp_dev); //MNL_MSG("gps_if_type : %d\n", stGPSReadback.gps_if_type); MNL_MSG("gps_tcxo_hz : %d\n", stGPSReadback.gps_tcxo_hz); MNL_MSG("gps_tcxo_ppb : %d\n", stGPSReadback.gps_tcxo_ppb); MNL_MSG("gps_tcxo_type : %d\n", stGPSReadback.gps_tcxo_type); MNL_MSG("gps_lna_mode : %d\n", stGPSReadback.gps_lna_mode); //MNL_MSG("gps_sbas_mode : %d\n", stGPSReadback.gps_sbas_mode); } else { MNL_MSG("GPS NVRam mnl_config.dev_dsp == NULL \n"); } } else { MNL_MSG("GPS NVRam gps_nvram_fd == NULL \n"); } #endif return MTK_GPS_SUCCESS; }
// wifi mac int rmmi_eawifi_hdlr (char *addr) { char output[wifi_length] = {0}; int rec_size = 0; int rec_num = 0; unsigned char w_wifi[wifi_length]; int ret, length = 0, i = 0; char* value = addr; printf("rmmi_eawifi_hdlr:RMMI_SET_OR_EXECUTE_MODE\n"); nvram_fd = NVM_GetFileDesc(AP_CFG_RDEB_FILE_WIFI_LID, &rec_size, &rec_num, ISREAD); printf("rec_size=%d,rec_num=%d\n",rec_size,rec_num); if(1 != rec_num) { printf("error:unexpected record num %d\n",rec_num); return -1; } if(sizeof(WIFI_CFG_PARAM_STRUCT) != rec_size) { printf("error:unexpected record size %d\n",rec_size); return -1; } memset(&g_wifi_nvram,0,rec_num*rec_size); ret = read(nvram_fd.iFileDesc, &g_wifi_nvram, rec_num*rec_size); if(-1 == ret||rec_num*rec_size != ret) { printf("error:read wifi mac addr fail!/n"); return -1; } printf("read wifi addr:%02x%02x%02x%02x%02x%02x\n", g_wifi_nvram.aucMacAddress[0], g_wifi_nvram.aucMacAddress[1], g_wifi_nvram.aucMacAddress[2], g_wifi_nvram.aucMacAddress[3], g_wifi_nvram.aucMacAddress[4], g_wifi_nvram.aucMacAddress[5]); NVM_CloseFileDesc(nvram_fd); if(strcmp(addr,"read")==0){ printf("Success: only read wifi address done!\n"); return 0; } nvram_fd = NVM_GetFileDesc(AP_CFG_RDEB_FILE_WIFI_LID, &rec_size, &rec_num, ISWRITE); printf("rec_size=%d,rec_num=%d\n",rec_size,rec_num); if(1 != rec_num) { printf("error:unexpected record num %d\n",rec_num); return -1; } if(sizeof(g_wifi_nvram) != rec_size) { printf("error:unexpected record size %d\n",rec_size); return -1; } memset(g_wifi_nvram.aucMacAddress,0,bt_length); // memset(w_bt,0,bt_length); length = strlen(value); if(length != 12) { printf("error:bt address length is not right!\n"); return -1; } ret = convStrtoHex(value,output,wifi_length,&length); if(-1 == ret) { printf("error:convert wifi address to hex fail\n"); return -1; } else { printf("WIFI Address:%s\n", output); } for(i=0;i<bt_length;i++) { g_wifi_nvram.aucMacAddress[i] = output[i]; } printf("write wifi addr:%02x%02x%02x%02x%02x%02x, value:%02x%02x%02x%02x%02x%02x\n", g_wifi_nvram.aucMacAddress[0], g_wifi_nvram.aucMacAddress[1], g_wifi_nvram.aucMacAddress[2], g_wifi_nvram.aucMacAddress[3], g_wifi_nvram.aucMacAddress[4], g_wifi_nvram.aucMacAddress[5], output[0], output[1], output[2], output[3], output[4], output[5] ); ret = write(nvram_fd.iFileDesc, &g_wifi_nvram , rec_num*rec_size); if(-1 == ret||rec_num*rec_size != ret) { printf("error:write wifi addr fail!\n"); return -1; } NVM_CloseFileDesc(nvram_fd); printf("Success : write wifi addr done!\n"); if(FileOp_BackupToBinRegion_All()) { printf("backup nvram data to nvram binregion success!\n"); } else { printf("error:backup nvram data to nvram binregion fail!\n"); return -1; } sync(); return 0; }
int rmmi_eabt_hdlr ( char *addr) { char output[bt_length] = {0}; int rec_size = 0; int rec_num = 0; unsigned char w_bt[bt_length]; int length; int ret, i = 0; char value[13] = {0}; memset(value, 0, sizeof(value)); nvram_fd = NVM_GetFileDesc(AP_CFG_RDEB_FILE_BT_ADDR_LID, &rec_size, &rec_num, ISREAD); printf("rec_size=%d,rec_num=%d\n",rec_size,rec_num); if(1 != rec_num) { printf("error:unexpected record num %d\n",rec_num); return -1; } if(sizeof(g_bt_nvram) != rec_size) { printf("error:unexpected record size %d\n",rec_size); return -1; } memset(&g_bt_nvram,0,rec_num*rec_size); ret = read(nvram_fd.iFileDesc, &g_bt_nvram, rec_num*rec_size); if(-1 == ret||rec_num*rec_size != ret) { printf("error:read bt addr fail!/n"); return -1; } printf("read pre bt addr:%02x%02x%02x%02x%02x%02x\n", g_bt_nvram.addr[0], g_bt_nvram.addr[1], g_bt_nvram.addr[2], g_bt_nvram.addr[3], g_bt_nvram.addr[4], g_bt_nvram.addr[5] ); NVM_CloseFileDesc(nvram_fd); if(strcmp(addr,"read")==0){ printf("Success: only read bt address done!\n"); return 0; } nvram_fd = NVM_GetFileDesc(AP_CFG_RDEB_FILE_BT_ADDR_LID, &rec_size, &rec_num, ISWRITE); printf("rec_size=%d,rec_num=%d\n",rec_size,rec_num); if(1 != rec_num) { printf("error:unexpected record num %d\n",rec_num); return -1; } if(sizeof(g_bt_nvram) != rec_size) { printf("error:unexpected record size %d\n",rec_size); return -1; } memset(g_bt_nvram.addr,0,bt_length); memset(w_bt,0,bt_length); length = strlen(addr); if(length != 12) { printf("error:bt address length is not right!\n"); return -1; } ret = convStrtoHex(addr,output,bt_length,&length); if(-1 == ret) { printf("error:convert bt address to hex fail\n"); return -1; } else { printf("BT Address:%s\n", output); } for(i=0;i<bt_length;i++) { g_bt_nvram.addr[i] = output[i]; } printf("write bt addr:%02x%02x%02x%02x%02x%02x, value:%02x%02x%02x%02x%02x%02x\n", g_bt_nvram.addr[0], g_bt_nvram.addr[1], g_bt_nvram.addr[2], g_bt_nvram.addr[3], g_bt_nvram.addr[4], g_bt_nvram.addr[5], output[0], output[1], output[2], output[3], output[4], output[5] ); ret = write(nvram_fd.iFileDesc, &g_bt_nvram , rec_num*rec_size); if(-1 == ret||rec_num*rec_size != ret) { printf("error:write wifi addr fail!\n"); return -1; } NVM_CloseFileDesc(nvram_fd); printf("write bt addr success!\n"); if(FileOp_BackupToBinRegion_All()) { printf("backup nvram data to nvram binregion success!\n"); } else { printf("error:backup nvram data to nvram binregion fail!\n"); return -1; } sync(); return 0; }
int NvramDrv::readNvramData( CAMERA_DUAL_CAMERA_SENSOR_ENUM a_eSensorType, CAMERA_DATA_TYPE_ENUM a_eNvramDataType, void *a_pNvramData ) { F_ID rNvramFileID; int i4FileInfo; int i4RecSize; int i4RecNum; //seanlin 121221 avoid camera has not inited> //[ALPS00424402] [CCT6589] Len shading page --> Save to NVRAM --> CCT reboot failed if (!bCustomInit) { cameraCustomInit(); LensCustomInit(); bCustomInit = 1; } //[ALPS00424402] [CCT6589] Len shading page --> Save to NVRAM --> CCT reboot failed //seanlin 121221 avoid camera has not inited< NVRAM_DRV_LOG("[readNvramData] sensor type = %d; NVRAM data type = %d\n", a_eSensorType, a_eNvramDataType); switch (a_eNvramDataType) { case CAMERA_NVRAM_DATA_ISP: i4FileInfo = AP_CFG_RDCL_CAMERA_PARA_LID; break; case CAMERA_NVRAM_DATA_3A: i4FileInfo = AP_CFG_RDCL_CAMERA_3A_LID; break; case CAMERA_NVRAM_DATA_SHADING: i4FileInfo = AP_CFG_RDCL_CAMERA_SHADING_LID; break; case CAMERA_NVRAM_DATA_LENS: i4FileInfo = AP_CFG_RDCL_CAMERA_LENS_LID; break; case CAMERA_NVRAM_DATA_STROBE: i4FileInfo = AP_CFG_RDCL_CAMERA_DEFECT_LID; break; default : NVRAM_DRV_ERR("readNvramData(): incorrect data type\n"); return NVRAM_READ_PARAMETER_ERROR; break; } #ifdef NVRAM_SUPPORT rNvramFileID = NVM_GetFileDesc(i4FileInfo, &i4RecSize, &i4RecNum, ISREAD); if (rNvramFileID.iFileDesc == INVALID_HANDLE_VALUE) { NVRAM_DRV_ERR("readNvramData(): create NVRAM file fail\n"); return NVRAM_CAMERA_FILE_ERROR; } if (a_eSensorType == DUAL_CAMERA_MAIN_SECOND_SENSOR) { lseek(rNvramFileID.iFileDesc, i4RecSize, SEEK_SET); } if (a_eSensorType == DUAL_CAMERA_SUB_SENSOR) { lseek(rNvramFileID.iFileDesc, i4RecSize*2, SEEK_SET); } read(rNvramFileID.iFileDesc, a_pNvramData, i4RecSize); NVM_CloseFileDesc(rNvramFileID); #endif return NVRAM_NO_ERROR; }