Merge branch 'Branch_S550_Fast_Emmc' of 192.168.6.216:linux-em-group/s530-ntk into Branch_S550_Emmc
This commit is contained in:
		
						commit
						400bebebd6
					
				| 
						 | 
				
			
			@ -34,6 +34,9 @@ SF_THREAD_S MMCMonitorTskCfg =
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define MIN_DISK_FREE_SIZE_MB 30
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SF_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
 | 
			
		||||
 | 
			
		||||
SF_ST_MMC_DEV *pMMCDev = NULL;
 | 
			
		||||
| 
						 | 
				
			
			@ -48,22 +51,21 @@ SF_ST_MMC_DEV *SF_GetMMCDev(void)
 | 
			
		|||
	return pMMCDev;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SF_StrgInit(void)
 | 
			
		||||
{
 | 
			
		||||
    for(int i = 0; i < MMC_DEV_MAX_NUM; i++)
 | 
			
		||||
    {
 | 
			
		||||
void SF_StrgInit(void) {
 | 
			
		||||
    for (int i = 0; i < MMC_DEV_MAX_NUM; i++) {
 | 
			
		||||
        sf_mmc_dev[i] = (SF_ST_MMC_DEV *)malloc(sizeof(SF_ST_MMC_DEV));
 | 
			
		||||
        if(sf_mmc_dev[i] == NULL) {
 | 
			
		||||
        if (sf_mmc_dev[i] == NULL) {
 | 
			
		||||
            MLOGD("SF_StrgInit Failed, id = %d\n", i);
 | 
			
		||||
            // Handle malloc failure
 | 
			
		||||
            exit(EXIT_FAILURE);
 | 
			
		||||
        }
 | 
			
		||||
        sf_mmc_dev[i]->dcf_handle        = -1;
 | 
			
		||||
		sf_mmc_dev[i]->dev_type			 = MMC_DEV_NO;
 | 
			
		||||
        sf_mmc_dev[i]->node              = MMC_DEV_NODE_STATE_NO_EXIST;
 | 
			
		||||
        sf_mmc_dev[i]->moumted_state     = MMC_DEV_MOUNT_STATE_UNMOUNTED;
 | 
			
		||||
        sf_mmc_dev[i]->space_state       = MMC_DEV_SPACE_STATE_ENOUGH;
 | 
			
		||||
        sf_mmc_dev[i]->loop_state        = MMC_DEV_LOOP_STATE_OFF;
 | 
			
		||||
        sf_mmc_dev[i]->dcf_handle = -1;
 | 
			
		||||
        sf_mmc_dev[i]->dev_type = MMC_DEV_NO;
 | 
			
		||||
        sf_mmc_dev[i]->node = MMC_DEV_NODE_STATE_NO_EXIST;
 | 
			
		||||
        sf_mmc_dev[i]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED;
 | 
			
		||||
        sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
 | 
			
		||||
        sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_OFF;
 | 
			
		||||
    }
 | 
			
		||||
	pMMCDev = (SF_ST_MMC_DEV *)malloc(sizeof(SF_ST_MMC_DEV));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SF_StrgUnInit(void)
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +103,7 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev)
 | 
			
		|||
	
 | 
			
		||||
    diskFree = diskFree/1024/1024;
 | 
			
		||||
    
 | 
			
		||||
    if(diskFree < 30) /* 30MB */
 | 
			
		||||
    if(diskFree < MIN_DISK_FREE_SIZE_MB) /* 30MB */
 | 
			
		||||
    {
 | 
			
		||||
        ret = 1;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -196,7 +198,7 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf)
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for(int i = 0; i < 2; i++)
 | 
			
		||||
	for(int i = 0; i < MMC_DEV_MAX_NUM; i++)
 | 
			
		||||
	{
 | 
			
		||||
		MLOGD("node:%d, mount:%d, loop:%d\n", 
 | 
			
		||||
				sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state, 
 | 
			
		||||
| 
						 | 
				
			
			@ -321,6 +323,7 @@ SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void)
 | 
			
		|||
	else
 | 
			
		||||
	{
 | 
			
		||||
		MLOGD("Strg Check, workable_dev = %d\n", workable_dev);
 | 
			
		||||
		SF_SetMMCDev(sf_mmc_dev[workable_dev]);
 | 
			
		||||
		return sf_mmc_dev[workable_dev];
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -339,6 +342,9 @@ static void* mmc_monitoring_thread(void *arg)
 | 
			
		|||
 | 
			
		||||
int sf_mmc_dev_check_start(void)
 | 
			
		||||
{
 | 
			
		||||
#if	USE_MMC_DEV_CHECK
 | 
			
		||||
	SF_StrgInit();// 初始化sf_mmc设备Obj
 | 
			
		||||
#endif
 | 
			
		||||
	int ret = pthread_create(&MMCMonitorTskCfg.TskId, NULL, mmc_monitoring_thread, NULL);
 | 
			
		||||
	if(ret != SF_SUCCESS)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -346,7 +352,7 @@ int sf_mmc_dev_check_start(void)
 | 
			
		|||
		return ret;
 | 
			
		||||
	}
 | 
			
		||||
	MMCMonitorTskCfg.IsRun = 1;
 | 
			
		||||
	MLOGD("mmc_dev check create success!\n");
 | 
			
		||||
	MLOGD("00 mmc_dev check create success!\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
#define EMMC_DEVICE_NAME                          "/dev/mmcblk1p1"
 | 
			
		||||
#define EMMC_MOUNT_ROOT                           "/mnt/sd2"
 | 
			
		||||
 | 
			
		||||
#define USE_MMC_DEV_CHECK	(0)
 | 
			
		||||
#define USE_MMC_DEV_CHECK	(1)
 | 
			
		||||
 | 
			
		||||
typedef enum
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -348,9 +348,7 @@ void System_OnStrgInit_FS(void)
 | 
			
		|||
		GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_BUF, (UINT32)&Pool);
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
#if	USE_MMC_DEV_CHECK
 | 
			
		||||
	SF_StrgInit();// 初始化sf_mmc设备Obj
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(__FREERTOS)
 | 
			
		||||
	GxStrg_SetConfigEx(STRG_ID_SD, FILE_CFG_FS_TYPE, FileSys_GetOPS_Linux()); //for FILE_CFG_FS_TYPE, DevID is don't care
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -866,14 +866,18 @@ static DCF_HANDLE MovieFast_Get_DCF_Handle(void)
 | 
			
		|||
//#else
 | 
			
		||||
	//return g_dcf_hdl;
 | 
			
		||||
//#endif
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
	SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	{
 | 
			
		||||
		DBG_ERR("No MMC_Dev Can use!\n");
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	DBG_WRN("photofast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
 | 
			
		||||
	DBG_WRN("Moviefast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
 | 
			
		||||
	return mmc_dev->dcf_handle;
 | 
			
		||||
#else
 | 
			
		||||
	return g_dcf_hdl;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
INT32 MovieFast_Wait_FileSys(UINT32 timeout_ms)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -931,6 +935,7 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
 | 
			
		|||
		DBG_ERR("Exceed max dcf file!\r\n");
 | 
			
		||||
		pFileName[0] = '\0';
 | 
			
		||||
	} else {
 | 
			
		||||
		DBG_DUMP("%s\n", __FUNCTION__);
 | 
			
		||||
		DCF_HANDLE handle = MovieFast_Get_DCF_Handle();
 | 
			
		||||
		DCF_GetNextIDEx(handle, &nextFolderID,&nextFileID);
 | 
			
		||||
        if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -936,6 +936,7 @@ DCF_HANDLE PhotoFast_Get_DCF_Handle()
 | 
			
		|||
//#else
 | 
			
		||||
	//return g_dcf_hdl;
 | 
			
		||||
//#endif
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
	SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -944,6 +945,9 @@ DCF_HANDLE PhotoFast_Get_DCF_Handle()
 | 
			
		|||
	}
 | 
			
		||||
	DBG_WRN("photofast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
 | 
			
		||||
	return mmc_dev->dcf_handle;
 | 
			
		||||
#else
 | 
			
		||||
	return g_dcf_hdl;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,7 @@
 | 
			
		|||
 | 
			
		||||
#define MMC_DEV_MAX_NUM (2)
 | 
			
		||||
 | 
			
		||||
#define USE_RTOS_MMC_CHECK 		(0)
 | 
			
		||||
#define USE_RTOS_MMC_CHECK 		(1)
 | 
			
		||||
 | 
			
		||||
typedef enum
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -164,15 +164,16 @@ static UINT32 sf_rtos_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev)
 | 
			
		|||
		diskFree = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
    diskFree = diskFree/1024/1024;
 | 
			
		||||
    
 | 
			
		||||
    if(diskFree < 30) /* 30MB */
 | 
			
		||||
    {
 | 
			
		||||
    	IsCardFull = TRUE;
 | 
			
		||||
        ret = 1;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
    	IsCardFull = FALSE;
 | 
			
		||||
        ret = 0;
 | 
			
		||||
    }
 | 
			
		||||
    DBG_WRN("[%d]sd card diskFree=%lluM, ret = %d\n", __LINE__, diskFree, ret);
 | 
			
		||||
| 
						 | 
				
			
			@ -198,7 +199,6 @@ int SF_RtosStrgRegister(int devid, int mounted_state)
 | 
			
		|||
	else
 | 
			
		||||
		sf_rtos_mmc_dev[devid]->loop_state = MMC_DEV_LOOP_STATE_OFF;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	DBG_WRN("devid = %d, state = %d\n", devid, mounted_state);
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user