From: Robert Jarzmik <robert.jarzmik@free.fr> To: Dmitry Torokhov <dmitry.torokhov@gmail.com>, Lee Jones <lee.jones@linaro.org>, Sebastian Reichel <sre@kernel.org>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>, Daniel Mack <daniel@zonque.org>, Haojian Zhuang <haojian.zhuang@gmail.com>, Robert Jarzmik <robert.jarzmik@free.fr>, Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org> Cc: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, patches@opensource.wolfsonmicro.com, linux-pm@vger.kernel.org, alsa-devel@alsa-project.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 4/9] ASoC: wm9713: add ac97 new bus support Date: Wed, 26 Oct 2016 21:41:42 +0200 [thread overview] Message-ID: <1477510907-23495-5-git-send-email-robert.jarzmik@free.fr> (raw) In-Reply-To: <1477510907-23495-1-git-send-email-robert.jarzmik@free.fr> Add support for the new ac97 bus model, where devices are automatically discovered on AC-Links. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> --- sound/soc/codecs/Kconfig | 3 ++- sound/soc/codecs/wm9713.c | 37 ++++++++++++++++++++++++++----------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index c67667bb970f..c5871a299cfc 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -202,7 +202,7 @@ config SND_SOC_ALL_CODECS 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_WM9713 if SND_SOC_AC97_BUS + 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 uses them is also built since they are only usable with a machine @@ -1061,6 +1061,7 @@ config SND_SOC_WM9712 config SND_SOC_WM9713 tristate select REGMAP_AC97 + select AC97_BUS_COMPAT if AC97_BUS_NEW # Amp config SND_SOC_LM4857 diff --git a/sound/soc/codecs/wm9713.c b/sound/soc/codecs/wm9713.c index e4301ddb1b84..2163232855cb 100644 --- a/sound/soc/codecs/wm9713.c +++ b/sound/soc/codecs/wm9713.c @@ -17,12 +17,15 @@ #include <linux/init.h> #include <linux/slab.h> +#include <linux/mfd/wm97xx.h> #include <linux/module.h> #include <linux/device.h> #include <linux/regmap.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/ac97_codec.h> +#include <sound/ac97/codec.h> +#include <sound/ac97/compat.h> #include <sound/initval.h> #include <sound/pcm_params.h> #include <sound/tlv.h> @@ -38,6 +41,7 @@ struct wm9713_priv { u32 pll_in; /* PLL input frequency */ unsigned int hp_mixer[2]; struct mutex lock; + struct wm97xx_platform_data *mfd_pdata; }; #define HPL_MIXER 0 @@ -1207,15 +1211,21 @@ static int wm9713_soc_probe(struct snd_soc_codec *codec) struct wm9713_priv *wm9713 = snd_soc_codec_get_drvdata(codec); struct regmap *regmap; - wm9713->ac97 = snd_soc_new_ac97_codec(codec, WM9713_VENDOR_ID, - WM9713_VENDOR_ID_MASK); - if (IS_ERR(wm9713->ac97)) - return PTR_ERR(wm9713->ac97); - - regmap = regmap_init_ac97(wm9713->ac97, &wm9713_regmap_config); - if (IS_ERR(regmap)) { - snd_soc_free_ac97_codec(wm9713->ac97); - return PTR_ERR(regmap); + if (wm9713->mfd_pdata) { + wm9713->ac97 = wm9713->mfd_pdata->ac97; + regmap = wm9713->mfd_pdata->regmap; + } else { +#ifdef CONFIG_SND_SOC_AC97_BUS + wm9713->ac97 = snd_soc_new_ac97_codec(codec, WM9713_VENDOR_ID, + WM9713_VENDOR_ID_MASK); + if (IS_ERR(wm9713->ac97)) + return PTR_ERR(wm9713->ac97); + regmap = regmap_init_ac97(wm9713->ac97, &wm9713_regmap_config); + if (IS_ERR(regmap)) { + snd_soc_free_ac97_codec(wm9713->ac97); + return PTR_ERR(regmap); + } +#endif } snd_soc_codec_init_regmap(codec, regmap); @@ -1230,8 +1240,12 @@ static int wm9713_soc_remove(struct snd_soc_codec *codec) { struct wm9713_priv *wm9713 = snd_soc_codec_get_drvdata(codec); - snd_soc_codec_exit_regmap(codec); - snd_soc_free_ac97_codec(wm9713->ac97); + if (!wm9713->mfd_pdata) { + snd_soc_codec_exit_regmap(codec); +#ifdef CONFIG_SND_SOC_AC97_BUS + snd_soc_free_ac97_codec(wm9713->ac97); +#endif + } return 0; } @@ -1262,6 +1276,7 @@ static int wm9713_probe(struct platform_device *pdev) mutex_init(&wm9713->lock); + wm9713->mfd_pdata = dev_get_platdata(&pdev->dev); platform_set_drvdata(pdev, wm9713); return snd_soc_register_codec(&pdev->dev, -- 2.1.4
WARNING: multiple messages have this Message-ID (diff)
From: robert.jarzmik@free.fr (Robert Jarzmik) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 4/9] ASoC: wm9713: add ac97 new bus support Date: Wed, 26 Oct 2016 21:41:42 +0200 [thread overview] Message-ID: <1477510907-23495-5-git-send-email-robert.jarzmik@free.fr> (raw) In-Reply-To: <1477510907-23495-1-git-send-email-robert.jarzmik@free.fr> Add support for the new ac97 bus model, where devices are automatically discovered on AC-Links. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> --- sound/soc/codecs/Kconfig | 3 ++- sound/soc/codecs/wm9713.c | 37 ++++++++++++++++++++++++++----------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index c67667bb970f..c5871a299cfc 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -202,7 +202,7 @@ config SND_SOC_ALL_CODECS 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_WM9713 if SND_SOC_AC97_BUS + 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 uses them is also built since they are only usable with a machine @@ -1061,6 +1061,7 @@ config SND_SOC_WM9712 config SND_SOC_WM9713 tristate select REGMAP_AC97 + select AC97_BUS_COMPAT if AC97_BUS_NEW # Amp config SND_SOC_LM4857 diff --git a/sound/soc/codecs/wm9713.c b/sound/soc/codecs/wm9713.c index e4301ddb1b84..2163232855cb 100644 --- a/sound/soc/codecs/wm9713.c +++ b/sound/soc/codecs/wm9713.c @@ -17,12 +17,15 @@ #include <linux/init.h> #include <linux/slab.h> +#include <linux/mfd/wm97xx.h> #include <linux/module.h> #include <linux/device.h> #include <linux/regmap.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/ac97_codec.h> +#include <sound/ac97/codec.h> +#include <sound/ac97/compat.h> #include <sound/initval.h> #include <sound/pcm_params.h> #include <sound/tlv.h> @@ -38,6 +41,7 @@ struct wm9713_priv { u32 pll_in; /* PLL input frequency */ unsigned int hp_mixer[2]; struct mutex lock; + struct wm97xx_platform_data *mfd_pdata; }; #define HPL_MIXER 0 @@ -1207,15 +1211,21 @@ static int wm9713_soc_probe(struct snd_soc_codec *codec) struct wm9713_priv *wm9713 = snd_soc_codec_get_drvdata(codec); struct regmap *regmap; - wm9713->ac97 = snd_soc_new_ac97_codec(codec, WM9713_VENDOR_ID, - WM9713_VENDOR_ID_MASK); - if (IS_ERR(wm9713->ac97)) - return PTR_ERR(wm9713->ac97); - - regmap = regmap_init_ac97(wm9713->ac97, &wm9713_regmap_config); - if (IS_ERR(regmap)) { - snd_soc_free_ac97_codec(wm9713->ac97); - return PTR_ERR(regmap); + if (wm9713->mfd_pdata) { + wm9713->ac97 = wm9713->mfd_pdata->ac97; + regmap = wm9713->mfd_pdata->regmap; + } else { +#ifdef CONFIG_SND_SOC_AC97_BUS + wm9713->ac97 = snd_soc_new_ac97_codec(codec, WM9713_VENDOR_ID, + WM9713_VENDOR_ID_MASK); + if (IS_ERR(wm9713->ac97)) + return PTR_ERR(wm9713->ac97); + regmap = regmap_init_ac97(wm9713->ac97, &wm9713_regmap_config); + if (IS_ERR(regmap)) { + snd_soc_free_ac97_codec(wm9713->ac97); + return PTR_ERR(regmap); + } +#endif } snd_soc_codec_init_regmap(codec, regmap); @@ -1230,8 +1240,12 @@ static int wm9713_soc_remove(struct snd_soc_codec *codec) { struct wm9713_priv *wm9713 = snd_soc_codec_get_drvdata(codec); - snd_soc_codec_exit_regmap(codec); - snd_soc_free_ac97_codec(wm9713->ac97); + if (!wm9713->mfd_pdata) { + snd_soc_codec_exit_regmap(codec); +#ifdef CONFIG_SND_SOC_AC97_BUS + snd_soc_free_ac97_codec(wm9713->ac97); +#endif + } return 0; } @@ -1262,6 +1276,7 @@ static int wm9713_probe(struct platform_device *pdev) mutex_init(&wm9713->lock); + wm9713->mfd_pdata = dev_get_platdata(&pdev->dev); platform_set_drvdata(pdev, wm9713); return snd_soc_register_codec(&pdev->dev, -- 2.1.4
next prev parent reply other threads:[~2016-10-26 19:50 UTC|newest] Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-10-26 19:41 [PATCH 0/9] AC97 device/driver model revamp Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-26 19:41 ` [PATCH 1/9] ALSA: ac97: split out the generic ac97 registers Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-26 19:41 ` [PATCH 2/9] ALSA: ac97: add an ac97 bus Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-11-08 13:37 ` [alsa-devel] " Lars-Peter Clausen 2016-11-08 13:37 ` Lars-Peter Clausen 2016-11-08 21:18 ` Robert Jarzmik 2016-11-08 21:18 ` Robert Jarzmik 2016-11-08 21:18 ` Robert Jarzmik 2016-11-09 13:11 ` Lars-Peter Clausen 2016-11-09 13:11 ` Lars-Peter Clausen 2016-11-09 21:27 ` Robert Jarzmik 2016-11-09 21:27 ` Robert Jarzmik 2016-11-10 11:38 ` Lars-Peter Clausen 2016-11-10 11:38 ` Lars-Peter Clausen 2016-11-22 18:08 ` Mark Brown 2016-11-22 18:08 ` Mark Brown 2016-11-25 19:58 ` Robert Jarzmik 2016-11-25 19:58 ` Robert Jarzmik 2016-10-26 19:41 ` [PATCH 3/9] ASoC: add new ac97 bus support Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik [this message] 2016-10-26 19:41 ` [PATCH 4/9] ASoC: wm9713: add ac97 new " Robert Jarzmik 2016-10-27 8:39 ` Charles Keepax 2016-10-27 8:39 ` Charles Keepax 2016-10-27 8:39 ` Charles Keepax 2016-10-26 19:41 ` [PATCH 5/9] ASoC: pxa: switch to new ac97 " Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-31 8:37 ` Robert Jarzmik 2016-10-31 8:37 ` Robert Jarzmik 2016-11-01 19:55 ` Robert Jarzmik 2016-11-01 19:55 ` Robert Jarzmik 2016-10-26 19:41 ` [PATCH 6/9] power_supply: wm97xx_battery: use power_supply_get_drvdata Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-27 8:41 ` Charles Keepax 2016-10-27 8:41 ` Charles Keepax 2016-11-23 23:13 ` Sebastian Reichel 2016-11-23 23:13 ` Sebastian Reichel 2016-11-25 19:54 ` Robert Jarzmik 2016-11-25 19:54 ` Robert Jarzmik 2017-01-23 18:38 ` Kevin Hilman 2017-01-23 18:38 ` Kevin Hilman 2017-01-24 7:31 ` Robert Jarzmik 2017-01-24 7:31 ` Robert Jarzmik 2017-01-24 20:40 ` Dmitry Torokhov 2017-01-24 20:40 ` Dmitry Torokhov 2017-01-24 23:39 ` Kevin Hilman 2017-01-24 23:39 ` Kevin Hilman 2016-10-26 19:41 ` [PATCH 7/9] Input: wm97xx: split out touchscreen registering Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-27 9:02 ` Charles Keepax 2016-10-27 9:02 ` Charles Keepax 2016-10-27 9:02 ` Charles Keepax 2016-10-27 19:27 ` Robert Jarzmik 2016-10-27 19:27 ` Robert Jarzmik 2016-10-27 19:27 ` Robert Jarzmik 2016-10-26 19:41 ` [PATCH 8/9] mfd: wm97xx-core: core support for wm97xx Codec Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-27 9:11 ` Charles Keepax 2016-10-27 9:11 ` Charles Keepax 2016-10-27 9:11 ` Charles Keepax 2016-11-18 16:50 ` Lee Jones 2016-11-18 16:50 ` Lee Jones 2016-11-19 11:39 ` Robert Jarzmik 2016-11-19 11:39 ` Robert Jarzmik 2016-11-21 10:12 ` Lee Jones 2016-11-21 10:12 ` Lee Jones 2016-11-26 9:18 ` Robert Jarzmik 2016-11-26 9:18 ` Robert Jarzmik 2016-12-06 11:13 ` Mark Brown 2016-12-06 11:13 ` Mark Brown 2017-02-03 8:37 ` Robert Jarzmik 2017-02-03 8:37 ` Robert Jarzmik 2016-10-26 19:41 ` [PATCH 9/9] Input: wm97xx: add new AC97 bus support Robert Jarzmik 2016-10-26 19:41 ` Robert Jarzmik 2016-10-27 9:13 ` Charles Keepax 2016-10-27 9:13 ` Charles Keepax 2016-10-27 9:13 ` Charles Keepax 2017-09-19 16:11 ` Applied "Input: wm97xx: add new AC97 bus support" to the asoc tree Mark Brown 2017-09-19 16:11 ` Mark Brown 2017-09-19 16:11 ` Mark Brown 2016-11-22 18:13 ` [PATCH 0/9] AC97 device/driver model revamp Mark Brown 2016-11-22 18:13 ` Mark Brown 2016-11-22 18:13 ` Mark Brown
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=1477510907-23495-5-git-send-email-robert.jarzmik@free.fr \ --to=robert.jarzmik@free.fr \ --cc=alsa-devel@alsa-project.org \ --cc=broonie@kernel.org \ --cc=daniel@zonque.org \ --cc=dmitry.torokhov@gmail.com \ --cc=haojian.zhuang@gmail.com \ --cc=lee.jones@linaro.org \ --cc=lgirdwood@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-input@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=patches@opensource.wolfsonmicro.com \ --cc=perex@perex.cz \ --cc=sre@kernel.org \ --cc=tiwai@suse.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.