Ejemplo n.º 1
0
static void lge_ats_update_atcmd_state(char *cmd, int state)
{
#if defined (CONFIG_LGE_SUPPORT_AT_CMD)
    struct ats_data *data = &lge_ats_data;

    if(!data->atdev)
        data->atdev = atcmd_get_dev();
    if(data->atdev)
        update_atcmd_state(data->atdev, cmd, state);
#endif
}
Ejemplo n.º 2
0
int lge_ats_handle_atcmd(struct msm_rpc_server *server,
						 struct rpc_request_hdr *req, unsigned len,
						 void (*update_atcmd_state)(char *cmd, int state) )
{
	struct rpc_ats_atcmd_args *args = (struct rpc_ats_atcmd_args *)(req + 1);
	int result = HANDLE_OK;
	char ret_string[MAX_STRING_RET];
	uint32_t ret_value1 =0;
	uint32_t ret_value2 = 0;
	uint32_t at_cmd;
	uint32_t at_act;
	uint32_t at_param;

#ifdef CONFIG_LGE_BROADCAST	
	/* mtv_blt_mode : 1 mtv_av_mode : 0*/
	static int mtv_blt_mode = 0; 
	struct broadcast_mtv_sig_info tdmbdata;
#endif
	at_cmd = be32_to_cpu(args->at_cmd);
	at_act = be32_to_cpu(args->at_act);
	at_param = be32_to_cpu(args->at_param);
	printk(KERN_INFO "%s: at_cmd = %d, at_act=%d, at_param=%d:\n",
		   __func__, args->at_cmd, args->at_act,args->at_param);

	memset(server->retvalue.ret_string, 0, sizeof(server->retvalue.ret_string));

	memset (ret_string, 0, sizeof(ret_string));

	switch (at_cmd)
	{
	case ATCMD_ACS:	//31
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		update_atcmd_state("acs", at_param); //state is up? down?
		break;
	case ATCMD_VLC:	//36
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		update_atcmd_state("vlc", at_param); //state is up? down?
		break;
	case ATCMD_SPM:	//40
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		update_atcmd_state("spm", at_param); //state is up? down?
		break;
	case ATCMD_MPT:	//43
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		update_atcmd_state("mpt", at_param); //state is up? down?
		break;
	case ATCMD_FMR: //42
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		update_atcmd_state("fmr", at_param); //state is up? down?
		break;
		/*[LGE_CHANGE_S][Camera][[email protected] 2010-05-26 : AT Command AT_CAM AT_AVR */
	case ATCMD_AVR:	//45
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		update_atcmd_state("avr", at_param); //state is up? down?
		break;
	case ATCMD_CAM: //70
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		update_atcmd_state("cam", at_param); //state is up? down?
		break;
		/*[LGE_CHANGE_E[Camera][[email protected] 2010-05-26 : AT Command AT_CAM AT_AVR */

	case ATCMD_EMT:  // 46
		ret_value1 = external_memory_test();
		break;

	case ATCMD_FC:  // 59
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		ret_value1 = 0;
		break;

	case ATCMD_FO:  // 60
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		ret_value1 = 0;
		break;

	//LGE_UPDATE_S [email protected] 2010-06-21, add AT%FLIHGT
	case ATCMD_FLIGHT:  // 82
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;

		wirte_flight_mode(at_param);	
		update_atcmd_state("flight", at_param); //state is up? down?
		break;
    //LGE_UPDATE_E [email protected] 2010-06-21, add AT%FLIHGT

	case ATCMD_MMCFORMAT:  // 129
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		//LGE_UPDATE_S FS 2011-03-22
		if(!external_memory_test())
			ret_value1 = 0;
		else
		{
			update_atcmd_state("mmcformat", 0);
			update_atcmd_state("mmcformat", 1);
			update_atcmd_state("mmcformat", 9);
			ret_value1 = 1;
		}
		//LGE_UPDATE_E FS 2011-03-22
		break;

//LG_BTUI_NV : Get_BDADDR - [email protected]
	case ATCMD_BTAD: //52
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		printk(KERN_INFO "[BTUI] %s: at_cmd => ATCMD_BTAD\n", __func__);
		atcmd_get_dev()->state = 1;
		update_atcmd_state("btad", at_param);
		break;
//LG_BTUI_NV

//LG_BTUI_DUT : use brcm_patchram_plus [S]
	case ATCMD_BTTM: //53
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		printk(KERN_INFO "[BTUI] %s: at_cmd => ATCMD_BTTM\n", __func__);
		update_atcmd_state("bttm", at_param);
		if(at_param==3)
			msleep(1000); // 1sec delay
		else
			msleep(5000); // 5sec delay
		break;
//LG_BTUI_DUT : use brcm_patchram_plus [E]	
#ifdef CONFIG_LGE_BROADCAST	
	case ATCMD_MTV:	//150
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;
		printk(KERN_INFO "[MTV] %s: at_cmd => ATCMD_MTV\n", __func__);
		if(at_param == 71)
		{
			printk(KERN_INFO "[MTV] AV Test On process\n");
			update_atcmd_state("mtv", at_param);
			mtv_blt_mode = 0;
		}
		else if(at_param == 1)
		{	
			if(mtv_blt_mode == 1)
			{
				printk(KERN_INFO "[MTV] BLT Off process\n");
				mtv_blt_mode = 0;
				broadcast_tdmb_blt_close();
				broadcast_tdmb_blt_power_off();
			}
			else
			{
				printk(KERN_INFO "[MTV] AV Test Off process\n");
				update_atcmd_state("mtv", at_param);
			}
		}
		else
		{
			if((at_param > 71) &&(at_param <= 133))
			{
				printk(KERN_INFO "[MTV] BLT On\n");
				broadcast_tdmb_blt_power_on();
				broadcast_tdmb_blt_open();
				
				broadcast_tdmb_blt_tune_set_ch(at_param);

				mtv_blt_mode = 1;
				
			}
			else if((at_param == 2)||(at_param == 3)
				|| (at_param == 4)||(at_param == 5))
			{
				broadcast_tdmb_blt_get_sig_info((void*)&tdmbdata);
				ret_value1 = tdmbdata.msc_ber;
				ret_value2 = tdmbdata.tp_err_cnt;
				printk(KERN_INFO "[MTV] BLT get ber ber = %d, tp_err_cnt = %d\n", ret_value1, ret_value2);
			}
			else
			{
				printk(KERN_INFO "[MTV] BLT Error range\n");
				//result = HANDLE_ERROR;
			}
		}
		break;
#endif
	default :
		result = HANDLE_ERROR;
		break;
	}

	/* give to RPC server result */
	strncpy(server->retvalue.ret_string, ret_string, MAX_STRING_RET);
	server->retvalue.ret_string[MAX_STRING_RET-1] = 0;
	server->retvalue.ret_value1 = ret_value1;
	server->retvalue.ret_value2 = ret_value2;
	/////////////////////////////////////////////////////////////////
	
	if(result == HANDLE_OK)

		result = RPC_RETURN_RESULT_OK;
	else
		result = RPC_RETURN_RESULT_ERROR;

	return result;
}
Ejemplo n.º 3
0
static int handle_misc_rpc_call(struct msm_rpc_server *server,
			   struct rpc_request_hdr *req, unsigned len)
{
int result = RPC_ACCEPTSTAT_SUCCESS;
	atpdev = atcmd_get_dev();
	
