Re: [PATCH] Allow passing platform_data to devices attached to AC97 bus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dne Út 21. července 2009 22:59:35 Takashi Iwai napsal(a):
> At Tue, 21 Jul 2009 22:24:21 +0200,
>
> Marek Vasut wrote:
> > From 082f09b9f3c1bbf3240610dc89baba33d47787b7 Mon Sep 17 00:00:00 2001
> > From: Marek Vasut <marek.vasut@xxxxxxxxx>
> > Date: Tue, 21 Jul 2009 16:22:29 +0200
> > Subject: [PATCH 1/5] 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@xxxxxxxxx>
> > ---
> >  include/sound/ac97_codec.h |    6 ++++++
> >  include/sound/soc-dai.h    |    1 +
> >  sound/soc/soc-core.c       |    5 ++++-
> >  3 files changed, 11 insertions(+), 1 deletions(-)
> >
> > diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
> > index 251fc1c..702f90d 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); /* ad hoc AC97 device driver access */
> >  extern struct bus_type ac97_bus_type;
> >
> > +/* AC97 platform_data adding function */
> > +static inline void snd_ac97_dev_add_pdata(struct snd_ac97 *ac97, void
> > *data) +{
> > +	ac97->dev.platform_data = data;
> > +}
> > +
> >  #endif /* __SOUND_AC97_CODEC_H */
> > diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
> > index 352d7ee..0d65a03 100644
> > --- a/include/sound/soc-dai.h
> > +++ b/include/sound/soc-dai.h
> > @@ -179,6 +179,7 @@ struct snd_soc_dai {
> >  	int ac97_control;
> >
> >  	struct device *dev;
> > +	void *ac97_pdata;	/* platform_data for the ac97 codec */
> >
> >  	/* DAI callbacks */
> >  	int (*probe)(struct platform_device *pdev,
> > diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> > index 1d70829..0b12fe5 100644
> > --- a/sound/soc/soc-core.c
> > +++ b/sound/soc/soc-core.c
> > @@ -1381,8 +1381,11 @@ int snd_soc_init_card(struct snd_soc_device
> > *socdev) continue;
> >  			}
> >  		}
> > -		if (card->dai_link[i].codec_dai->ac97_control)
> > +		if (card->dai_link[i].codec_dai->ac97_control) {
> >  			ac97 = 1;
> > +			codec->ac97->dev.platform_data =
> > +				card->dai_link[i].cpu_dai->ac97_pdata;
>
> Any reason not to use the newly added snd_ac97_dev_add_pdata()?

hm, that's true, one more iteration then.
>
>
> thanks,
>
> Takashi

From 776233642ae196ee1998791ec69bd20d7725ecca Mon Sep 17 00:00:00 2001
From: Marek Vasut <marek.vasut@xxxxxxxxx>
Date: Tue, 21 Jul 2009 16:22:29 +0200
Subject: [PATCH 1/4] 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@xxxxxxxxx>
---
 include/sound/ac97_codec.h |    6 ++++++
 include/sound/soc-dai.h    |    1 +
 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 251fc1c..9b1c098 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);
 /* ad hoc AC97 device driver access */
 extern struct bus_type ac97_bus_type;
 
+/* AC97 platform_data adding function */
+static inline void snd_ac97_dev_add_pdata(struct snd_ac97 *ac97, void *data)
+{
+	ac97->dev.platform_data = data;
+}
+
 #endif /* __SOUND_AC97_CODEC_H */
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 352d7ee..0d65a03 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -179,6 +179,7 @@ struct snd_soc_dai {
 	int ac97_control;
 
 	struct device *dev;
+	void *ac97_pdata;	/* platform_data for the ac97 codec */
 
 	/* DAI callbacks */
 	int (*probe)(struct platform_device *pdev,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 1d70829..7cb0917 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -28,6 +28,7 @@
 #include <linux/bitops.h>
 #include <linux/debugfs.h>
 #include <linux/platform_device.h>
+#include <sound/ac97_codec.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
@@ -1381,8 +1382,11 @@ int snd_soc_init_card(struct snd_soc_device *socdev)
 				continue;
 			}
 		}
-		if (card->dai_link[i].codec_dai->ac97_control)
+		if (card->dai_link[i].codec_dai->ac97_control) {
 			ac97 = 1;
+			snd_ac97_dev_add_pdata(codec->ac97,
+				card->dai_link[i].cpu_dai->ac97_pdata);
+		}
 	}
 	snprintf(codec->card->shortname, sizeof(codec->card->shortname),
 		 "%s",  card->name);
-- 
1.6.3.3

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux