From: 邱建斌 Date: Tue, 28 Jun 2011 06:50:19 +0000 (+0800) Subject: rk29_phone: headset hook key update X-Git-Tag: firefly_0821_release~10164^2~1 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6bc26c18a21c5d4b93ba71ce3852324b9ba82ef3;p=firefly-linux-kernel-4.4.55.git rk29_phone: headset hook key update --- diff --git a/drivers/headset_observe/rk_headset.c b/drivers/headset_observe/rk_headset.c index 5fcccad31090..22c32f17a7fd 100755 --- a/drivers/headset_observe/rk_headset.c +++ b/drivers/headset_observe/rk_headset.c @@ -59,6 +59,7 @@ #define disable 0 extern int wm8994_set_status(void); + /* headset private data */ struct headset_priv { struct input_dev *input_dev; @@ -182,7 +183,7 @@ static void headsetobserve_work(struct work_struct *work) // enable_irq(headset_info->irq[HOOK]); headset_info->cur_headset_status = BIT_HEADSET; headset_change_irqtype(HEADSET,IRQF_TRIGGER_FALLING);// - del_timer(&headset_info->headset_timer);//Æô¶¯¶¨Ê±Æ÷£¬µÈ´ýÇл»µ½¶ú»úͨ· + del_timer(&headset_info->headset_timer);//Start the timer, wait for switch to the headphone channel headset_info->headset_timer.expires = jiffies + 500; add_timer(&headset_info->headset_timer); } @@ -300,6 +301,7 @@ static void headset_timer_callback(unsigned long arg) DBG("Headset is out\n"); goto out; } + #ifdef CONFIG_SND_SOC_WM8994 if(wm8994_set_status() < 0) { DBG("wm8994 is not set on heatset channel\n"); @@ -307,7 +309,7 @@ static void headset_timer_callback(unsigned long arg) add_timer(&headset_info->headset_timer); goto out; } - + #endif for(i=0; i<3; i++) { level = gpio_get_value(pdata->Hook_gpio); @@ -326,7 +328,6 @@ static void headset_timer_callback(unsigned long arg) goto out; } -//ÑÓ³ÙÒ»¶Îʱ¼ä¶ú»ú»¹Êǰ´ÏµĻ°£¬ÄÇôӦ¸ÃÊÇÎÞ°´¼ü¶ú»ú if(level == 0) headset->isMic= 0;//No microphone else if(level > 0)