Beispiel #1
0
static int invoke_led_service(void)
{
	int rc = 0;
	int getvalue;
	char *argv_on[] = { "/system/bin/sh", "/system/bin/am", "startservice", "--es", "rfs", "on", "-n", FELICA_LED_INTENT, NULL };
	char *argv_off[] = { "/system/bin/sh", "/system/bin/am", "startservice", "--es", "rfs", "off", "-n", FELICA_LED_INTENT, NULL };

	static char *envp[] = {FELICA_LD_LIBRARY_PATH,FELICA_BOOTCLASSPATH,FELICA_PATH,NULL};

	#ifdef FEATURE_DEBUG_LOW
	FELICA_DEBUG_MSG("[FELICA_RFS] invoke led service ... \n");
	#endif
	getvalue = felica_gpio_read(felica_get_rfs_gpio_num());
	if( isFelicaUsed ==0 && getvalue == GPIO_LOW_VALUE)
	{
    	#ifdef FEATURE_DEBUG_HIGH
		FELICA_DEBUG_MSG("[FELICA_RFS] Felica LED On ... \n");
		#endif
		lock_felica_rfs_wake_lock();
		rc = call_usermodehelper( argv_on[0], argv_on, envp, UMH_WAIT_PROC );
		isFelicaUsed = 1;
	}
	else if( isFelicaUsed ==1 && getvalue == GPIO_HIGH_VALUE)
	{
    	#ifdef FEATURE_DEBUG_HIGH
		FELICA_DEBUG_MSG("[FELICA_RFS] Felica LED Off ... \n");
		#endif
		unlock_felica_rfs_wake_lock();
		rc = call_usermodehelper( argv_off[0], argv_off, envp, UMH_WAIT_PROC );
		isFelicaUsed =0;
	}
	else	{
    	#ifdef FEATURE_DEBUG_MED
		FELICA_DEBUG_MSG("[FELICA_RFS] Felica LED exception case ... do nothing \n");
		FELICA_DEBUG_MSG("[FELICA_RFS] felica_gpio_read = %d , isFelicaUsed =%d \n",getvalue,isFelicaUsed);
		#endif
		unlock_felica_rfs_wake_lock();
#if defined(CONFIG_LGE_FELICA_ONLY)
		FELICA_DEBUG_MSG("[FELICA_RFS] Felica LED ERROR case so LED Off ... \n");
		rc = call_usermodehelper( argv_off[0], argv_off, envp, UMH_WAIT_PROC );
		isFelicaUsed =0;
#endif
	}

	#ifdef FEATURE_DEBUG_LOW
	FELICA_DEBUG_MSG("[FELICA_RFS] invoke_led_service: %d \n", rc);
	#endif
	return rc;
}
Beispiel #2
0
static int invoke_led_service(void)
{
	int rc = 0;
	int getvalue;
	char *argv_on[] = { "/system/bin/sh", "/system/bin/am", "startservice", "--es", "rfs", "on", "-n", FELICA_LED_INTENT, NULL };
	char *argv_off[] = { "/system/bin/sh", "/system/bin/am", "startservice", "--es", "rfs", "off", "-n", FELICA_LED_INTENT, NULL };

	static char *envp[] = {FELICA_LD_LIBRARY_PATH,FELICA_BOOTCLASSPATH,FELICA_PATH,NULL};

	FELICA_DEBUG_MSG("[FELICA_RFS] invoke led service ... \n");
	getvalue = felica_gpio_read(GPIO_FELICA_RFS);
	FELICA_DEBUG_MSG("[FELICA_RFS] felica_gpio_read = %d , isFelicaUsed =%d \n",getvalue,isFelicaUsed);
	if( isFelicaUsed ==0 && getvalue == GPIO_LOW_VALUE)
	{
		FELICA_DEBUG_MSG("[FELICA_RFS] Felica LED On ... \n");
		lock_felica_rfs_wake_lock();
		rc = call_usermodehelper( argv_on[0], argv_on, envp, UMH_WAIT_PROC );
		isFelicaUsed = 1;
	}
	else if( isFelicaUsed ==1 && getvalue == GPIO_HIGH_VALUE)
	{
		FELICA_DEBUG_MSG("[FELICA_RFS] Felica LED Off ... \n");
		unlock_felica_rfs_wake_lock();
		rc = call_usermodehelper( argv_off[0], argv_off, envp, UMH_WAIT_PROC );
		isFelicaUsed =0;
	}
	else	{
		FELICA_DEBUG_MSG("[FELICA_RFS] Felica LED ERROR case so LED Off ... \n");
		unlock_felica_rfs_wake_lock();
		rc = call_usermodehelper( argv_off[0], argv_off, envp, UMH_WAIT_PROC );
		isFelicaUsed =0;
	}

	FELICA_DEBUG_MSG("[FELICA_RFS] invoke_led_service: %d \n", rc);
	return rc;
}