int NvramDrv::readDefaultData( unsigned long a_u4SensorID, CAMERA_DATA_TYPE_ENUM a_eNvramDataType, void *a_pNvramData ) { // static bool bCustomInit = 0; //[ALPS00424402] [CCT6589] Len shading page --> Save to NVRAM --> CCT reboot failed NVRAM_DRV_LOG("[readDefaultData] sensor ID = %ld; NVRAM data type = %d\n", a_u4SensorID, a_eNvramDataType); #ifdef NVRAM_SUPPORT if (!bCustomInit) { cameraCustomInit(); LensCustomInit(); bCustomInit = 1; } switch (a_eNvramDataType) { case CAMERA_NVRAM_DATA_ISP: GetCameraDefaultPara(a_u4SensorID, (PNVRAM_CAMERA_ISP_PARAM_STRUCT)a_pNvramData,NULL,NULL,NULL); break; case CAMERA_NVRAM_DATA_3A: GetCameraDefaultPara(a_u4SensorID, NULL,(PNVRAM_CAMERA_3A_STRUCT)a_pNvramData,NULL,NULL); break; case CAMERA_NVRAM_DATA_SHADING: GetCameraDefaultPara(a_u4SensorID, NULL,NULL,(PNVRAM_CAMERA_SHADING_STRUCT)a_pNvramData,NULL); break; case CAMERA_NVRAM_DATA_LENS: GetLensDefaultPara((PNVRAM_LENS_PARA_STRUCT)a_pNvramData); { PNVRAM_LENS_PARA_STRUCT pLensNvramData = (PNVRAM_LENS_PARA_STRUCT)a_pNvramData; pLensNvramData->Version = NVRAM_CAMERA_LENS_FILE_VERSION; } break; case CAMERA_DATA_AE_PLINETABLE: GetCameraDefaultPara(a_u4SensorID, NULL,NULL,NULL,(PAE_PLINETABLE_STRUCT)a_pNvramData); break; case CAMERA_NVRAM_DATA_STROBE: int sz; int ret; //a_eSensorType //ret = getDefaultStrobeNVRam(1, a_pNvramData, &sz); ret = cust_getDefaultStrobeNVRam_V2(a_u4SensorID, a_pNvramData, &sz); break; break; default: break; } #endif return NVRAM_NO_ERROR; }
int MCUDrv::lensSearch( unsigned int a_u4CurrSensorDev, unsigned int a_u4CurrSensorId ) { INT32 i; MCU_DRV_DBG("lensSearch() - Entry \n"); MCU_DRV_DBG("[CurrSensorDev]0x%04x [CurrSensorId]0x%04x\n", a_u4CurrSensorDev, a_u4CurrSensorId); LensCustomInit(); LensCustomGetInitFunc(&MCUDrv::m_LensInitFunc[0]); MCU_DRV_DBG("[LensInitTable-0][SensorId]0x%04x,[LensId]0x%04x\n", MCUDrv::m_LensInitFunc[0].SensorId, MCUDrv::m_LensInitFunc[0].LensId); MCU_DRV_DBG("[LensInitTable-1][SensorId]0x%04x,[LensId]0x%04x\n", MCUDrv::m_LensInitFunc[1].SensorId, MCUDrv::m_LensInitFunc[1].LensId); MCU_DRV_DBG("[LensInitTable-2][SensorId]0x%04x,[LensId]0x%04x\n", MCUDrv::m_LensInitFunc[2].SensorId, MCUDrv::m_LensInitFunc[2].LensId); MCU_DRV_DBG("[LensInitTable-3][SensorId]0x%04x,[LensId]0x%04x\n", MCUDrv::m_LensInitFunc[3].SensorId, MCUDrv::m_LensInitFunc[3].LensId); MCUDrv::m_u4CurrLensIdx = 0; if (a_u4CurrSensorDev == SENSOR_DEV_MAIN) // only search for main sensor, dummy for sub sensor always -> need modify for support 3D { for (i=0; i<MAX_NUM_OF_SUPPORT_LENS; i++) { if ((MCUDrv::m_LensInitFunc[i].LensId == DUMMY_LENS_ID) || (MCUDrv::m_LensInitFunc[i].LensId == SENSOR_DRIVE_LENS_ID) || (MCUDrv::m_LensInitFunc[i].LensId == FM50AF_LENS_ID) ) { MCUDrv::m_u4CurrLensIdx = i; } } // force assign LensIdx if SensorId != DUMMY_SENSOR_ID (to support backup lens/new lens driver) for (i=0; i<MAX_NUM_OF_SUPPORT_LENS; i++) { if ((MCUDrv::m_LensInitFunc[i].SensorId == a_u4CurrSensorId) && (a_u4CurrSensorId!=0xFFFF) && (a_u4CurrSensorId!=0x0)) { MCUDrv::m_u4CurrLensIdx = i; MCU_DRV_DBG("[idx]%d [CurrSensorId]0x%04x,[CurrLensIdx]0x%04x\n", i, a_u4CurrSensorId, MCUDrv::m_u4CurrLensIdx); break; } } } LensCustomSetIndex(MCUDrv::m_u4CurrLensIdx); MCU_DRV_DBG("[CurrLensIdx]%d", MCUDrv::m_u4CurrLensIdx); return MCU_NO_ERROR; }
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; }