コード例 #1
0
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;
}
コード例 #2
0
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;
}
コード例 #3
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;
}