Beispiel #1
0
void setDefaultBootline(void)
{
    memset(nvramData.szBootline, 0, NVRAM_BOOTLINE_LEN);
    strncpy(nvramData.szBootline, DEFAULT_BOOTLINE_6345, strlen(DEFAULT_BOOTLINE_6345));
    printf("Use default boot line parameters: %s\n", DEFAULT_BOOTLINE_6345);
    writeNvramData();
    readNvramData();
    convertBootInfo();
}
int
NvramDrv::readNvram(
    CAMERA_DUAL_CAMERA_SENSOR_ENUM a_eSensorType,
    unsigned long a_u4SensorID,
    CAMERA_DATA_TYPE_ENUM a_eNvramDataType,
	void *a_pNvramData,
	unsigned long a_u4NvramDataSize
)
{
    int err = NVRAM_NO_ERROR;

    NVRAM_DRV_LOG("[readNvram] sensor type = %d; NVRAM data type = %d\n", a_eSensorType, a_eNvramDataType);

	if ((a_eSensorType > DUAL_CAMERA_MAIN_SECOND_SENSOR) ||
		(a_eSensorType < DUAL_CAMERA_MAIN_SENSOR) ||
		//(a_eNvramDataType > CAMERA_DATA_AE_PLINETABLE) ||
		(a_eNvramDataType >= CAMERA_DATA_TYPE_NUM) ||
		(a_eNvramDataType < CAMERA_NVRAM_DATA_ISP) ||
		(a_pNvramData == NULL) ||
		(a_u4NvramDataSize != g_u4NvramDataSize[a_eNvramDataType]))
	{
		NVRAM_DRV_LOG("[readNvram] error: line=%d",__LINE__);
        return NVRAM_READ_PARAMETER_ERROR;
    }



    Mutex::Autolock lock(mLock);

    switch(a_eNvramDataType) {
    case CAMERA_NVRAM_DATA_ISP:
    case CAMERA_NVRAM_DATA_3A:
    case CAMERA_NVRAM_DATA_SHADING:
	case CAMERA_NVRAM_DATA_LENS:
	case CAMERA_NVRAM_DATA_STROBE:
		err = readNvramData(a_eSensorType, a_eNvramDataType, a_pNvramData);
        if (err != NVRAM_NO_ERROR) {
		    NVRAM_DRV_ERR("readNvramData() error: ==> readDefaultData()\n");
			int para1;
		    if(a_eNvramDataType==CAMERA_NVRAM_DATA_STROBE)
		    	para1=a_eSensorType;
		    else
		    	para1=a_u4SensorID;
            err = readDefaultData(para1, a_eNvramDataType, a_pNvramData);
            if (err != NVRAM_NO_ERROR) {
		        NVRAM_DRV_ERR("readDefaultData() error:\n");
	        }
            break;
	    }

		if (checkDataVersion(a_eNvramDataType, a_pNvramData) != NVRAM_NO_ERROR) {
			int para1;
		    if(a_eNvramDataType==CAMERA_NVRAM_DATA_STROBE)
		    	para1=a_eSensorType;
		    else
		    	para1=a_u4SensorID;
			err = readDefaultData(para1, a_eNvramDataType, a_pNvramData);
			if (err != NVRAM_NO_ERROR) {
		        NVRAM_DRV_ERR("readDefaultData() error:\n");
	        }
		}
        break;
    case CAMERA_DATA_AE_PLINETABLE:
            err = readDefaultData(a_u4SensorID, a_eNvramDataType, a_pNvramData);
            if (err != NVRAM_NO_ERROR) {
		        NVRAM_DRV_ERR("readDefaultData() AE Pline table error:\n");
	     }
    	break;

    default:
        break;
    }

    return err;
}