diff mbox

ASoC: Let snd_soc_limit_volume() take a snd_soc_card

Message ID 1445180673-27790-1-git-send-email-lars@metafoo.de (mailing list archive)
State Accepted
Commit 26d9ca3462df8f7e83fc372b23c8da5ed2b1c4f3
Headers show

Commit Message

Lars-Peter Clausen Oct. 18, 2015, 3:04 p.m. UTC
snd_soc_limit_volume() operates on a card and the CODEC that is passed in
is only used to look up the card. Let it directly take the card instead.
This makes it possible to use it when no snd_soc_codec is available.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 include/sound/soc.h   | 2 +-
 sound/soc/omap/rx51.c | 2 +-
 sound/soc/soc-ops.c   | 8 ++++----
 3 files changed, 6 insertions(+), 6 deletions(-)

Comments

Jarkko Nikula Oct. 18, 2015, 5:26 p.m. UTC | #1
On 10/18/2015 06:04 PM, Lars-Peter Clausen wrote:
> snd_soc_limit_volume() operates on a card and the CODEC that is passed in
> is only used to look up the card. Let it directly take the card instead.
> This makes it possible to use it when no snd_soc_codec is available.
> 
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
> ---
>  include/sound/soc.h   | 2 +-
>  sound/soc/omap/rx51.c | 2 +-
>  sound/soc/soc-ops.c   | 8 ++++----

For rx51:

Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Mark Brown Oct. 22, 2015, 12:49 p.m. UTC | #2
On Sun, Oct 18, 2015 at 05:04:33PM +0200, Lars-Peter Clausen wrote:
> snd_soc_limit_volume() operates on a card and the CODEC that is passed in
> is only used to look up the card. Let it directly take the card instead.
> This makes it possible to use it when no snd_soc_codec is available.

It was actually in theory supposed to be a per device thing but indeed
that's not the current implementation.
diff mbox

Patch

diff --git a/include/sound/soc.h b/include/sound/soc.h
index bd85564..8b06678 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -612,7 +612,7 @@  int snd_soc_put_volsw_range(struct snd_kcontrol *kcontrol,
 	struct snd_ctl_elem_value *ucontrol);
 int snd_soc_get_volsw_range(struct snd_kcontrol *kcontrol,
 	struct snd_ctl_elem_value *ucontrol);
-int snd_soc_limit_volume(struct snd_soc_codec *codec,
+int snd_soc_limit_volume(struct snd_soc_card *card,
 	const char *name, int max);
 int snd_soc_bytes_info(struct snd_kcontrol *kcontrol,
 		       struct snd_ctl_elem_info *uinfo);
diff --git a/sound/soc/omap/rx51.c b/sound/soc/omap/rx51.c
index 3bebfb1..9953890 100644
--- a/sound/soc/omap/rx51.c
+++ b/sound/soc/omap/rx51.c
@@ -297,7 +297,7 @@  static int rx51_aic34_init(struct snd_soc_pcm_runtime *rtd)
 		dev_err(card->dev, "Failed to add TPA6130A2 controls\n");
 		return err;
 	}
-	snd_soc_limit_volume(codec, "TPA6130A2 Headphone Playback Volume", 42);
+	snd_soc_limit_volume(card, "TPA6130A2 Headphone Playback Volume", 42);
 
 	err = omap_mcbsp_st_add_controls(rtd, 2);
 	if (err < 0) {
diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c
index 05977ae..ecd38e5 100644
--- a/sound/soc/soc-ops.c
+++ b/sound/soc/soc-ops.c
@@ -588,16 +588,16 @@  EXPORT_SYMBOL_GPL(snd_soc_get_volsw_range);
 /**
  * snd_soc_limit_volume - Set new limit to an existing volume control.
  *
- * @codec: where to look for the control
+ * @card: where to look for the control
  * @name: Name of the control
  * @max: new maximum limit
  *
  * Return 0 for success, else error.
  */
-int snd_soc_limit_volume(struct snd_soc_codec *codec,
+int snd_soc_limit_volume(struct snd_soc_card *card,
 	const char *name, int max)
 {
-	struct snd_card *card = codec->component.card->snd_card;
+	struct snd_card *snd_card = card->snd_card;
 	struct snd_kcontrol *kctl;
 	struct soc_mixer_control *mc;
 	int found = 0;
@@ -607,7 +607,7 @@  int snd_soc_limit_volume(struct snd_soc_codec *codec,
 	if (unlikely(!name || max <= 0))
 		return -EINVAL;
 
-	list_for_each_entry(kctl, &card->controls, list) {
+	list_for_each_entry(kctl, &snd_card->controls, list) {
 		if (!strncmp(kctl->id.name, name, sizeof(kctl->id.name))) {
 			found = 1;
 			break;