From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> To: lee.jones@linaro.org, cw00.choi@samsung.com Cc: myungjoo.ham@samsung.com, sameo@linux.intel.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.wolfsonmicro.com Subject: [PATCH v3 5/7] extcon: arizona: Ensure variables are set for headphone detection Date: Fri, 19 Jun 2015 11:33:07 +0100 [thread overview] Message-ID: <1434709989-28300-6-git-send-email-ckeepax@opensource.wolfsonmicro.com> (raw) In-Reply-To: <1434709989-28300-1-git-send-email-ckeepax@opensource.wolfsonmicro.com> The detecting flag really refers to the microphone detection stage and as such should be cleared before arizona_identify_headphones is called. Also the mic flag should be set before identify headphones is called as well. Otherwise the microphone detection will not be disabled during the headphone detection and we can get false button reports caused by the clamping that is part of the headphone detection. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> --- drivers/extcon/extcon-arizona.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c index eb8cf74..8a87ecd 100644 --- a/drivers/extcon/extcon-arizona.c +++ b/drivers/extcon/extcon-arizona.c @@ -765,10 +765,11 @@ static void arizona_micd_timeout_work(struct work_struct *work) mutex_lock(&info->lock); dev_dbg(info->arizona->dev, "MICD timed out, reporting HP\n"); - arizona_identify_headphone(info); info->detecting = false; + arizona_identify_headphone(info); + arizona_stop_mic(info); mutex_unlock(&info->lock); @@ -834,6 +835,9 @@ static void arizona_micd_detect(struct work_struct *work) /* If we got a high impedence we should have a headset, report it. */ if (info->detecting && (val & ARIZONA_MICD_LVL_8)) { + info->mic = true; + info->detecting = false; + arizona_identify_headphone(info); ret = extcon_set_cable_state_(info->edev, @@ -849,8 +853,6 @@ static void arizona_micd_detect(struct work_struct *work) ret); } - info->mic = true; - info->detecting = false; goto handled; } @@ -863,10 +865,11 @@ static void arizona_micd_detect(struct work_struct *work) if (info->detecting && (val & MICD_LVL_1_TO_7)) { if (info->jack_flips >= info->micd_num_modes * 10) { dev_dbg(arizona->dev, "Detected HP/line\n"); - arizona_identify_headphone(info); info->detecting = false; + arizona_identify_headphone(info); + arizona_stop_mic(info); } else { info->micd_mode++; -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in Please read the FAQ at http://www.tux.org/lkml/
WARNING: multiple messages have this Message-ID (diff)
From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> To: lee.jones@linaro.org, cw00.choi@samsung.com Cc: myungjoo.ham@samsung.com, sameo@linux.intel.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.wolfsonmicro.com Subject: [PATCH v3 5/7] extcon: arizona: Ensure variables are set for headphone detection Date: Fri, 19 Jun 2015 11:33:07 +0100 [thread overview] Message-ID: <1434709989-28300-6-git-send-email-ckeepax@opensource.wolfsonmicro.com> (raw) In-Reply-To: <1434709989-28300-1-git-send-email-ckeepax@opensource.wolfsonmicro.com> The detecting flag really refers to the microphone detection stage and as such should be cleared before arizona_identify_headphones is called. Also the mic flag should be set before identify headphones is called as well. Otherwise the microphone detection will not be disabled during the headphone detection and we can get false button reports caused by the clamping that is part of the headphone detection. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> --- drivers/extcon/extcon-arizona.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c index eb8cf74..8a87ecd 100644 --- a/drivers/extcon/extcon-arizona.c +++ b/drivers/extcon/extcon-arizona.c @@ -765,10 +765,11 @@ static void arizona_micd_timeout_work(struct work_struct *work) mutex_lock(&info->lock); dev_dbg(info->arizona->dev, "MICD timed out, reporting HP\n"); - arizona_identify_headphone(info); info->detecting = false; + arizona_identify_headphone(info); + arizona_stop_mic(info); mutex_unlock(&info->lock); @@ -834,6 +835,9 @@ static void arizona_micd_detect(struct work_struct *work) /* If we got a high impedence we should have a headset, report it. */ if (info->detecting && (val & ARIZONA_MICD_LVL_8)) { + info->mic = true; + info->detecting = false; + arizona_identify_headphone(info); ret = extcon_set_cable_state_(info->edev, @@ -849,8 +853,6 @@ static void arizona_micd_detect(struct work_struct *work) ret); } - info->mic = true; - info->detecting = false; goto handled; } @@ -863,10 +865,11 @@ static void arizona_micd_detect(struct work_struct *work) if (info->detecting && (val & MICD_LVL_1_TO_7)) { if (info->jack_flips >= info->micd_num_modes * 10) { dev_dbg(arizona->dev, "Detected HP/line\n"); - arizona_identify_headphone(info); info->detecting = false; + arizona_identify_headphone(info); + arizona_stop_mic(info); } else { info->micd_mode++; -- 1.7.2.5
next prev parent reply other threads:[~2015-06-19 10:47 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-06-19 10:33 [PATCH v3 0/7] Add basic microphone detection bindings Charles Keepax 2015-06-19 10:33 ` Charles Keepax 2015-06-19 10:33 ` [PATCH v3 1/7] extcon: arizona: Factor out initial GPIO state Charles Keepax 2015-06-19 10:33 ` Charles Keepax 2015-06-19 10:33 ` [PATCH v3 2/7] extcon: arizona: Update to use the new device properties API Charles Keepax 2015-06-19 10:33 ` Charles Keepax 2015-06-19 10:33 ` [PATCH v3 3/7] extcon: arizona: Add basic microphone detection DT/ACPI bindings Charles Keepax 2015-06-19 10:33 ` Charles Keepax 2015-06-19 10:33 ` [PATCH v3 4/7] extcon: arizona: Convert to gpiod Charles Keepax 2015-06-19 10:33 ` Charles Keepax 2015-06-19 10:33 ` Charles Keepax [this message] 2015-06-19 10:33 ` [PATCH v3 5/7] extcon: arizona: Ensure variables are set for headphone detection Charles Keepax 2015-06-19 10:33 ` [PATCH v3 6/7] mfd: arizona: Update DT doc for new mic detection bindings Charles Keepax 2015-06-19 10:33 ` Charles Keepax 2015-06-19 10:33 ` [PATCH v3 7/7] mfd: arizona: Update several pdata members to unsigned Charles Keepax 2015-06-19 10:33 ` Charles Keepax -- strict thread matches above, loose matches on Subject: below -- 2015-06-19 10:24 [PATCH v3 0/7] Add basic microphone detection bindings Charles Keepax 2015-06-19 10:24 ` [PATCH v3 5/7] extcon: arizona: Ensure variables are set for headphone detection Charles Keepax
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1434709989-28300-6-git-send-email-ckeepax@opensource.wolfsonmicro.com \ --to=ckeepax@opensource.wolfsonmicro.com \ --cc=cw00.choi@samsung.com \ --cc=devicetree@vger.kernel.org \ --cc=lee.jones@linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=myungjoo.ham@samsung.com \ --cc=patches@opensource.wolfsonmicro.com \ --cc=sameo@linux.intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.