From patchwork Wed Aug 2 17:09:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 109264 Delivered-To: patch@linaro.org Received: by 10.182.45.195 with SMTP id p3csp6474082obm; Wed, 2 Aug 2017 10:10:57 -0700 (PDT) X-Received: by 10.84.172.1 with SMTP id m1mr25399114plb.174.1501693856945; Wed, 02 Aug 2017 10:10:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501693856; cv=none; d=google.com; s=arc-20160816; b=p0gDqEFkx04HI8kUeOtx8K5J8S9Z0TUUkqyppUAX6DYY841H6MuteLo9SAvC/N6cuY 74aiDUParS9zCCczB51EVD7glVCU78i01W27RRHVmZOnUyqtrT+x0uEfDqBRnxyzoOQN PV1VoI2liFrfplCIbR95zPy2mAlHDBYA5em8ea6DFF9eWylkeU/DMBz/EecSQ0SiBBjj MbSCmvLpzg78uHgIduFSq1XGjI6KJk8CaTkto6bg1uWFVrULM4gYIFFqQGTell8R/E8v /SH9AcG9tsiCjjLhH3i+HNHt4lDBl6MTh2kmSzFq9PparyIy0CRoRKiRwSsEhQA9XsTT 60tQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=TR9zC317Kp7gqGfgz4u66mf0tfjnT4mjZLI3ecSmdzw=; b=vIOCSDp3uxQ4GRBKXQ5YykAJJ89S3efoUR4ZDLcW7u6K+MlIeUhzTTo03Q61HSjPxl X5/nN7Eu09Mszzn/+LQvMcItSI0ZZ/Y7OE2GXP/0UeKQdta1ZkczCeoPxnOphG0hABsx 5luAAz772cWJDQ5lxNOMqOXwC47/RQzSC8EoJIhvYwiyMbbksAESw5OG6fE90FR1uwy7 2CgRjfDDzu8fO3v9oF5Zbxa0uhrn5LmReQHEU8GcQoHULoMrwsuXOWj5H+RQe6JlcRMp eAOSEkz4e9GalHG+FtjBYLCv/RsQaehKmoSYJJ1UfJVXArVC1wiGiPoklszG2AiF1plk bkYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.b=BO3yYEI9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f3si21609532plb.850.2017.08.02.10.10.56; Wed, 02 Aug 2017 10:10:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.b=BO3yYEI9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752790AbdHBRKO (ORCPT + 25 others); Wed, 2 Aug 2017 13:10:14 -0400 Received: from mail-it0-f49.google.com ([209.85.214.49]:37004 "EHLO mail-it0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752146AbdHBRJo (ORCPT ); Wed, 2 Aug 2017 13:09:44 -0400 Received: by mail-it0-f49.google.com with SMTP id v127so28138104itd.0 for ; Wed, 02 Aug 2017 10:09:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TR9zC317Kp7gqGfgz4u66mf0tfjnT4mjZLI3ecSmdzw=; b=BO3yYEI9ZR351lzkEIwdJMD0EKeJTezLvAl0sus4JySxln7/DaWQDwM8VmXTlbduJY R5Uw1+MS51fuQ+okoGuqjx1+dVnbPgOT37zcDyifVKMdcjzEIsC+piqogU75U0PHH253 lUy2cm04PniVNyAU0enP1/4x0DVtTPO+MewZc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=TR9zC317Kp7gqGfgz4u66mf0tfjnT4mjZLI3ecSmdzw=; b=HAPXDVHrlhwhk0ngGr8evO9DfXBwFp/rY2kd2XL7klcKua62chxNkJNl31Lyl9IN0w qkMbqghLawvnnMBUlm0LX0SnRsahXS/NFfaf9KT9AmRG9ef6JrzVY7aFmz/zFiECZjK3 b5iOqzBMgxjjVUXS57Fls7j2ewlMe+8zMPn+4LqHSsaEF6xwnh8qVUxrLvGRX8XpbHS1 qS6IrCrw1L1VnV/GweFz1JHr4AHW0PFvS2F1tMyzdubPYlrb/ZoKwXvjOxsviHAzbFcZ b7plKb1YiCwGZbKgwyaKHcohm1yE58Nt2sWWVZh8oLn59Ol/XdYygsTTWlk0GkT5CxSk 7q1g== X-Gm-Message-State: AIVw112KIPqH0hCy+zrrmrLUS1cEnw5aL87ip3sKbhBW1XgaQSIo1ly6 u3jTkOtlJNip73A7TKzrtQ== X-Received: by 10.36.49.7 with SMTP id y7mr6305760ity.72.1501693784080; Wed, 02 Aug 2017 10:09:44 -0700 (PDT) Received: from localhost.localdomain (static.8.26.4.46.clients.your-server.de. [46.4.26.8]) by smtp.gmail.com with ESMTPSA id u79sm2291222ita.24.2017.08.02.10.09.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Aug 2017 10:09:43 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: Mark Brown , Banajit Goswami , alsa-devel@alsa-project.org Cc: damien.riegel@savoirfairelinux.com, Jaroslav Kysela , Takashi Iwai , Patrick Lai , linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v2 1/6] ASoC: jack: fix snd_soc_codec_set_jack return error Date: Wed, 2 Aug 2017 19:09:25 +0200 Message-Id: <20170802170930.26083-2-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170802170930.26083-1-srinivas.kandagatla@linaro.org> References: <20170802170930.26083-1-srinivas.kandagatla@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Srinivas Kandagatla This patch changes the error code returned by snd_soc_codec_set_jack() from -EINVAL to -ENOTSUPP. The reason to do this is to make the caller aware that the underlying codec does not support this callback. This can make the caller write the code to handle this case properly. Other reason is that -EINVAL is not the correct error to return in this case anyway. Signed-off-by: Srinivas Kandagatla --- sound/soc/soc-jack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.9.3 diff --git a/sound/soc/soc-jack.c b/sound/soc/soc-jack.c index 7daf21f..42ca9f1 100644 --- a/sound/soc/soc-jack.c +++ b/sound/soc/soc-jack.c @@ -36,7 +36,7 @@ int snd_soc_codec_set_jack(struct snd_soc_codec *codec, if (codec->driver->set_jack) return codec->driver->set_jack(codec, jack, data); else - return -EINVAL; + return -ENOTSUPP; } EXPORT_SYMBOL_GPL(snd_soc_codec_set_jack); From patchwork Wed Aug 2 17:09:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 109266 Delivered-To: patch@linaro.org Received: by 10.182.45.195 with SMTP id p3csp6474597obm; Wed, 2 Aug 2017 10:11:20 -0700 (PDT) X-Received: by 10.84.128.73 with SMTP id 67mr13571349pla.155.1501693880108; Wed, 02 Aug 2017 10:11:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501693880; cv=none; d=google.com; s=arc-20160816; b=0y1aRaeQJt8y5evR2yEqbu3qR/XltntcbqCByKZ2lU9k0ihtzMUdixTzKO/nwMJ4CK qq4GIO7dqRsyCuLXDB5D9hcW1NV4KewrHJWuupY25DCXksbj+KXXtndv8wNbIjlpXfk4 N/uLeKFj1aLSAE6L/b65Mc85XRSnA8jjV1AoXUgIC0JVGbOUEkSvmbXbJWjdzgu02qYE hNGw3fd4CIoQuM7Pxic+TJuET+4XTGpNQkLGFWNIRI/U+uebv+HePfLHj+gdstqW1Q9x 9AY23nmF52nvfPjwuJgnbqgHpJFLLKZgP7YcJ3DyOmMphC79wgDt2iT3nbpAWbeJN1JV ilsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=rzJ+Kw/zRYblLQFImq9J6g0NCbrJhB8KZmALwtHa2K4=; b=tm80JUjx3vLpRQ5O8cslN66sg4DX2Ybs0wcrSXVk5H9mA0pCOkkkoDeCorgOMYxzOt v/HyYQ2OWnZsh7QivreBRSezhNLGzK8St0h3iKC00XUF08Q6l7Vx9Wumzl4NMKGnXCTW KJDjfbluQ7R+XsKhtcPAqr8xinIX8S2et3ba52go3hY5NFvabmDZSEh1c8+rYRIg3dOL ZUBJFKOtPlQp2P97QUENoTXLaovwEW38qYV2P+wFQXM9wA7Ogq/76NebW+dbvZ5/UY6z Nw/jKdqaSRqQGm7cLGqzOz47RFtbR+3cc9cazReaJLUCZuSeLrqC4Q58LNHaIkFIaLIp +Xbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.b=Al2RPOqi; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k133si6001631pgc.90.2017.08.02.10.11.19; Wed, 02 Aug 2017 10:11:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.b=Al2RPOqi; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752723AbdHBRKL (ORCPT + 25 others); Wed, 2 Aug 2017 13:10:11 -0400 Received: from mail-it0-f41.google.com ([209.85.214.41]:36313 "EHLO mail-it0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752151AbdHBRJr (ORCPT ); Wed, 2 Aug 2017 13:09:47 -0400 Received: by mail-it0-f41.google.com with SMTP id 77so27006968itj.1 for ; Wed, 02 Aug 2017 10:09:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rzJ+Kw/zRYblLQFImq9J6g0NCbrJhB8KZmALwtHa2K4=; b=Al2RPOqiW5ADX9V9cSNSlFAsz8UIkJBoPC+wCxcaqDoaqm4wP5Brm+qInw5tPqMWOe bSZF3j/3EjGfNZEzZmoeqyYsdMx30x4wGKZmGgr38zdQEKKFu07tah2Jc2RpSCp9TIEf 3IQ4kRumG+ZfTIM6xz8D+nKWLQX+5OBZ+YryQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rzJ+Kw/zRYblLQFImq9J6g0NCbrJhB8KZmALwtHa2K4=; b=lIs6QP2y+5TxN64yTF1fZSGrpTb1KdANSteruFTcfHos5haxPAaJWi+uNxgqAzwtzK mNsLhSQF5OqpqpK70lCi5/QGKoI3lZRXy7vv0usSeeNgs7XhTd/jR6crWxjQpar0wjm+ AMEow6B91lQCSEdFI6JPJeFE6ASRruvrBsZAbErPFbZHC8V2gAuSoQaK87mgVRvm5nV4 +3cgfYvEzHXh5yFiCGVJAN1+xclquAUInfWXomYfuHNT2Hd29e5rFYg+NfQ29mTQdCzm VkJYtTnInOlMEGIiHqVnzqISmIASaVIVGRiPdsNjzdV9gA4NN0ZLZ35zEKlKpzdugous Em5g== X-Gm-Message-State: AIVw112aAoViYQQUsphffAwyANgMSus73l5tjKjBJricpOG532VSp0BU 24TAF0qBDQW5c+y3 X-Received: by 10.36.185.88 with SMTP id k24mr6588828iti.163.1501693786423; Wed, 02 Aug 2017 10:09:46 -0700 (PDT) Received: from localhost.localdomain (static.8.26.4.46.clients.your-server.de. [46.4.26.8]) by smtp.gmail.com with ESMTPSA id u79sm2291222ita.24.2017.08.02.10.09.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Aug 2017 10:09:45 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: Mark Brown , Banajit Goswami , alsa-devel@alsa-project.org Cc: damien.riegel@savoirfairelinux.com, Jaroslav Kysela , Takashi Iwai , Patrick Lai , linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v2 2/6] ASoC: codecs: msm8916-wcd-analog: move codec reset to probe Date: Wed, 2 Aug 2017 19:09:26 +0200 Message-Id: <20170802170930.26083-3-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170802170930.26083-1-srinivas.kandagatla@linaro.org> References: <20170802170930.26083-1-srinivas.kandagatla@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Srinivas Kandagatla This patch move the codec reset code from dai ops to codec probe, so that the codec is not held in reset when headset detection block is still active. Without this patch the codec block will be in reset as long as its not actively used, which means headset events will not be functional if the codec dai is not actively used. Point to note is that the headset detection blocks will work in low power when there is no active audio usecase and switch to micbias source when audio usecase is active. Existing dapms should put the codec in low power state anyway when there is no audio usecase. Signed-off-by: Srinivas Kandagatla --- sound/soc/codecs/msm8916-wcd-analog.c | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) -- 2.9.3 diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c index 5710fd4..6606954 100644 --- a/sound/soc/codecs/msm8916-wcd-analog.c +++ b/sound/soc/codecs/msm8916-wcd-analog.c @@ -536,6 +536,9 @@ static int pm8916_wcd_analog_probe(struct snd_soc_codec *codec) snd_soc_write(codec, wcd_reg_defaults_2_0[reg].reg, wcd_reg_defaults_2_0[reg].def); + snd_soc_update_bits(codec, CDC_D_CDC_RST_CTL, + RST_CTL_DIG_SW_RST_N_MASK, + RST_CTL_DIG_SW_RST_N_REMOVE_RESET); return 0; } @@ -543,6 +546,9 @@ static int pm8916_wcd_analog_remove(struct snd_soc_codec *codec) { struct pm8916_wcd_analog_priv *priv = dev_get_drvdata(codec->dev); + snd_soc_update_bits(codec, CDC_D_CDC_RST_CTL, + RST_CTL_DIG_SW_RST_N_MASK, 0); + return regulator_bulk_disable(ARRAY_SIZE(priv->supplies), priv->supplies); } @@ -736,28 +742,6 @@ static struct regmap *pm8916_get_regmap(struct device *dev) return dev_get_regmap(dev->parent, NULL); } -static int pm8916_wcd_analog_startup(struct snd_pcm_substream *substream, - struct snd_soc_dai *dai) -{ - snd_soc_update_bits(dai->codec, CDC_D_CDC_RST_CTL, - RST_CTL_DIG_SW_RST_N_MASK, - RST_CTL_DIG_SW_RST_N_REMOVE_RESET); - - return 0; -} - -static void pm8916_wcd_analog_shutdown(struct snd_pcm_substream *substream, - struct snd_soc_dai *dai) -{ - snd_soc_update_bits(dai->codec, CDC_D_CDC_RST_CTL, - RST_CTL_DIG_SW_RST_N_MASK, 0); -} - -static struct snd_soc_dai_ops pm8916_wcd_analog_dai_ops = { - .startup = pm8916_wcd_analog_startup, - .shutdown = pm8916_wcd_analog_shutdown, -}; - static struct snd_soc_dai_driver pm8916_wcd_analog_dai[] = { [0] = { .name = "pm8916_wcd_analog_pdm_rx", @@ -769,7 +753,6 @@ static struct snd_soc_dai_driver pm8916_wcd_analog_dai[] = { .channels_min = 1, .channels_max = 3, }, - .ops = &pm8916_wcd_analog_dai_ops, }, [1] = { .name = "pm8916_wcd_analog_pdm_tx", @@ -781,7 +764,6 @@ static struct snd_soc_dai_driver pm8916_wcd_analog_dai[] = { .channels_min = 1, .channels_max = 4, }, - .ops = &pm8916_wcd_analog_dai_ops, }, }; From patchwork Wed Aug 2 17:09:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 109263 Delivered-To: patch@linaro.org Received: by 10.182.45.195 with SMTP id p3csp6473219obm; Wed, 2 Aug 2017 10:10:14 -0700 (PDT) X-Received: by 10.99.108.69 with SMTP id h66mr7234257pgc.163.1501693814848; Wed, 02 Aug 2017 10:10:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501693814; cv=none; d=google.com; s=arc-20160816; b=ifmqdhY4FPy5nAGN4Eje7S5BAxSlwsUlqvz0MLuPyX+A5Bis/YhMgMMvH/EBz+jTf5 /nN2bR/MvstQG3MmMK9t4VhyMktaIsBP7Xp0c4NleEEtIaierlzE+Gt4lXPpB8uwdQtk wq8yxnxjn88pQSGZn5bn21qjv+v8PBvr4nvZadgfaN9hdJeAFNwYUSP3CYjVP67Oz6V9 5mZnMVH2SVrPni4WbkHte2yfASYh0SWNW5F8cAUCcDcqwOf3OjaB8AMwOP+et8rDIxkc euzz3dC9mWWIk3iAm+9B2FbUHG4DWLp53Ii25SsV7aGla3U9EQcQNN2AR7X3+0yUCbry XVGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=UQB+Cy5g9aBZGzJ9kp9BfeAQ44W2u0sbiFvEfGtsPo8=; b=oqNwP9ua8AUP1PHUOiRFoXjeJO4Ciu2XYwaufCHE3oHyaigUx+JWnWJegXDx45srk+ 5AZ4yhc9YmqW2635z2Wm9lreMDMu36P487IpXcJPKyCX/4adwTzfZLZaf1TAgNcKFh0y 3LNXybRn6W6waBXJXX2Hq72bZxLBID8KlnHG+sAuCOIL8y+yS0HXswakuAhV4g3+vJww JkUYt/mdw3hPYVpbLUps2rftVmUNAyF/Ku3Dafpu3kNe8subJtiJe8Yz20FA3sdMlh0H xypyiG0RgwQieFguIekztigUpi0CjqqxSDouyMGA1AZILAfpGQhajjjwdP3Ef+hiZZk6 F1bw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.b=KVF7Zp2B; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y12si17301476pge.912.2017.08.02.10.10.14; Wed, 02 Aug 2017 10:10:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.b=KVF7Zp2B; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752635AbdHBRKJ (ORCPT + 25 others); Wed, 2 Aug 2017 13:10:09 -0400 Received: from mail-it0-f44.google.com ([209.85.214.44]:36327 "EHLO mail-it0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751956AbdHBRJt (ORCPT ); Wed, 2 Aug 2017 13:09:49 -0400 Received: by mail-it0-f44.google.com with SMTP id 77so27007511itj.1 for ; Wed, 02 Aug 2017 10:09:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=UQB+Cy5g9aBZGzJ9kp9BfeAQ44W2u0sbiFvEfGtsPo8=; b=KVF7Zp2BJhM7k4U6MWl9osaig2kcksb+I3aOP5yJTQRk+WFkSogvfg0gDM/vkHXnjT EbFHIXe2EGGhuqdkZ/PtN9dEZbnEhoTqpV9+Iy2svts79At4BBAYOHPEn36QMYjON+9b Qb+eUb/6VheLjFbXAh2gKW+2Jsq7W/DkVwHdc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=UQB+Cy5g9aBZGzJ9kp9BfeAQ44W2u0sbiFvEfGtsPo8=; b=qtSFuAoBTSmNcMI4qp5eN/X84UURojFvSFhG6HYNz3KtIuRhXjBaJx4E8PvfJAUTTa So5qUMJOJqbctGTsYhoniM+5aTrS9HP+pm/n2HjMLneYks71eiEneqhq5gZaTgSkKSuX wAOmdl8y22WERb4PMXwxjOrDrSy3HJKKIPQsDIJc1qdga5arboczvfnsQT0bxzwII9hb Vrf+s1UqDq49ip5K9XBh0B7/oB8lCNokgZTXQfCHvZJFXZNPLXchAsDoducMTbox1NNp l/p7eCe9AV2LLaIVHRpBbpbRMjBadEjDdoEnJO4rkAe7ca6ET73r9UG3DOFtvKSHcOh6 s6pg== X-Gm-Message-State: AIVw111Uwpx0FtLV3t3Hd5hnC3ez1jyE0c4E3nA0TTo/WcMnmnjIkF04 3qbmH5udihgGPyIu X-Received: by 10.36.14.201 with SMTP id 192mr6121259ite.81.1501693788864; Wed, 02 Aug 2017 10:09:48 -0700 (PDT) Received: from localhost.localdomain (static.8.26.4.46.clients.your-server.de. [46.4.26.8]) by smtp.gmail.com with ESMTPSA id u79sm2291222ita.24.2017.08.02.10.09.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Aug 2017 10:09:48 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: Mark Brown , Banajit Goswami , alsa-devel@alsa-project.org Cc: damien.riegel@savoirfairelinux.com, Jaroslav Kysela , Takashi Iwai , Patrick Lai , linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v2 3/6] ASoC: codecs: msm8916-wcd-analog: get micbias voltage from dt Date: Wed, 2 Aug 2017 19:09:27 +0200 Message-Id: <20170802170930.26083-4-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170802170930.26083-1-srinivas.kandagatla@linaro.org> References: <20170802170930.26083-1-srinivas.kandagatla@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Srinivas Kandagatla This patch adds bindings in DT to provide required micbias voltage which could be specific to board. With this new binding, now the mic bias voltage is left at hardware default value if the device tree does not specify any mic bias voltage value. Correct micbias value is required for mbhc buttons to work. Signed-off-by: Srinivas Kandagatla --- .../bindings/sound/qcom,msm8916-wcd-analog.txt | 1 + sound/soc/codecs/msm8916-wcd-analog.c | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) -- 2.9.3 diff --git a/Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-analog.txt b/Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-analog.txt index ccb401c..05b67a1 100644 --- a/Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-analog.txt +++ b/Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-analog.txt @@ -33,6 +33,7 @@ Required properties - vdd-micbias-supply: phandle of VDD_MICBIAS supply's regulator DT node. Optional Properties: +- qcom,micbias-lvl: Voltage (mV) for Mic Bias - qcom,micbias1-ext-cap: boolean, present if micbias1 has external capacitor connected. - qcom,micbias2-ext-cap: boolean, present if micbias2 has external capacitor diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c index 6606954..dec4978 100644 --- a/sound/soc/codecs/msm8916-wcd-analog.c +++ b/sound/soc/codecs/msm8916-wcd-analog.c @@ -93,8 +93,12 @@ #define MICB_1_EN_TX3_GND_SEL_TX_GND 0 #define CDC_A_MICB_1_VAL (0xf141) +#define MICB_MIN_VAL 1600 +#define MICB_STEP_SIZE 50 +#define MICB_VOLTAGE_REGVAL(v) ((v - MICB_MIN_VAL)/MICB_STEP_SIZE) #define MICB_1_VAL_MICB_OUT_VAL_MASK GENMASK(7, 3) #define MICB_1_VAL_MICB_OUT_VAL_V2P70V ((0x16) << 3) +#define MICB_1_VAL_MICB_OUT_VAL_V1P80V ((0x4) << 3) #define CDC_A_MICB_1_CTL (0xf142) #define MICB_1_CTL_CFILT_REF_SEL_MASK BIT(1) @@ -225,6 +229,7 @@ struct pm8916_wcd_analog_priv { struct regulator_bulk_data supplies[ARRAY_SIZE(supply_names)]; unsigned int micbias1_cap_mode; unsigned int micbias2_cap_mode; + unsigned int micbias_mv; }; static const char *const adc2_mux_text[] = { "ZERO", "INP2", "INP3" }; @@ -265,18 +270,18 @@ static const struct snd_kcontrol_new pm8916_wcd_analog_snd_controls[] = { static void pm8916_wcd_analog_micbias_enable(struct snd_soc_codec *codec) { + struct pm8916_wcd_analog_priv *wcd = snd_soc_codec_get_drvdata(codec); + snd_soc_update_bits(codec, CDC_A_MICB_1_CTL, MICB_1_CTL_EXT_PRECHARG_EN_MASK | MICB_1_CTL_INT_PRECHARG_BYP_MASK, MICB_1_CTL_INT_PRECHARG_BYP_EXT_PRECHRG_SEL | MICB_1_CTL_EXT_PRECHARG_EN_ENABLE); - snd_soc_write(codec, CDC_A_MICB_1_VAL, MICB_1_VAL_MICB_OUT_VAL_V2P70V); - /* - * Special headset needs MICBIAS as 2.7V so wait for - * 50 msec for the MICBIAS to reach 2.7 volts. - */ - msleep(50); + if (wcd->micbias_mv) + snd_soc_write(codec, CDC_A_MICB_1_VAL, + MICB_VOLTAGE_REGVAL(wcd->micbias_mv)); + snd_soc_update_bits(codec, CDC_A_MICB_1_CTL, MICB_1_CTL_EXT_PRECHARG_EN_MASK | MICB_1_CTL_INT_PRECHARG_BYP_MASK, 0); @@ -795,6 +800,9 @@ static int pm8916_wcd_analog_parse_dt(struct device *dev, else priv->micbias2_cap_mode = MICB_1_EN_NO_EXT_BYP_CAP; + of_property_read_u32(dev->of_node, "qcom,micbias-lvl", + &priv->micbias_mv); + return 0; } From patchwork Wed Aug 2 17:09:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 109268 Delivered-To: patch@linaro.org Received: by 10.182.45.195 with SMTP id p3csp6475545obm; Wed, 2 Aug 2017 10:12:15 -0700 (PDT) X-Received: by 10.98.152.77 with SMTP id q74mr23179614pfd.40.1501693934935; Wed, 02 Aug 2017 10:12:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501693934; cv=none; d=google.com; s=arc-20160816; b=HxIvxyGitegmXKWDGcLpqfnMJijKbyLPFli344amLHLx/T/7lC44ep0ELDg1+hMqmR FEeRQw2qwItqTbK02D88ncz9u7VWY09VX9/IyhvnVbTx8SpAOGGjD9E1FYIYW6/TwAWi PgJB201WMewTMPU1LGrE9HR+g8CGEi7n4zeBdvdfqvii4ZEgupBYiORbFxmG6ALQDs+H +5+n5uknTtXTlhmN08v4QR39TI7ApfVdnFz4TIRBdCXmzLmn1XB6XYcaan0IWKJb0f49 6jOQ+gVUNYoIgdWYXQnEiZX4+o/b0Y5xHASGu96RJEeuBPIiuSy++P+psVEW3V8WCNKx e2uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=Lshfogmfijij6O57DmllPOsjMOttJSpSLxb50SN98+M=; b=eLO9TD13+DIv+pffdeYzcd0xCXNQk7n+4yA/fXc0XX3/BsZWdrZMdxkjH6vuvQwYw3 9u8mcE5PXkiJ8tzlzvENkYYNsU/9xbcDa614BR9dspmIsiJiAU6lUg4nGEEEEKfD23+x u+5HDEecPDQCPu1+zNHZbfNxuvJAmDEybnKC1lVPNGqX6znEZkdx/O7ecF+5NXguDNNq bmeOv6R78EbWlYc3WTQkgo7B/dHbAa6YPcsV80frteUhmqzkTBUtozeHtxOwtSIsQbK+ rdQrzIjQJJQXg89FuFtc7dyj7RvOsChTJgR+NE3eNgUS6dwY+sKFsvWxAjCy4kBSi+9j tgLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.b=iYXFvBwb; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d10si21545008pln.796.2017.08.02.10.12.14; Wed, 02 Aug 2017 10:12:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.b=iYXFvBwb; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752516AbdHBRKG (ORCPT + 25 others); Wed, 2 Aug 2017 13:10:06 -0400 Received: from mail-io0-f179.google.com ([209.85.223.179]:37609 "EHLO mail-io0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752173AbdHBRJx (ORCPT ); Wed, 2 Aug 2017 13:09:53 -0400 Received: by mail-io0-f179.google.com with SMTP id c74so22868531iod.4 for ; Wed, 02 Aug 2017 10:09:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Lshfogmfijij6O57DmllPOsjMOttJSpSLxb50SN98+M=; b=iYXFvBwbZF8by6usUjz1e/F0BiZJexok+nbYQTrWlBb0d9cxxVI0MaTRp0zn0aHFQc 3edBLhYNKiLD0fcVrf5f6F8rTfpOY2xbBT2Z1NQfwIF0UVKqi4jTXkpb4SFcDrg0QeGL FhdbXivJaMpVRQGHLpy7WPGrjod57hIdxzWMk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Lshfogmfijij6O57DmllPOsjMOttJSpSLxb50SN98+M=; b=I2DzC4FB6egWI3KBSPyxRuprl5T9AY85ah1Z7fOjNsdSLgM/hN5Kv+GJcpj+IXC4am MW3fdQrW4JAbPDdpqnJhfvAonZAWREttO6hfwiJu//yGsG74Eh+IQxNRvmBGMAFK/Hxa LOkUXgVw4acrMY/hbBZ2xJm/IiZYVeJ+beVd3dmX15/fglVV78itzd9cNnz4CoVgkcPm Wz16FG7NiaX1zyicBK/yXk/uC93/J3qztv60ggMz+4jbQZQiQExwPnBNOxQPWpaMzuh+ a2PzwCoNyTQ0fnk7q+UTq9XbqnCPdUdKdWCqeRjnDRPCebwSarS4+vQSmXzw2+pyJXwm YO/g== X-Gm-Message-State: AIVw110VWEEC1VWzOOnqo1I+RNzfAwHQagOO1IigaFzuVnH0YxX3IQ91 Nad3l1VvKU+cS9/L X-Received: by 10.107.26.130 with SMTP id a124mr26257982ioa.120.1501693793215; Wed, 02 Aug 2017 10:09:53 -0700 (PDT) Received: from localhost.localdomain (static.8.26.4.46.clients.your-server.de. [46.4.26.8]) by smtp.gmail.com with ESMTPSA id u79sm2291222ita.24.2017.08.02.10.09.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Aug 2017 10:09:52 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: Mark Brown , Banajit Goswami , alsa-devel@alsa-project.org Cc: damien.riegel@savoirfairelinux.com, Jaroslav Kysela , Takashi Iwai , Patrick Lai , linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH v2 5/6] ASoC: qcom: apq8016-sbc: Add support to Headset JACK Date: Wed, 2 Aug 2017 19:09:29 +0200 Message-Id: <20170802170930.26083-6-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170802170930.26083-1-srinivas.kandagatla@linaro.org> References: <20170802170930.26083-1-srinivas.kandagatla@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Srinivas Kandagatla This patch adds support to Headset JACK, also provides board specific vref ranges for mbhc buttons to be detected. This headset supports both 3 pole and 4 pole headset type and 5 buttons. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/apq8016_sbc.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) -- 2.9.3 diff --git a/sound/soc/qcom/apq8016_sbc.c b/sound/soc/qcom/apq8016_sbc.c index f07aa1e..e6e632a 100644 --- a/sound/soc/qcom/apq8016_sbc.c +++ b/sound/soc/qcom/apq8016_sbc.c @@ -21,12 +21,16 @@ #include #include #include +#include #include +#include #include struct apq8016_sbc_data { void __iomem *mic_iomux; void __iomem *spkr_iomux; + struct snd_soc_jack jack; + bool jack_setup; struct snd_soc_dai_link dai_link[]; /* dynamically allocated */ }; @@ -70,6 +74,31 @@ static int apq8016_sbc_dai_init(struct snd_soc_pcm_runtime *rtd) } + if (!pdata->jack_setup) { + struct snd_jack *jack; + + rval = snd_soc_card_jack_new(card, "Headset Jack", + SND_JACK_HEADSET | + SND_JACK_HEADPHONE | + SND_JACK_BTN_0 | SND_JACK_BTN_1 | + SND_JACK_BTN_2 | SND_JACK_BTN_3 | + SND_JACK_BTN_4, + &pdata->jack, NULL, 0); + + if (rval < 0) { + dev_err(card->dev, "Unable to add Headphone Jack\n"); + return rval; + } + + jack = pdata->jack.jack; + + snd_jack_set_key(jack, SND_JACK_BTN_0, KEY_MEDIA); + snd_jack_set_key(jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); + snd_jack_set_key(jack, SND_JACK_BTN_2, KEY_VOLUMEUP); + snd_jack_set_key(jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); + pdata->jack_setup = true; + } + for (i = 0 ; i < dai_link->num_codecs; i++) { struct snd_soc_dai *dai = rtd->codec_dais[i]; @@ -81,6 +110,11 @@ static int apq8016_sbc_dai_init(struct snd_soc_pcm_runtime *rtd) dev_warn(card->dev, "Failed to set mclk: %d\n", rval); return rval; } + rval = snd_soc_codec_set_jack(codec, &pdata->jack, NULL); + if (rval != 0 && rval != -ENOTSUPP) { + dev_warn(card->dev, "Failed to set jack: %d\n", rval); + return rval; + } } return 0;