static void
report_headset_switch(struct input_dev *dev, int key, int value)
{
	struct msm_handset *hs = input_get_drvdata(dev);

	#if defined(CONFIG_MACH_R750) /* ZTE_HS_CHYL_01 start*/
	printk("CHYL:report_headset_switch key=%d,value=%d\n",key,value);
    
    //don't forward headset state when GSM Modem is unworking, begin ZTE_HS_YXS_20100811
    #if 0
    if(value)
	   	earphone_detect_insert();
	else
		earphone_detect_remove();	
    #else
    if (MODEM_STATE_WORKING == ifxgsm_get_workingstate())
    {
	if(value)
		earphone_detect_insert();
	else
		    earphone_detect_remove();	
    }
    #endif
    //don't forward headset state when GSM Modem is unworking, end ZTE_HS_YXS_20100811
	#endif /* ZTE_HS_CHYL_01 end*/
	
	input_report_switch(dev, key, value);
	switch_set_state(&hs->sdev, value);
}
static void
report_headset_switch(struct input_dev *dev, int key, int value)
{
	struct msm_handset *hs = input_get_drvdata(dev);

	#if defined(CONFIG_MACH_R750) 
	printk("CHYL:report_headset_switch key=%d,value=%d\n",key,value);
    
    //don't forward headset state when GSM Modem is unworking 
    #if 0
    if(value)
	   	earphone_detect_insert();
	else
		earphone_detect_remove();	
    #else
    if (MODEM_STATE_WORKING == ifxgsm_get_workingstate())
    {
	if(value)
		earphone_detect_insert();
	else
		    earphone_detect_remove();	
    }
    #endif
    //don't forward headset state when GSM Modem is unworking
	#endif 
	
	input_report_switch(dev, key, value);
	switch_set_state(&hs->sdev, value);

   
   #if defined(CONFIG_ZTE_PLATFORM)
	/* set wakelock when removing headset & fm is on */
	if (!value && fm_is_on())
	{
		pr_err("[YXS]set hs_wake_lock, %d timeout\n", HS_WAKELOCK_TIME);
		wake_lock_timeout(&hs_wake_lock, HS_WAKELOCK_TIME);
	}
   #endif
   
}