From patchwork Tue Sep 19 16:11:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 9959615 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B37166056A for ; Tue, 19 Sep 2017 16:49:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A3AA12874A for ; Tue, 19 Sep 2017 16:49:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 983F62879E; Tue, 19 Sep 2017 16:49:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0A3E528EA7 for ; Tue, 19 Sep 2017 16:49:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:Message-Id: In-Reply-To:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: References:List-Owner; bh=YRhB2ZZTYJGK1hWk0DKbpoy6HPZc3qHL+WX/lcorJSg=; b=SbC 2buAtw1BBBJ3psrP/6SEnbeQSCTZH1tIZQwmMgoREQsKAhDkUzhTWuzn2Jh/Av3hNjJ0kGs5k2wwI rq+RtzfNElQhEwsyVGRSL1uQZCrfDVa1BjtdEwKo0oTdwVtZVKKbNk6d9eymA40Hb4wIdzcOxVJd/ 1CaHNjDeOEdiE5OokDY13GQf1cMNqe4SAO5ttWY34MCQ5OviNekrS35UHiHibooXdx9dHbcWZKJUj YPe+qX4NXEP+VH/wZZAmTLJQfE2zg9nzPs40xQhGdlMZ4PqVyXiAPCaFzTzau78appbh89gMZEjxl te7EAXetdeaoA286qTNgvZMsyPQuVIg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1duLhz-0005JH-8N; Tue, 19 Sep 2017 16:49:15 +0000 Received: from merlin.infradead.org ([2001:8b0:10b:1231::1]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1duLhw-0005IZ-Fi for linux-arm-kernel@bombadil.infradead.org; Tue, 19 Sep 2017 16:49:12 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Date:Message-Id:In-Reply-To:Subject:Cc: To:From:Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:References:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=kYbedE512b169+v5V7uZnPxIJb0IKO5v0o1Pxaii79I=; b=htpE54slvGSI/ewTGr7lesuCHY vaf4yZNQDE4pZhPzFZaTB+CPzbtiN/e3AWXXQOMTp2ox4z1TcFMxMZVf2wxhWKk8SLlRrlWNHXv/Y qsSk8z0vSMbtd0Eh2UbyDAfDOzWFtE/vvhfkkTDcTDYERZd7uAFp0R1U4lnSxOtr7MT1A3Eg0elSb oTXAMgQuZNXllGcRLMedLQwhwB9GX9M58P0iFA0+S81iNEgvmphcVJYCkrv/7YGWVP02r/r3GQTh2 xjFJNNO90484NF77PxZTkPcUSGV/6ysKdSJVHKoyUbjCGGLyLziGhd9kTpiK9V/6jdYeIb4/vslXY h2NT9rng==; Received: from heliosphere.sirena.org.uk ([2a01:7e01::f03c:91ff:fed4:a3b6]) by merlin.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1duL8J-0003PN-DF for linux-arm-kernel@lists.infradead.org; Tue, 19 Sep 2017 16:12:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sirena.org.uk; s=20170815-heliosphere; h=Date:Message-Id:In-Reply-To: Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References: List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner: List-Archive; bh=kYbedE512b169+v5V7uZnPxIJb0IKO5v0o1Pxaii79I=; b=axqOKNHcpuP3 rO6NJQh5IcEdZExaZ1WquV+XfozYj4ESciAxxeKfbG8MLxjwQoQFHeMaDyrIT1Wbd6iDMiErPMDM1 T+FHssH7dg0h8whxJGr0FXp/GB2jkf88J2xeBT3L/cBil2o52w+vs9wEG6VbqhTOoc2iget46D/lK Ocnrg=; Received: from debutante.sirena.org.uk ([2001:470:1f1d:6b5::3] helo=debutante) by heliosphere.sirena.org.uk with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1duL78-0001f3-QS; Tue, 19 Sep 2017 16:11:10 +0000 Received: from broonie by debutante with local (Exim 4.89) (envelope-from ) id 1duL78-0004iD-D7; Tue, 19 Sep 2017 17:11:10 +0100 From: Mark Brown To: Robert Jarzmik Subject: Applied "ASoC: wm9712: add ac97 new bus support" to the asoc tree In-Reply-To: <20170913193723.16234-6-robert.jarzmik@free.fr> Message-Id: Date: Tue, 19 Sep 2017 17:11:10 +0100 X-Bad-Reply: In-Reply-To but no 'Re:' in Subject. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-input@vger.kernel.org, alsa-devel@alsa-project.org, Lars-Peter Clausen , linux-kernel@vger.kernel.org, Dmitry Torokhov , Liam Girdwood , Haojian Zhuang , Takashi Iwai , Mark Brown , linux-arm-kernel@lists.infradead.org, patches@opensource.wolfsonmicro.com, Charles Keepax , Jaroslav Kysela , Lee Jones , Daniel Mack MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The patch ASoC: wm9712: add ac97 new bus support has been applied to the asoc tree at git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark From 2ed1a8e0ce8db6d36f849526db61ce3c85a9f8d1 Mon Sep 17 00:00:00 2001 From: Robert Jarzmik Date: Wed, 13 Sep 2017 21:37:20 +0200 Subject: [PATCH] ASoC: wm9712: add ac97 new bus support Add support for the new ac97 bus model, where devices are automatically discovered on AC-Links. Signed-off-by: Robert Jarzmik Signed-off-by: Mark Brown --- sound/soc/codecs/Kconfig | 3 ++- sound/soc/codecs/wm9712.c | 44 ++++++++++++++++++++++++++++++-------------- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 807901cac1b3..655388d456be 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -215,7 +215,7 @@ config SND_SOC_ALL_CODECS select SND_SOC_WM9081 if I2C select SND_SOC_WM9090 if I2C select SND_SOC_WM9705 if SND_SOC_AC97_BUS - select SND_SOC_WM9712 if SND_SOC_AC97_BUS + select SND_SOC_WM9712 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW) select SND_SOC_WM9713 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW) help Normally ASoC codec drivers are only built if a machine driver which @@ -1132,6 +1132,7 @@ config SND_SOC_WM9705 config SND_SOC_WM9712 tristate select REGMAP_AC97 + select AC97_BUS_COMPAT if AC97_BUS_NEW config SND_SOC_WM9713 tristate diff --git a/sound/soc/codecs/wm9712.c b/sound/soc/codecs/wm9712.c index 1a3e1797994a..1e228bf9f1ae 100644 --- a/sound/soc/codecs/wm9712.c +++ b/sound/soc/codecs/wm9712.c @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -19,6 +20,8 @@ #include #include #include +#include +#include #include #include #include @@ -30,6 +33,7 @@ struct wm9712_priv { struct snd_ac97 *ac97; unsigned int hp_mixer[2]; struct mutex lock; + struct wm97xx_platform_data *mfd_pdata; }; static const struct reg_default wm9712_reg_defaults[] = { @@ -636,18 +640,25 @@ static int wm9712_soc_probe(struct snd_soc_codec *codec) struct regmap *regmap; int ret; - wm9712->ac97 = snd_soc_new_ac97_codec(codec, WM9712_VENDOR_ID, - WM9712_VENDOR_ID_MASK); - if (IS_ERR(wm9712->ac97)) { - ret = PTR_ERR(wm9712->ac97); - dev_err(codec->dev, "Failed to register AC97 codec: %d\n", ret); - return ret; - } - - regmap = regmap_init_ac97(wm9712->ac97, &wm9712_regmap_config); - if (IS_ERR(regmap)) { - ret = PTR_ERR(regmap); - goto err_free_ac97_codec; + if (wm9712->mfd_pdata) { + wm9712->ac97 = wm9712->mfd_pdata->ac97; + regmap = wm9712->mfd_pdata->regmap; + } else { +#ifdef CONFIG_SND_SOC_AC97_BUS + wm9712->ac97 = snd_soc_new_ac97_codec(codec, WM9712_VENDOR_ID, + WM9712_VENDOR_ID_MASK); + if (IS_ERR(wm9712->ac97)) { + ret = PTR_ERR(wm9712->ac97); + dev_err(codec->dev, + "Failed to register AC97 codec: %d\n", ret); + return ret; + } + + regmap = regmap_init_ac97(wm9712->ac97, &wm9712_regmap_config); + if (IS_ERR(regmap)) { + ret = PTR_ERR(regmap); + goto err_free_ac97_codec; +#endif } snd_soc_codec_init_regmap(codec, regmap); @@ -663,10 +674,14 @@ static int wm9712_soc_probe(struct snd_soc_codec *codec) static int wm9712_soc_remove(struct snd_soc_codec *codec) { +#ifdef CONFIG_SND_SOC_AC97_BUS struct wm9712_priv *wm9712 = snd_soc_codec_get_drvdata(codec); - snd_soc_codec_exit_regmap(codec); - snd_soc_free_ac97_codec(wm9712->ac97); + if (!wm9712->mfd_pdata) { + snd_soc_codec_exit_regmap(codec); + snd_soc_free_ac97_codec(wm9712->ac97); + } +#endif return 0; } @@ -697,6 +712,7 @@ static int wm9712_probe(struct platform_device *pdev) mutex_init(&wm9712->lock); + wm9712->mfd_pdata = dev_get_platdata(&pdev->dev); platform_set_drvdata(pdev, wm9712); return snd_soc_register_codec(&pdev->dev,