	switch (req->procedure) {
	case ONCRPC_MISC_APPS_APIS_NULL_PROC:
		return 0;

	case ONCRPC_LCD_MESSAGE_PROC: 
			{
		printk(KERN_INFO"ONCRPC_LCD_MESSAGE_PROC\n");
		}
		return 0;

	case ONCRPC_LCD_DEBUG_MESSAGE_PROC:
			{
		printk(KERN_INFO"ONCRPC_LCD_MESSAGE_PROC\n");
		}

		return 0;
	case ONCRPC_LGE_ATCMD_FACTORY_PROC:
		{
		printk("ONCRPC_LGE_ATCMD_FACTORY_PROC\n");
		{
		struct rpc_misc_apps_bases_args *args;
		args = (struct rpc_misc_apps_bases_args *)(req + 1);
		args->at_cmd = be32_to_cpu(args->at_cmd);
		args->at_act = be32_to_cpu(args->at_act);
		args->at_param = be32_to_cpu(args->at_param);
		printk(KERN_INFO "handle_misc_rpc_call at_cmd = %d, at_act=%d, at_param=%d:\n",
		      args->at_cmd, args->at_act,args->at_param);
		// printk("len = %d\n", len);
		#ifdef USE_REPLY_RETSTRING
		 memset(server->retvalue.ret_string, 0, sizeof(server->retvalue.ret_string));
		//for(loop = 0; loop < MAX_STRING_RET; loop++)
		//server->retvalue.ret_string[loop] =0;
		//server->retvalue.ret_value1 = 0;
		//server->retvalue.ret_value2 = 0;
		#endif
		// LGE_CHAGE_E   princlee
		//printk(KERN_INFO"rpc_servers_thread rpc_vers=%d, prog=%d, vers=%d\n", req->rpc_vers,req->prog,req->vers);

		if(dsatHandleAT_ARM11(args->at_cmd, args->at_act, args->at_param,server) == HANDLE_OK)
			{
			
			result = RPC_RETURN_RESULT_OK;
			}
		else
			result= RPC_RETURN_RESULT_ERROR;
		
		return result;
		}
		}
	return 0;
	case ONCRPC_LGE_ATCMD_FACTORY_LARGE_PROC:
		{
		printk("ONCRPC_LGE_ATCMD_FACTORY_LARGE_PROC\n");
		{
		int loop = 0;
		int dsat_result = HANDLE_OK;
		struct rpc_misc_apps_LARGE_bases_args *args;
		args = (struct rpc_misc_apps_LARGE_bases_args *)(req + 1);
		#ifdef USE_REPLY_RETSTRING
		 memset(server->retvalue.ret_string, 0, sizeof(server->retvalue.ret_string));
		//for(loop = 0; loop < MAX_STRING_RET; loop++)
		//server->retvalue.ret_string[loop] =0;
		//server->retvalue.ret_value1 = 0;
		//server->retvalue.ret_value2 = 0;
		#endif
		// LGE_CHAGE_E   princlee
		//printk(KERN_INFO"rpc_servers_thread rpc_vers=%d, prog=%d, vers=%d\n", req->rpc_vers,req->prog,req->vers);

		dsat_result = dsatHandleAT_ARM11_LARGE(args,server);
		if(dsat_result == HANDLE_OK)
			{
			
			result = RPC_RETURN_RESULT_OK;
			}
		else if(dsat_result == HANDLE_OK_MIDDLE)
			{
			result = RPC_RETURN_RESULT_MIDDLE_OK;
			}
		else
			result= RPC_RETURN_RESULT_ERROR;
		
		return result;
		}
		}
	return 0;
	case ONCRPC_LGE_ATCMD_MSG_PROC:
			{
		printk(KERN_INFO"ONCRPC_LGE_ATCMD_MSG_PROC\n");
		}
	return 0;

	case ONCRPC_LGE_ATCMD_MSG_RSTSTR_PROC:
			{
		printk(KERN_INFO"ONCRPC_LGE_ATCMD_MSG_RSTSTR_PROC\n");
		}
	return 0;
	case ONCRPC_LGE_GET_FLEX_MCC_PROC	:
	{		
		printk(KERN_INFO"ONCRPC_LGE_GET_FLEX_MCC_PROC\n");
		memset(server->retvalue.ret_string, 0, sizeof(server->retvalue.ret_string));		
		if(lg_get_flex_from_xml("FLEX_MCC_CODE", server->retvalue.ret_string))
			result = RPC_RETURN_RESULT_OK;
		else
			result= RPC_RETURN_RESULT_ERROR;
		server->retvalue.ret_value1 = strlen(server->retvalue.ret_string);
		server->retvalue.ret_value2 = 0;
		printk(KERN_INFO "ONCRPC_LGE_GET_FLEX_MCC_PROC return string : %d , %s\n",
		      server->retvalue.ret_value1,server->retvalue.ret_string);		
		return result;
	}
	case ONCRPC_LGE_GET_FLEX_MNC_PROC	:
	{		
		printk(KERN_INFO"ONCRPC_LGE_GET_FLEX_MNC_PROC\n");
		memset(server->retvalue.ret_string, 0, sizeof(server->retvalue.ret_string));		
		if(lg_get_flex_from_xml("FLEX_MNC_CODE", server->retvalue.ret_string))
			result = RPC_RETURN_RESULT_OK;
		else
			result= RPC_RETURN_RESULT_ERROR;
		server->retvalue.ret_value1 = strlen(server->retvalue.ret_string);
		server->retvalue.ret_value2 = 0;
		printk(KERN_INFO "ONCRPC_LGE_GET_FLEX_MNC_PROC return string : %d , %s\n",
		      server->retvalue.ret_value1,server->retvalue.ret_string);	

		return result;
	}
	case ONCRPC_LGE_GET_FLEX_OPERATOR_CODE_PROC	:
	{		
		printk(KERN_INFO"ONCRPC_LGE_GET_FLEX_OPERATOR_CODE_PROC\n");
		memset(server->retvalue.ret_string, 0, sizeof(server->retvalue.ret_string));		
		if(lg_get_flex_from_xml("FLEX_OPERATOR_CODE", server->retvalue.ret_string))
			result = RPC_RETURN_RESULT_OK;
		else
			result= RPC_RETURN_RESULT_ERROR;
		server->retvalue.ret_value1 = strlen(server->retvalue.ret_string);
		server->retvalue.ret_value2 = 0;
		printk(KERN_INFO "ONCRPC_LGE_GET_FLEX_OPERATOR_CODE_PROC return string : %d , %s\n",
		      server->retvalue.ret_value1,server->retvalue.ret_string);	
#if 0					
		{
			extern int msm_fb_refesh_enabled;
			if (!msm_fb_refesh_enabled)
				msm_fb_refesh_enabled = 1;
		}
#endif

		
		if(!msm_fb_refesh_enabled && !fb_control_timer_init) {
			printk(KERN_INFO "%s: jori set timer\n",__func__);
			setup_timer(&lg_fb_control,lg_fb_control_timer,0);

			if(strncmp(server->retvalue.ret_string,"ORG",3)==0){
				mod_timer(&lg_fb_control,jiffies +(ORG_FB_TIMEOUT*HZ/1000));
			} else {
				mod_timer(&lg_fb_control,jiffies +(OTHER_FB_TIMEOUT*HZ/1000));
			}
			fb_control_timer_init = 1;
		}
		return result;
	}
	case ONCRPC_LGE_GET_FLEX_COUNTRY_CODE_PROC	:
	{		
		printk(KERN_INFO"ONCRPC_LGE_GET_FLEX_COUNTRY_PROC\n");
		memset(server->retvalue.ret_string, 0, sizeof(server->retvalue.ret_string));		
		if(lg_get_flex_from_xml("FLEX_COUNTRY_CODE", server->retvalue.ret_string))
			result = RPC_RETURN_RESULT_OK;
		else
			result= RPC_RETURN_RESULT_ERROR;
		server->retvalue.ret_value1 = strlen(server->retvalue.ret_string);
		server->retvalue.ret_value2 = 0;
		printk(KERN_INFO "ONCRPC_LGE_GET_FLEX_COUNTRY_PROC return string : %d , %s\n",
		      server->retvalue.ret_value1,server->retvalue.ret_string);		
		return result;
	}

//LGE_UPDATE_E
	default:
		return -ENODEV;
	}
}