diff options
author | Marek Vasut <marek.vasut@gmail.com> | 2009-07-22 07:01:03 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-07-23 06:30:56 -0400 |
commit | 474828a40f6ddab6e2a3475a19c5c84aa3ec7d60 (patch) | |
tree | 15da7b963bbe20704bca139b355a020686f97a52 | |
parent | a7569afa8b79ca9272b0d7544335bc05b5b721d6 (diff) |
ALSA: Allow passing platform_data to devices attached to AC97 bus
This patch allows passing platform_data to devices attached to AC97 bus
(like touchscreens, battery measurement chips ...).
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | include/sound/ac97_codec.h | 6 | ||||
-rw-r--r-- | include/sound/soc-dai.h | 1 | ||||
-rw-r--r-- | sound/soc/soc-core.c | 6 |
3 files changed, 12 insertions, 1 deletions
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index 251fc1cd5002..9b1c0985480c 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h | |||
@@ -642,4 +642,10 @@ int snd_ac97_pcm_double_rate_rules(struct snd_pcm_runtime *runtime); | |||
642 | /* ad hoc AC97 device driver access */ | 642 | /* ad hoc AC97 device driver access */ |
643 | extern struct bus_type ac97_bus_type; | 643 | extern struct bus_type ac97_bus_type; |
644 | 644 | ||
645 | /* AC97 platform_data adding function */ | ||
646 | static inline void snd_ac97_dev_add_pdata(struct snd_ac97 *ac97, void *data) | ||
647 | { | ||
648 | ac97->dev.platform_data = data; | ||
649 | } | ||
650 | |||
645 | #endif /* __SOUND_AC97_CODEC_H */ | 651 | #endif /* __SOUND_AC97_CODEC_H */ |
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h index 05991b0925e0..25d62ac53fc5 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h | |||
@@ -179,6 +179,7 @@ struct snd_soc_dai { | |||
179 | int ac97_control; | 179 | int ac97_control; |
180 | 180 | ||
181 | struct device *dev; | 181 | struct device *dev; |
182 | void *ac97_pdata; /* platform_data for the ac97 codec */ | ||
182 | 183 | ||
183 | /* DAI callbacks */ | 184 | /* DAI callbacks */ |
184 | int (*probe)(struct platform_device *pdev, | 185 | int (*probe)(struct platform_device *pdev, |
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 8bf49a4e664a..5eabb7117608 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/bitops.h> | 28 | #include <linux/bitops.h> |
29 | #include <linux/debugfs.h> | 29 | #include <linux/debugfs.h> |
30 | #include <linux/platform_device.h> | 30 | #include <linux/platform_device.h> |
31 | #include <sound/ac97_codec.h> | ||
31 | #include <sound/core.h> | 32 | #include <sound/core.h> |
32 | #include <sound/pcm.h> | 33 | #include <sound/pcm.h> |
33 | #include <sound/pcm_params.h> | 34 | #include <sound/pcm_params.h> |
@@ -1461,8 +1462,11 @@ int snd_soc_init_card(struct snd_soc_device *socdev) | |||
1461 | continue; | 1462 | continue; |
1462 | } | 1463 | } |
1463 | } | 1464 | } |
1464 | if (card->dai_link[i].codec_dai->ac97_control) | 1465 | if (card->dai_link[i].codec_dai->ac97_control) { |
1465 | ac97 = 1; | 1466 | ac97 = 1; |
1467 | snd_ac97_dev_add_pdata(codec->ac97, | ||
1468 | card->dai_link[i].cpu_dai->ac97_pdata); | ||
1469 | } | ||
1466 | } | 1470 | } |
1467 | snprintf(codec->card->shortname, sizeof(codec->card->shortname), | 1471 | snprintf(codec->card->shortname, sizeof(codec->card->shortname), |
1468 | "%s", card->name); | 1472 | "%s", card->name); |