static void rt9396_wakeup(struct rt9396_driver_data *drvdata)
{
	if (!drvdata || drvdata->state == NORMAL_STATE)
		return;

   printk("[rt9396_wakeup] pre intensity:%d !!!!!\n", drvdata->intensity);
	if(rt9396_powerstate == SLEEP_STATE){
			rt9396_powerstate = NORMAL_STATE;
	}
//LGE_CHANGE_S, [[email protected]] , 2012-07-09
	//For backlight timing
	if(bl_chargerlogo == 1)
		msleep(50);
	else
		msleep(100);
//LGE_CHANGE_E, [[email protected]] , 2012-07-09	
	if (drvdata->state == POWEROFF_STATE) {
		//rt9396_poweron(drvdata);
	} else if (drvdata->state == SLEEP_STATE) {
		if (drvdata->mode == NORMAL_MODE) 
		{
         #if 0 /*2012-09-26 junghoon-kim([email protected]) LCD-LED brightness bug.[START]*/
			rt9396_set_table(drvdata, drvdata->cmds.normal);			
         #endif /*2012-09-26 junghoon-kim([email protected]) porting from bu61800 driver [END]*/
			drvdata->state = NORMAL_STATE;
		} else if (drvdata->mode == ALC_MODE) {
			//nothing
		}
	}

   #if 0//[V3][junghoon79.kim][2012.9.16] no file ( LG_diag_testmode.c )
	/* LGE_CHANGE_S : Test Mode(Flight Mode)
	 * 2012-07-05, [email protected]
	 * [L38C][Test Mode][Common] Modify to automatically turn off LCD while test mode flight mode on.
	 */
	// LGE_CHANGE_S [[email protected]][07-03][start]
	// minimum current at SMT
	if(LGF_TestMode_Is_SleepMode())
	{
		if(rt9396_powerstate == NORMAL_STATE )
		{
				LGF_SendKey(116);	// power key
				set_operation_mode(true);
		}
	}
	// LGE_CHANGE_E [[email protected]][07-03][end]
	/* LGE_CHANGE_E : Test Mode(Flight Mode) */
   #endif

}
static void rt9396_go_opmode(struct rt9396_driver_data *drvdata)
{	
	switch (drvdata->mode) {
		case NORMAL_MODE:
			rt9396_set_table(drvdata, drvdata->cmds.normal);
			drvdata->state = NORMAL_STATE;
			break;
		case ALC_MODE:
			break;
		default:
			eprintk("Invalid Mode\n");
			break;
	}
}
static void rt9396_sleep(struct rt9396_driver_data *drvdata)
{
	if (!drvdata || drvdata->state == SLEEP_STATE)
		return;	

printk("[rt9396_sleep] pre intensity:%d !!!!!\n", drvdata->intensity);
	switch (drvdata->mode) {
		case NORMAL_MODE:
			drvdata->state = SLEEP_STATE;
			rt9396_set_table(drvdata, drvdata->cmds.sleep);			
			break;

		case ALC_MODE: //not use
			break;
		default:
			eprintk("Invalid Mode\n");
			break;
	}

//2012-11-19 junghoon.kim([email protected]) sleep current issue in cal&auto test(LCD dettach state)[START]
#ifdef CONFIG_LGE_SUPPORT_MINIOS
     if(LGE_BOOT_MODE_MINIOS == get_lge_boot_mode())
     {
         //eprintk("[rt9396_sleep] dddd LGE_BOOT_MODE_MINIOS : gpio_set_value\n");
         gpio_set_value(drvdata->gpio, 1);
         mdelay(1);
         gpio_set_value(drvdata->gpio, 0);
     }
#endif
//2012-11-19 junghoon.kim([email protected]) sleep current issue in cal&auto test(LCD dettach state)[END]

   #if 0//[V3][junghoon79.kim][2012.9.16] no file ( LG_diag_testmode.c )
	// LGE_CHANGE_S [[email protected]][07-03][start]
	// minimum current at SMT
	if(LGF_TestMode_Is_SleepMode()) {
		set_operation_mode(false);
	} 
   else 
    #endif
	{
		if(rt9396_powerstate == NORMAL_STATE){
			rt9396_powerstate = SLEEP_STATE;
		}
	}
	// LGE_CHANGE_E [[email protected]][end]
}
static void rt9396_sleep(struct rt9396_driver_data *drvdata)
{
	if (!drvdata || drvdata->state == SLEEP_STATE)
		return;	

printk("[rt9396_sleep] pre intensity:%d !\n", drvdata->intensity);
	switch (drvdata->mode) {
		case NORMAL_MODE:
			drvdata->state = SLEEP_STATE;
			rt9396_set_table(drvdata, drvdata->cmds.sleep);			
			break;

		case ALC_MODE:
			break;
		default:
			eprintk("Invalid Mode\n");
			break;
	}
	{
		if(rt9396_powerstate == NORMAL_STATE){
			rt9396_powerstate = SLEEP_STATE;
		}
	}
}