9 Feb 16:45
8 Feb 21:33
[PATCH v2] ALSA: PCM - Add PCM creation API for internal PCMs.
Liam Girdwood <lrg <at> ti.com>
2012-02-08 20:33:31 GMT
2012-02-08 20:33:31 GMT
The new ASoC dynamic PCM core needs to create PCMs and substreams that are for use by internal ASoC drivers only and not visible to userspace for direct IO. These new PCMs are similar to regular PCMs expect they have no device nodes or procfs entries. The ASoC component drivers use them in exactly the same way as regular PCMs for PCM and DAI operations. The intention is that a dynamic PCM based driver will register both regular PCMs and internal PCMs. The regular PCMs will be used for all IO with userspace however the internal PCMs will be used by the driver to route digital audio through numerous back end DAI links (with potentially a DSP providing different hw_params, DAI formats based on the regular front end PCM params) to devices like CODECs, MODEMs, Bluetooth, FM, DMICs, etc This patch adds a new snd_pcm_new_internal() API call to create the internal PCM without device nodes or procfs. It also adds adds a new internal flag to snd_pcm. Signed-off-by: Liam Girdwood <lrg <at> ti.com> --- Changes since V1 - Renamed to Internal PCM instead of Dynamic PCM wrt ALSA. - Removed similar PCM creation code and use flag for procfs/device creation. include/sound/pcm.h | 4 ++ sound/core/pcm.c | 100 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 74 insertions(+), 30 deletions(-) diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 0cf91b2..b33993f 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h(Continue reading)
8 Feb 21:15
ASoC updates for 3.3
Mark Brown <broonie <at> opensource.wolfsonmicro.com>
2012-02-08 20:15:08 GMT
2012-02-08 20:15:08 GMT
The following changes since commit 43b6cec27e1e50a1de3eff47e66e502f3fe7e66e:
ASoC: wm_hubs: Correct line input to line output 2 paths (2012-02-01 23:55:56 +0000)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git asoc-3.3
for you to fetch changes up to a7c4183be2d6a7da8c97a9b671b5f3aed321127e:
ASoC: wm8994: Disable line output discharge prior to ramping VMID (2012-02-08 19:52:00 +0000)
----------------------------------------------------------------
A few small WM8994 updates to go on top of the previous lot of things
that were sent. They collide with some -next work so I'd really like to
get them into 3.3-rc3 if possible to merge back up into the -next code.
All driver specific and unexciting in the grand scheme of things.
----------------------------------------------------------------
Mark Brown (3):
ASoC: wm8994: Enabling VMID should take a runtime PM reference
ASoC: wm8994: Fix typo in VMID ramp setting
ASoC: wm8994: Disable line output discharge prior to ramping VMID
sound/soc/codecs/wm8994.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
8 Feb 21:11
[PATCH] ASoC: pcm: If pmdown_time is zero then shut down DAPM immediately
Mark Brown <broonie <at> opensource.wolfsonmicro.com>
2012-02-08 20:11:24 GMT
2012-02-08 20:11:24 GMT
Since we've already got logic to special case immediate teardown of the
stream we may as well use it if the pmdown_time has been set to zero by
the application layer instead of scheduling a work item with zero delay.
Signed-off-by: Mark Brown <broonie <at> opensource.wolfsonmicro.com>
---
sound/soc/soc-pcm.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index ef28dd5..d7bb268 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -369,7 +369,7 @@ static int soc_pcm_close(struct snd_pcm_substream *substream)
cpu_dai->runtime = NULL;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
- if (codec->ignore_pmdown_time ||
+ if (!rtd->pmdown_time || codec->ignore_pmdown_time ||
rtd->dai_link->ignore_pmdown_time) {
/* powered down playback stream now */
snd_soc_dapm_stream_event(rtd,
--
--
1.7.9.rc1
8 Feb 20:02
[PATCH] ASoC: wm8962: Support mono playback and record
Mark Brown <broonie <at> opensource.wolfsonmicro.com>
2012-02-08 19:02:49 GMT
2012-02-08 19:02:49 GMT
Make sure we generate enough BCLKs for I2S style modes by always having
a minimum of two channels worth of clocks for the BCLK.
Signed-off-by: Mark Brown <broonie <at> opensource.wolfsonmicro.com>
---
sound/soc/codecs/wm8962.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 0f6bd06..85f71a7 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -2536,6 +2536,9 @@ static int wm8962_hw_params(struct snd_pcm_substream *substream,
int adctl3 = 0;
wm8962->bclk = snd_soc_params_to_bclk(params);
+ if (params_channels(params) == 1)
+ wm8962->bclk *= 2;
+
wm8962->lrclk = params_rate(params);
for (i = 0; i < ARRAY_SIZE(sr_vals); i++) {
@@ -2913,14 +2916,14 @@ static struct snd_soc_dai_driver wm8962_dai = {
.name = "wm8962",
.playback = {
.stream_name = "Playback",
- .channels_min = 2,
+ .channels_min = 1,
.channels_max = 2,
.rates = WM8962_RATES,
(Continue reading)
8 Feb 19:58
[PATCH] ASoC: core: Convert single bit wide bitfields into bools
Mark Brown <broonie <at> opensource.wolfsonmicro.com>
2012-02-08 18:58:06 GMT
2012-02-08 18:58:06 GMT
It's what they are, we've just been using these for historical reasons.
Signed-off-by: Mark Brown <broonie <at> opensource.wolfsonmicro.com>
---
include/sound/soc-dai.h | 12 ++++++------
include/sound/soc-dapm.h | 26 +++++++++++++-------------
include/sound/soc.h | 32 ++++++++++++++++----------------
3 files changed, 35 insertions(+), 35 deletions(-)
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 1a2b08c..53f9a1f 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -208,7 +208,7 @@ struct snd_soc_dai_driver {
/* DAI capabilities */
struct snd_soc_pcm_stream capture;
struct snd_soc_pcm_stream playback;
- unsigned int symmetric_rates:1;
+ bool symmetric_rates;
/* probe ordering - for components with runtime dependencies */
int probe_order;
@@ -230,13 +230,13 @@ struct snd_soc_dai {
struct snd_soc_dai_driver *driver;
/* DAI runtime info */
- unsigned int capture_active:1; /* stream is in use */
- unsigned int playback_active:1; /* stream is in use */
- unsigned int symmetric_rates:1;
+ bool capture_active; /* stream is in use */
(Continue reading)
8 Feb 19:37
[PATCH 1/3] ASoC: core: Allow CODECs to set ignore_pmdown_time in the driver struct
Mark Brown <broonie <at> opensource.wolfsonmicro.com>
2012-02-08 18:37:16 GMT
2012-02-08 18:37:16 GMT
This is usually not a use case dependant flag anyway.
Signed-off-by: Mark Brown <broonie <at> opensource.wolfsonmicro.com>
---
include/sound/soc.h | 2 ++
sound/soc/soc-core.c | 1 +
2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index ecd5d72..d1e7a6a 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -657,6 +657,8 @@ struct snd_soc_codec_driver {
/* codec stream completion event */
int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
+ bool ignore_pmdown_time; /* Doesn't benefit from pmdown delay */
+
/* probe ordering - for components with runtime dependencies */
int probe_order;
int remove_order;
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 3a3b487..0b9974f 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3380,6 +3380,7 @@ int snd_soc_register_codec(struct device *dev,
codec->volatile_register = codec_drv->volatile_register;
codec->readable_register = codec_drv->readable_register;
codec->writable_register = codec_drv->writable_register;
+ codec->ignore_pmdown_time = codec_drv->ignore_pmdown_time;
(Continue reading)
8 Feb 12:55
[RFC/PATCH] ALSA: PCM - Add PCM creation API for ASoC dynamic PCMs.
Liam Girdwood <lrg <at> ti.com>
2012-02-08 11:55:37 GMT
2012-02-08 11:55:37 GMT
The new ASoC dynamic PCM core needs to create PCMs and substreams that are for use by internal ASoC drivers only and not visible to userspace for direct IO. These new PCMs are similar to regular PCMs expect they have no device nodes or procfs entries. The ASoC component drivers use them in exactly the same way as regular PCMs for PCM and DAI operations. The intention is that a dynamic PCM based driver will register both regular PCMs and dynamic PCMs. The regular PCMs will be used for all IO with userspace however the dynamic PCMs will be used by the driver to route digital audio through numerous back end DAI links (with potentially a DSP providing different hw_params, DAI formats based on the regular front end PCM params) to devices like CODECs, MODEMs, Bluetooth, FM, DMICs, etc This patch adds a new snd_pcm_new_dynamic() API call to create the dynamic PCM without device nodes or procfs. It also adds snd_pcm_new_stream_dynamic() and snd_pcm_dev_register_dynamic() which are used to create the dynamic PCM. Signed-off-by: Liam Girdwood <lrg <at> ti.com> --- include/sound/pcm.h | 3 + sound/core/pcm.c | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+), 0 deletions(-) diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 0cf91b2..1597f89 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h @@ -475,6 +475,9 @@ extern const struct file_operations snd_pcm_f_ops[2]; int snd_pcm_new(struct snd_card *card, const char *id, int device, int playback_count, int capture_count,(Continue reading)
8 Feb 10:10
Re: FW: [PATCH v3] ASoC: Add support for TI LM49453 Audio codec
M R Swami Reddy <MR.Swami.Reddy <at> ti.com>
2012-02-08 09:10:13 GMT
2012-02-08 09:10:13 GMT
> -----Original Message----- > From: Mark Brown [mailto:broonie <at> opensource.wolfsonmicro.com] > Sent: Tuesday, February 07, 2012 10:34 PM > To: Reddy, MR Swami > Cc: Girdwood, Liam; alsa-devel <at> alsa-project.org > Subject: Re: [PATCH v3] ASoC: Add support for TI LM49453 Audio codec > > On Mon, Feb 06, 2012 at 06:20:26AM -0800, Reddy, MR Swami wrote: > >> Changes made in v3: >> o Updated the lm49453_set_dai_pll() as per review comments in v2 patch. >> o Removed pll disable code in _set_dai_pll(). > > This doesn't really seem to address the issue at all - you still have the problems with the set_pll() function not doing anything it's supposed to do with the input and output frequencies, and now there's no way to disable the PLL. OK. So its ideal to remove the _set_dai_pll(), as its not doing anything here. Thanks Swami
8 Feb 10:05
concept of substream...
Vinod Koul <vinod.koul <at> linux.intel.com>
2012-02-08 09:05:00 GMT
2012-02-08 09:05:00 GMT
Hi, I was trying to understand the concept of substream. So can we have a device which can have support say 5 substreams and these are controlled (start/stop) independent of each other. At any instance we can have any number of substreams active and runtime we should be able to activate/deactivate a particular substream. Is that doable with this concept or should i look at something else? -- ~Vinod
8 Feb 05:09
[PATCH] Add support for Echo3G devices. Thanks to unimatrix.
Luke Yelavich <themuso <at> ubuntu.com>
2012-02-08 04:09:55 GMT
2012-02-08 04:09:55 GMT
From: Luke Yelavich <luke.yelavich <at> canonical.com> BugLink: https://bugs.launchpad.net/bugs/433573 Signed-off-by: Luke Yelavich <luke.yelavich <at> canonical.com> --- src/conf/cards/Echo_Echo3G.conf | 318 +++++++++++++++++++++++++++++++++++++++ src/conf/cards/Makefile.am | 1 + 2 files changed, 319 insertions(+), 0 deletions(-) create mode 100644 src/conf/cards/Echo_Echo3G.conf diff --git a/src/conf/cards/Echo_Echo3G.conf b/src/conf/cards/Echo_Echo3G.conf new file mode 100644 index 0000000..766f13f --- /dev/null +++ b/src/conf/cards/Echo_Echo3G.conf @@ -0,0 +1,318 @@ +# +# Configuration for the Echo3G driver +# + +<confdir:pcm/front.conf> +Echo_Echo3G.pcm.front.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 0(Continue reading)
RSS Feed