[alsa-devel] [GIT PULL] ASoC updates for v3.16

Takashi Iwai tiwai at suse.de
Tue Jun 3 12:38:47 CEST 2014


At Tue, 03 Jun 2014 12:17:44 +0200,
Takashi Iwai wrote:
> 
> At Tue, 03 Jun 2014 11:55:46 +0200,
> Takashi Iwai wrote:
> > 
> > At Tue, 3 Jun 2014 10:46:45 +0100,
> > Mark Brown wrote:
> > > 
> > > The following changes since commit cee429e5c53f7ffc1dd500001d9dff567833c23d:
> > > 
> > >   Merge remote-tracking branches 'asoc/topic/ux500', 'asoc/topic/wm8731', 'asoc/topic/wm8804', 'asoc/topic/wm8955' and 'asoc/topic/wm8985' into asoc-next (2014-05-22 00:24:04 +0100)
> > > 
> > > are available in the git repository at:
> > > 
> > > 
> > >   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git asoc-v3.16-2
> > > 
> > > for you to fetch changes up to e1d4d3c854f25cff6c6c139588570e124d5e8fa4:
> > > 
> > >   ASoC: free jack GPIOs before the sound card is freed (2014-06-03 10:41:16 +0100)
> > > 
> > > ----------------------------------------------------------------
> > > ASoC: Final updates for v3.16
> > > 
> > > A few more updates from the last week of development, nothing too
> > > exciting.  Highlights include:
> > > 
> > > - GPIO descriptor support for jacks
> > > - More updates and fixes to the Freescale SSI, Intel and rsnd drivers.
> > > - New drivers for Analog Devices ADAU1361, ADAU1381, ADAU1761 and
> > >   ADAU1781, and Realtek RT5677.
> > 
> > Thanks, pulled now.
> 
> Now I get a few build warnings that look really buggy:
> 
> sound/soc/omap/omap-twl4030.c:274:2: warning: initialization from incompatible p
> ointer type [enabled by default]
> sound/soc/omap/omap-twl4030.c:274:2: warning: (near initialization for 'omap_twl
> 4030_card.remove') [enabled by default]
> 
> sound/soc/omap/rx51.c:379:2: warning: initialization from incompatible pointer t
> ype [enabled by default]
> sound/soc/omap/rx51.c:379:2: warning: (near initialization for 'rx51_sound_card.remove') [enabled by default]
> 
> They come from Stephen's patch, commit e1d4d3c8
>     ASoC: free jack GPIOs before the sound card is freed
> 
> The argument for remove callback should be struct snd_soc_card *.
> 
> Mark, aren't any fixes queued in your tree yet?

FWIW, below is a fix patch.  Only compile-tested.


Takashi

-- 8< --
From: Takashi Iwai <tiwai at suse.de>
Subject: [PATCH] ASoC: Fix wrong argument for card remove callbacks

The commit [e1d4d3c8: ASoC: free jack GPIOs before the sound card is
freed] introduced snd_soc_card remove callbacks to a few drivers, but
they are implemented with a wrong argument type.  The callback should
receive snd_soc_card pointer instead of snd_soc_pcm_runtime.

Fixes: e1d4d3c854f2 ('ASoC: free jack GPIOs before the sound card is freed')
Signed-off-by: Takashi Iwai <tiwai at suse.de>
---
 sound/soc/omap/ams-delta.c         | 2 +-
 sound/soc/omap/omap-twl4030.c      | 3 +--
 sound/soc/omap/rx51.c              | 2 +-
 sound/soc/pxa/hx4700.c             | 2 +-
 sound/soc/samsung/h1940_uda1380.c  | 2 +-
 sound/soc/samsung/rx1950_uda1380.c | 4 ++--
 sound/soc/samsung/smartq_wm8987.c  | 2 +-
 7 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/sound/soc/omap/ams-delta.c b/sound/soc/omap/ams-delta.c
index 1f41951d8b7f..0cc41f94de4e 100644
--- a/sound/soc/omap/ams-delta.c
+++ b/sound/soc/omap/ams-delta.c
@@ -527,7 +527,7 @@ static int ams_delta_cx20442_init(struct snd_soc_pcm_runtime *rtd)
 	return 0;
 }
 
-static int ams_delta_card_remove(struct snd_soc_pcm_runtime *rtd)
+static int ams_delta_card_remove(struct snd_soc_card *card)
 {
 	snd_soc_jack_free_gpios(&ams_delta_hook_switch,
 			ARRAY_SIZE(ams_delta_hook_switch_gpios),
diff --git a/sound/soc/omap/omap-twl4030.c b/sound/soc/omap/omap-twl4030.c
index b4e282871658..f8a6adc2d81c 100644
--- a/sound/soc/omap/omap-twl4030.c
+++ b/sound/soc/omap/omap-twl4030.c
@@ -231,9 +231,8 @@ static int omap_twl4030_init(struct snd_soc_pcm_runtime *rtd)
 	return ret;
 }
 
-static int omap_twl4030_card_remove(struct snd_soc_pcm_runtime *rtd)
+static int omap_twl4030_card_remove(struct snd_soc_card *card)
 {
-	struct snd_soc_card *card = rtd->card;
 	struct omap_twl4030 *priv = snd_soc_card_get_drvdata(card);
 
 	if (priv->jack_detect > 0)
diff --git a/sound/soc/omap/rx51.c b/sound/soc/omap/rx51.c
index 47a10290535b..943922c79f78 100644
--- a/sound/soc/omap/rx51.c
+++ b/sound/soc/omap/rx51.c
@@ -334,7 +334,7 @@ static int rx51_aic34_init(struct snd_soc_pcm_runtime *rtd)
 	return err;
 }
 
-static int rx51_card_remove(struct snd_soc_pcm_runtime *rtd)
+static int rx51_card_remove(struct snd_soc_card *card)
 {
 	snd_soc_jack_free_gpios(&rx51_av_jack, ARRAY_SIZE(rx51_av_jack_gpios),
 				rx51_av_jack_gpios);
diff --git a/sound/soc/pxa/hx4700.c b/sound/soc/pxa/hx4700.c
index 6b81acaffddd..05559a725bec 100644
--- a/sound/soc/pxa/hx4700.c
+++ b/sound/soc/pxa/hx4700.c
@@ -152,7 +152,7 @@ static int hx4700_ak4641_init(struct snd_soc_pcm_runtime *rtd)
 	return err;
 }
 
-static int hx4700_card_remove(struct snd_soc_pcm_runtime *rtd)
+static int hx4700_card_remove(struct snd_soc_card *card)
 {
 	snd_soc_jack_free_gpios(&hs_jack, 1, &hs_jack_gpio);
 
diff --git a/sound/soc/samsung/h1940_uda1380.c b/sound/soc/samsung/h1940_uda1380.c
index 720357f11a7f..f2d7980d7ddc 100644
--- a/sound/soc/samsung/h1940_uda1380.c
+++ b/sound/soc/samsung/h1940_uda1380.c
@@ -189,7 +189,7 @@ static int h1940_uda1380_init(struct snd_soc_pcm_runtime *rtd)
 	return 0;
 }
 
-static int h1940_uda1380_card_remove(struct snd_soc_pcm_runtime *rtd)
+static int h1940_uda1380_card_remove(struct snd_soc_card *card)
 {
 	snd_soc_jack_free_gpios(&hp_jack, ARRAY_SIZE(hp_jack_gpios),
 		hp_jack_gpios);
diff --git a/sound/soc/samsung/rx1950_uda1380.c b/sound/soc/samsung/rx1950_uda1380.c
index 192aa9fc102f..37688ebbb2b4 100644
--- a/sound/soc/samsung/rx1950_uda1380.c
+++ b/sound/soc/samsung/rx1950_uda1380.c
@@ -31,7 +31,7 @@
 #include "s3c24xx-i2s.h"
 
 static int rx1950_uda1380_init(struct snd_soc_pcm_runtime *rtd);
-static int rx1950_uda1380_card_remove(struct snd_soc_pcm_runtime *rtd);
+static int rx1950_uda1380_card_remove(struct snd_soc_card *card);
 static int rx1950_startup(struct snd_pcm_substream *substream);
 static int rx1950_hw_params(struct snd_pcm_substream *substream,
 				struct snd_pcm_hw_params *params);
@@ -236,7 +236,7 @@ static int rx1950_uda1380_init(struct snd_soc_pcm_runtime *rtd)
 	return 0;
 }
 
-static int rx1950_uda1380_card_remove(struct snd_soc_pcm_runtime *rtd)
+static int rx1950_uda1380_card_remove(struct snd_soc_card *card)
 {
 	snd_soc_jack_free_gpios(&hp_jack, ARRAY_SIZE(hp_jack_gpios),
 		hp_jack_gpios);
diff --git a/sound/soc/samsung/smartq_wm8987.c b/sound/soc/samsung/smartq_wm8987.c
index 271a904277a1..9b0ffacab790 100644
--- a/sound/soc/samsung/smartq_wm8987.c
+++ b/sound/soc/samsung/smartq_wm8987.c
@@ -182,7 +182,7 @@ static int smartq_wm8987_init(struct snd_soc_pcm_runtime *rtd)
 	return err;
 }
 
-static int smartq_wm8987_card_remove(struct snd_soc_pcm_runtime *rtd)
+static int smartq_wm8987_card_remove(struct snd_soc_card *card)
 {
 	snd_soc_jack_free_gpios(&smartq_jack, ARRAY_SIZE(smartq_jack_gpios),
 				smartq_jack_gpios);
-- 
1.9.3



More information about the Alsa-devel mailing list