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 }
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; }
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; } }