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
// at_param shall be ONLY  INTERGER, do not  (float / pointer / string...)
static int  dsatHandleAT_ARM11(uint32_t at_cmd, uint32_t at_act, uint32_t at_param,struct msm_rpc_server *server)
{
	int result = HANDLE_OK;
#ifdef USE_REPLY_RETSTRING
	int loop = 0;
#endif
	char ret_string[MAX_STRING_RET];
	uint32_t ret_value1 =0;
	uint32_t ret_value2 = 0;
	memset (ret_string, 0, sizeof(ret_string));


	switch (at_cmd)
	{
		// example code
		case ATCMD_FRST:
		{
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;

			sprintf(ret_string, "edcb");
			ret_value1 = 10;
			ret_value2 = 20;
		}
		break;

		case ATCMD_SWV:
		{


		}
		break;

                case ATCMD_AVR: /* 45 */
                {
                        //printk("#### ATCMD_AVR ###### Act: 0x%x, Param: 0x%x\n", at_act, at_param);
			 printk("\n[kschoi] ***** ATCMD_AVR key = %d : rpc_server_misc.c",at_param);	
	         lge_atcmd_report_key(1, at_param);			 
                }
                break;
		case ATCMD_EMT:	//46
		{
			ret_value1 = external_memory_test();
		}
		break;
		
		case ATCMD_NOT_ATMCD_EARSENSE:
		{
		  printk(" ****************** ATCMD_NOT_ATMCD_EARSENSE ****************** \n");
		  printk(" ****************** headset_inserted [%d] ****************** \n",headset_inserted);
			ret_value1 = headset_inserted;
			break;
		}
		case ATCMD_FRSTSTATUS:
			if ( at_act == ATCMD_ACTION )
				ret_value1 = set_kernel_factory_reset_status(at_param);
			else
				ret_value1 = get_kernel_factory_reset_status();
			break;
			
       case ATCMD_MOT:	// 71
       {
       	
#if 1 // def CONFIG_ANDROID_VIBRATOR

       	if (at_act == ATCMD_ACTION){
       		ret_value1 = is_vib_state(); // Check vibrator state
          }
          else if (at_act == ATCMD_ASSIGN) {
				if (at_param== 1) 	{
//					vibrator_set(100);
					vibrator_enable();  // Enable vibrator
					ret_value1 = 1; 	// "MOTOR ON"
				}
				else	{
					vibrator_disable();  // Disabe vibrator
					printk("#### ATCMD_MOT 0###### Act: 0x%x, Param: 0x%x\n", at_act, at_param);
					ret_value1 = 0; 	// "MOTOR OFF"
				}
			}
			else	
#endif

			{
				result = HANLDE_FAIL;
			}
		}
		break;			
		case ATCMD_FKPD:	// 33       	
		{
          if (at_act == ATCMD_ASSIGN) {
				ret_value1 = 1; 
				at_fkpd_cfg(1/*ENABLE FKPD KEY INPUT*/, at_param/*AT INPUT KEY VALUE*/); 

			}
			else if (at_act == ATCMD_QUERY){		//JUST RETURN OK
				ret_value1 = 1;
			}
			else	{
				result = HANLDE_FAIL;
			}
		}
		break;			
			
		case ATCMD_GKPD:	// 34
		{
       	if (at_act == ATCMD_ACTION) {
 				
       		ret_value1 = at_gkpd_cfg(0/* 0 = READ GKPD*/,0/* READ GKPD STATE*/); //READ GKPD STATE
          }
          else if (at_act == ATCMD_ASSIGN) {
				if (at_param== 1) 	
					{
					at_gkpd_cfg(1/*WRITE GKPD*/,1/*WRITE TO SET GKPD BUFF*/); //SET GKPD STATE
					ret_value1 = 1; 	// "GKPD ON"
				}
				else	{
					at_gkpd_cfg(1/*WRITE GKPD*/,0/*DISABLE GKPD BUFF*/);  //DISABLE GKPD STATE
					ret_value1 = 0; 	// "GKPD OFF"
				}
			}
			else if (at_act == ATCMD_QUERY) {	
				ret_value1 = at_gkpd_cfg(0/*READ GKPD*/,1/*READ GKPD BUUFERED VALUE*/); //READ A GKPD BUUFER VALUE
			}
			else	{
				result = HANLDE_FAIL;
			}
		}
			break;

		case ATCMD_BOFF: // 58
		{			
			// To use AT%LCD, uncomment this.

#if defined(CONFIG_MACH_MSM7X27_SWIFT)
			int fd;
			char buf = '0';
			mm_segment_t oldfs;

			oldfs = get_fs();
			set_fs(get_ds());

			fd = sys_open((const char __user *) "/sys/devices/virtual/backlight/rt9393/brightness", O_WRONLY | O_CREAT | O_TRUNC, 0777);
			if (fd < 0) {
				break;
			}

			sys_write(fd, &buf, sizeof(char));
			sys_close(fd);
			set_fs(oldfs);
#endif

#ifdef CONFIG_BACKLIGHT_EVE
			lge_atcmd_boff();
#endif
			ret_value1 = 1;
		}
			break;

		case ATCMD_FC:	// 59
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;

#ifdef CONFIG_ANDROID_HALL_IC
			if (is_slide_open()== 0) 
			{
				set_slide_open(1);  // close slide
				ret_value1 = 1; 	// "FOLDER CLOSE OK"
			}
			else
			{
				ret_value1 = 0; 	// "FOLDER IS ALREADY CLOSED"
			}
#endif
			break;

		case ATCMD_FO:	// 60
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;

#ifdef CONFIG_ANDROID_HALL_IC
			if (is_slide_open() == 0)
			{
				ret_value1 = 1; 	// "FOLDER IS ALREADY OPEN"
			}
			else
			{
				set_slide_open(0);  // open slide
				ret_value1 = 0; 	// "FOLDER OPEN OK"
			}
#endif
			break;
#if 1 // defined (CONFIG_MACH_EVE)-comment
		case ATCMD_VLC:	//36
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;
			if (atpdev != NULL){
	 			update_atcmd_state(atpdev, "vlc", at_param); //state is up? down?
			}
			else 
			{
				printk("\n[%s] error vlc", __func__ );
			}
			break;
		case ATCMD_SPM:	//40
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;
			if (atpdev != NULL){
	 			update_atcmd_state(atpdev, "spm", at_param); //state is up? down?
			}
			else 
			{
				printk("\n[%s] error spm", __func__ );
			}
			break;
			
		case ATCMD_ACS:
			if ( at_param != 0 )
				mdelay(1000);
			break;
		case ATCMD_MPT:	//43
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;
			if (atpdev != NULL){
	 			update_atcmd_state(atpdev, "mpt", at_param); //state is up? down?
	 			mdelay (1000);
			}
			else 
			{
				printk("\n[%s] error mpt", __func__ );
			}
			break;
		case ATCMD_FMR: //42
		       printk("\n[rpc_server_misc] ATCMD_FMR");
			if(at_act != ATCMD_ACTION)
				result = HANLDE_FAIL;
			if (atpdev != NULL){
	 			update_atcmd_state(atpdev, "fmr", at_param); //state is up? down?
			}
			else 
			{
				printk("\n[%s] error fmr", __func__ );
			}
			break;
#endif
        case ATCMD_LCD: /* 69 */
			{	           
	            // To use AT%LCD, uncomment this.
	            lge_atcmd_report_key(ATCMD_LCD_REPORTKEY, at_param);				

				ret_value1 = 1;
        	}
            break;
        case ATCMD_CAM: /* 70 */
	        {
	                //printk("#### ATCMD_CAM ###### Act: 0x%x, Param: 0x%x\n", at_act, at_param);
					printk("\n[kschoi] ***** ATCMD_CAM key = %d: rpc_server_misc.c",at_param);
	                lge_atcmd_report_key(0, at_param);					
	        }
        	break;

		default :
			result = HANDLE_ERROR;
			break;


	}

	// give to RPC server result
	/////////////////////////////////////////////////////////////////
#ifdef USE_REPLY_RETSTRING
	for(loop = 0; loop < MAX_STRING_RET ; loop++)
	{
		server->retvalue.ret_string[loop]= (AT_STR_t)(ret_string[loop]);
	}
	server->retvalue.ret_string[MAX_STRING_RET-1] = 0;
	server->retvalue.ret_value1 = ret_value1;
	server->retvalue.ret_value2 = ret_value2;
#endif
/////////////////////////////////////////////////////////////////
	return result;
}
Ejemplo n.º 3
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;
}
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;

	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;
		/*[_S][Camera][kwangsoo.park 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;
		/*[_E[Camera][kwangsoo.park 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 ins.lee 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 ins.lee 2010-06-21, add AT%FLIHGT

	case ATCMD_MMCFORMAT:  // 129
		if(at_act != ATCMD_ACTION)
			result = HANDLE_FAIL;

		//LGE_UPDATE_S E720 BCPARK 2010-09-06
		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 E720 BCPARK 2010-09-06
		break;

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