* [PATCH 1/4] ASoC: Fix copyright statements on Simtec files
@ 2009-03-02 17:18 Mark Brown
2009-03-02 17:18 ` [PATCH 2/4] ASoC: Add cs4270 support for slave mode configurations Mark Brown
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Mark Brown @ 2009-03-02 17:18 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Ben Dooks, alsa-devel, Mark Brown
From: Ben Dooks <ben@simtec.co.uk>
Fix the copyright statements in two of the S3C24XX ASoC files
that have (c) when we require the full word.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
sound/soc/s3c24xx/s3c24xx-i2s.c | 2 +-
sound/soc/s3c24xx/s3c24xx-pcm.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/s3c24xx/s3c24xx-i2s.c b/sound/soc/s3c24xx/s3c24xx-i2s.c
index 6f4d439..1c2b054 100644
--- a/sound/soc/s3c24xx/s3c24xx-i2s.c
+++ b/sound/soc/s3c24xx/s3c24xx-i2s.c
@@ -4,7 +4,7 @@
* (c) 2006 Wolfson Microelectronics PLC.
* Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
*
- * (c) 2004-2005 Simtec Electronics
+ * Copyright 2004-2005 Simtec Electronics
* http://armlinux.simtec.co.uk/
* Ben Dooks <ben@simtec.co.uk>
*
diff --git a/sound/soc/s3c24xx/s3c24xx-pcm.c b/sound/soc/s3c24xx/s3c24xx-pcm.c
index 7c64d31..ba1ae09 100644
--- a/sound/soc/s3c24xx/s3c24xx-pcm.c
+++ b/sound/soc/s3c24xx/s3c24xx-pcm.c
@@ -4,7 +4,7 @@
* (c) 2006 Wolfson Microelectronics PLC.
* Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
*
- * (c) 2004-2005 Simtec Electronics
+ * Copyright 2004-2005 Simtec Electronics
* http://armlinux.simtec.co.uk/
* Ben Dooks <ben@simtec.co.uk>
*
--
1.6.1.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/4] ASoC: Add cs4270 support for slave mode configurations
2009-03-02 17:18 [PATCH 1/4] ASoC: Fix copyright statements on Simtec files Mark Brown
@ 2009-03-02 17:18 ` Mark Brown
2009-03-02 17:19 ` [PATCH 3/4] ASoC: Add SND_SOC_DAPM_PIN_SWITCH controls for exposing DAPM pins Mark Brown
2009-03-02 17:19 ` [PATCH 4/4] ASoC: fix typo and removed unneeded switch case for cs4270 Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2009-03-02 17:18 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel, Mark Brown
From: Daniel Mack <daniel@caiaq.de>
Added support for scenarios where the Cirrus CS4270 audio codec is slave
to the bitclk and lrclk. Mixed setups are unsupported.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
sound/soc/codecs/cs4270.c | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/sound/soc/codecs/cs4270.c b/sound/soc/codecs/cs4270.c
index cd4a9ee..339e0f6 100644
--- a/sound/soc/codecs/cs4270.c
+++ b/sound/soc/codecs/cs4270.c
@@ -109,6 +109,7 @@ struct cs4270_private {
u8 reg_cache[CS4270_NUMREGS];
unsigned int mclk; /* Input frequency of the MCLK pin */
unsigned int mode; /* The mode (I2S or left-justified) */
+ unsigned int slave_mode;
};
/**
@@ -247,6 +248,7 @@ static int cs4270_set_dai_fmt(struct snd_soc_dai *codec_dai,
struct cs4270_private *cs4270 = codec->private_data;
int ret = 0;
+ /* set DAI format */
switch (format & SND_SOC_DAIFMT_FORMAT_MASK) {
case SND_SOC_DAIFMT_I2S:
case SND_SOC_DAIFMT_LEFT_J:
@@ -257,6 +259,21 @@ static int cs4270_set_dai_fmt(struct snd_soc_dai *codec_dai,
ret = -EINVAL;
}
+ /* set master/slave audio interface */
+ switch (format & SND_SOC_DAIFMT_MASTER_MASK) {
+ case SND_SOC_DAIFMT_CBS_CFS:
+ cs4270->slave_mode = 1;
+ break;
+ case SND_SOC_DAIFMT_CBM_CFM:
+ cs4270->slave_mode = 0;
+ break;
+ case SND_SOC_DAIFMT_CBM_CFS:
+ /* unsupported - cs4270 can eigther be slave or master to
+ * both the bitclk and the lrclk. */
+ default:
+ ret = -EINVAL;
+ }
+
return ret;
}
@@ -399,7 +416,12 @@ static int cs4270_hw_params(struct snd_pcm_substream *substream,
reg = snd_soc_read(codec, CS4270_MODE);
reg &= ~(CS4270_MODE_SPEED_MASK | CS4270_MODE_DIV_MASK);
- reg |= cs4270_mode_ratios[i].speed_mode | cs4270_mode_ratios[i].mclk;
+ reg |= cs4270_mode_ratios[i].mclk;
+
+ if (cs4270->slave_mode)
+ reg |= CS4270_MODE_SLAVE;
+ else
+ reg |= cs4270_mode_ratios[i].speed_mode;
ret = snd_soc_write(codec, CS4270_MODE, reg);
if (ret < 0) {
--
1.6.1.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/4] ASoC: Add SND_SOC_DAPM_PIN_SWITCH controls for exposing DAPM pins
2009-03-02 17:18 [PATCH 1/4] ASoC: Fix copyright statements on Simtec files Mark Brown
2009-03-02 17:18 ` [PATCH 2/4] ASoC: Add cs4270 support for slave mode configurations Mark Brown
@ 2009-03-02 17:19 ` Mark Brown
2009-03-02 17:19 ` [PATCH 4/4] ASoC: fix typo and removed unneeded switch case for cs4270 Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2009-03-02 17:19 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel, Mark Brown
On some systems it is desirable for control for DAPM pins to be provided
to user space. This is the case with things like GSM modems which are
controlled primarily from user space, for example. Provide a helper which
exposes the state of a DAPM pin to user space for use in cases like this.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
include/sound/soc-dapm.h | 12 ++++++++
sound/soc/soc-dapm.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index bb3a863..a7def6a 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -192,6 +192,12 @@
.get = snd_soc_dapm_get_value_enum_double, \
.put = snd_soc_dapm_put_value_enum_double, \
.private_value = (unsigned long)&xenum }
+#define SOC_DAPM_PIN_SWITCH(xname) \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname " Switch", \
+ .info = snd_soc_dapm_info_pin_switch, \
+ .get = snd_soc_dapm_get_pin_switch, \
+ .put = snd_soc_dapm_put_pin_switch, \
+ .private_value = (unsigned long)xname }
/* dapm stream operations */
#define SND_SOC_DAPM_STREAM_NOP 0x0
@@ -238,6 +244,12 @@ int snd_soc_dapm_get_value_enum_double(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol);
int snd_soc_dapm_put_value_enum_double(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol);
+int snd_soc_dapm_info_pin_switch(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_info *uinfo);
+int snd_soc_dapm_get_pin_switch(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *uncontrol);
+int snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *uncontrol);
int snd_soc_dapm_new_control(struct snd_soc_codec *codec,
const struct snd_soc_dapm_widget *widget);
int snd_soc_dapm_new_controls(struct snd_soc_codec *codec,
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index f4a8753..4b8dbbf 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -1421,6 +1421,76 @@ out:
EXPORT_SYMBOL_GPL(snd_soc_dapm_put_value_enum_double);
/**
+ * snd_soc_dapm_info_pin_switch - Info for a pin switch
+ *
+ * @kcontrol: mixer control
+ * @uinfo: control element information
+ *
+ * Callback to provide information about a pin switch control.
+ */
+int snd_soc_dapm_info_pin_switch(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_info *uinfo)
+{
+ uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
+ uinfo->count = 1;
+ uinfo->value.integer.min = 0;
+ uinfo->value.integer.max = 1;
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_dapm_info_pin_switch);
+
+/**
+ * snd_soc_dapm_get_pin_switch - Get information for a pin switch
+ *
+ * @kcontrol: mixer control
+ * @ucontrol: Value
+ */
+int snd_soc_dapm_get_pin_switch(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+ const char *pin = (const char *)kcontrol->private_value;
+
+ mutex_lock(&codec->mutex);
+
+ ucontrol->value.integer.value[0] =
+ snd_soc_dapm_get_pin_status(codec, pin);
+
+ mutex_unlock(&codec->mutex);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_dapm_get_pin_switch);
+
+/**
+ * snd_soc_dapm_put_pin_switch - Set information for a pin switch
+ *
+ * @kcontrol: mixer control
+ * @ucontrol: Value
+ */
+int snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
+ const char *pin = (const char *)kcontrol->private_value;
+
+ mutex_lock(&codec->mutex);
+
+ if (ucontrol->value.integer.value[0])
+ snd_soc_dapm_enable_pin(codec, pin);
+ else
+ snd_soc_dapm_disable_pin(codec, pin);
+
+ snd_soc_dapm_sync(codec);
+
+ mutex_unlock(&codec->mutex);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_dapm_put_pin_switch);
+
+/**
* snd_soc_dapm_new_control - create new dapm control
* @codec: audio codec
* @widget: widget template
--
1.6.1.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 4/4] ASoC: fix typo and removed unneeded switch case for cs4270
2009-03-02 17:18 [PATCH 1/4] ASoC: Fix copyright statements on Simtec files Mark Brown
2009-03-02 17:18 ` [PATCH 2/4] ASoC: Add cs4270 support for slave mode configurations Mark Brown
2009-03-02 17:19 ` [PATCH 3/4] ASoC: Add SND_SOC_DAPM_PIN_SWITCH controls for exposing DAPM pins Mark Brown
@ 2009-03-02 17:19 ` Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2009-03-02 17:19 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel, Mark Brown
From: Daniel Mack <daniel@caiaq.de>
This removes a misspelled comment and got rid of superfluous switch
case.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
sound/soc/codecs/cs4270.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/sound/soc/codecs/cs4270.c b/sound/soc/codecs/cs4270.c
index 339e0f6..f86f33c 100644
--- a/sound/soc/codecs/cs4270.c
+++ b/sound/soc/codecs/cs4270.c
@@ -267,10 +267,8 @@ static int cs4270_set_dai_fmt(struct snd_soc_dai *codec_dai,
case SND_SOC_DAIFMT_CBM_CFM:
cs4270->slave_mode = 0;
break;
- case SND_SOC_DAIFMT_CBM_CFS:
- /* unsupported - cs4270 can eigther be slave or master to
- * both the bitclk and the lrclk. */
default:
+ /* all other modes are unsupported by the hardware */
ret = -EINVAL;
}
--
1.6.1.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-03-02 17:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-02 17:18 [PATCH 1/4] ASoC: Fix copyright statements on Simtec files Mark Brown
2009-03-02 17:18 ` [PATCH 2/4] ASoC: Add cs4270 support for slave mode configurations Mark Brown
2009-03-02 17:19 ` [PATCH 3/4] ASoC: Add SND_SOC_DAPM_PIN_SWITCH controls for exposing DAPM pins Mark Brown
2009-03-02 17:19 ` [PATCH 4/4] ASoC: fix typo and removed unneeded switch case for cs4270 Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox