Commit Graph

401353 Commits

Author SHA1 Message Date
Mark Brown 99a0ea2d5b Merge remote-tracking branch 'asoc/topic/devm' into asoc-next 2013-11-08 10:43:27 +00:00
Mark Brown ac97d4e00a Merge remote-tracking branch 'asoc/topic/davinci' into asoc-next 2013-11-08 10:43:27 +00:00
Mark Brown 1d697db0ab Merge remote-tracking branch 'asoc/topic/cs42l73' into asoc-next 2013-11-08 10:43:26 +00:00
Mark Brown 2029ef2500 Merge remote-tracking branch 'asoc/topic/cs42l52' into asoc-next 2013-11-08 10:43:26 +00:00
Mark Brown 491f06b160 Merge remote-tracking branch 'asoc/topic/cs4271' into asoc-next 2013-11-08 10:43:25 +00:00
Mark Brown 477ce17dec Merge remote-tracking branch 'asoc/topic/cq93vc' into asoc-next 2013-11-08 10:43:25 +00:00
Mark Brown c6016bdeab Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2013-11-08 10:43:25 +00:00
Mark Brown d20b09f0c5 Merge remote-tracking branch 'asoc/topic/component' into asoc-next 2013-11-08 10:43:24 +00:00
Mark Brown 2fc175c4a3 Merge remote-tracking branch 'asoc/topic/bclk' into asoc-next 2013-11-08 10:43:24 +00:00
Mark Brown aff79f8282 Merge remote-tracking branch 'asoc/topic/atmel' into asoc-next 2013-11-08 10:43:23 +00:00
Mark Brown 642cba7528 Merge remote-tracking branch 'asoc/topic/arizona' into asoc-next 2013-11-08 10:43:23 +00:00
Mark Brown 74858f23ca Merge remote-tracking branch 'asoc/topic/ak4642' into asoc-next 2013-11-08 10:43:22 +00:00
Mark Brown 5176dfcd47 Merge remote-tracking branch 'asoc/topic/ak4104' into asoc-next 2013-11-08 10:43:22 +00:00
Mark Brown 47973c6eb8 Merge remote-tracking branch 'asoc/topic/adsp' into asoc-next 2013-11-08 10:43:21 +00:00
Mark Brown c241b6c786 Merge remote-tracking branch 'asoc/topic/adav80x' into asoc-next 2013-11-08 10:43:21 +00:00
Mark Brown 8c691c1ba6 Merge remote-tracking branch 'asoc/topic/adau1373' into asoc-next 2013-11-08 10:43:20 +00:00
Mark Brown 57ada4c5d6 Merge remote-tracking branch 'asoc/topic/ab8500' into asoc-next 2013-11-08 10:43:20 +00:00
Mark Brown 3d0be4a5c7 Merge remote-tracking branch 'asoc/topic/88pm860x' into asoc-next 2013-11-08 10:43:20 +00:00
Mark Brown 3fec948ed8 Merge remote-tracking branch 'asoc/fix/fsl' into asoc-linus 2013-11-08 10:43:19 +00:00
Mark Brown 5196e6ffc2 Merge remote-tracking branch 'asoc/fix/dma' into asoc-linus 2013-11-08 10:43:18 +00:00
Mark Brown 5365990776 Merge remote-tracking branch 'asoc/fix/ak4642' into asoc-linus 2013-11-08 10:43:18 +00:00
Fabio Estevam 10227a9487 ASoC: fsl: imx-pcm-fiq: Remove unused 'runtime' variable
Commit 68f9672b (ASoC: fsl: imx-pcm-fiq: remove bogus period delta calculation)
introduced the following build warning:

sound/soc/fsl/imx-pcm-fiq.c:53:26: warning: unused variable 'runtime' [-Wunused-variable]

Remove the unused 'runtime' variable.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Oskar Schirmer <oskar@scara.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-08 10:21:05 +00:00
Lee Jones a894bd7fb5 ASoC: generic-dmaengine-pcm: Clear slave_config memory
We currently assume that the DMA Slave Config will be fully populated
by the platform, however some DMA Engines make decisions based on zero
(default) flags such as DMA_SLAVE_BUSWIDTH_UNDEFINED and as this is a
static declaration we need to memset it to clear the data area.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-07 11:35:30 +00:00
Oskar Schirmer 68f9672b13 ASoC: fsl: imx-pcm-fiq: remove bogus period delta calculation
Originally snd_hrtimer_callback() used iprtd->period_time for
some jiffies based estimation to determine the right moment
to call snd_pcm_period_elapsed(). As timer drifts may well be a
problem, this was changed in commit b4e82b5b78 to be based
on buffer transmission progress, using iprtd->offset and
runtime->buffer_size to calculate the amount of data since last
period had elapsed.

Unfortunately, iprtd->offset counts in bytes, while
runtime->buffer_size counts frames, so adding these to find some
delta is like comparing apples and oranges, and eventually results
in negative delta values every now and then. This is no big harm,
because it simply causes snd_pcm_period_elapsed() being called
more often than necessary, as negative delta is taken for a
large unsigned value by implicit conversion rule.
Nonetheless, the calculation is broken, so one would replace
the runtime->buffer_size by its equivalent in bytes.

But then, there are chances snd_pcm_period_elapsed() is called
late, because calculating the moment for the elapsed period
into delta is based against the iprtd->last_offset, which is not
necessarily the first byte of the period in question, but some
random byte which the FIQ handler left us with in r8/r9 by
accident. Again, negative impact is low, as there are plenty of
periods already prefilled with data, and snd_pcm_period_elapsed()
will probably be called latest when the following period is
reached. However, the calculation is conceptually broken, and we
are best off removing the clever stuff altogether.

snd_pcm_period_elapsed() is now simply called once everytime
snd_hrtimer_callback() is run, which may not be most accurate,
but at least this way we are quite sure we dont miss an end of
period. There is not much extra effort wasted by superfluous
calls to snd_pcm_period_elapsed(), as the timer frequency
closely matches the period size anyway.

Signed-off-by: Oskar Schirmer <oskar@scara.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-06 09:41:57 +00:00
Nicolin Chen 988e8cc41e ASoC: Add pinctrl PM to components of active DAIs
It's quite popular that more drivers are using pinctrl PM, for example:
(Documentation/devicetree/bindings/arm/primecell.txt). Just like what
runtime PM does, it would deactivate and activate pin group depending
on whether it's being used or not.

And this pinctrl PM might be also beneficial to cpu dai drivers because
they might have actual pinctrl so as to sleep their pins and wake them
up as needed.

To achieve this goal, this patch sets pins to the default state during
resume or startup; While during suspend and shutdown, it would set pins
to the sleep state.

As pinctrl PM would return zero if there is no such pinctrl sleep state
settings, this patch would not break current ASoC subsystem directly.

[ However, there is still an exception that the patch can not handle,
that is, when cpu dai driver does not have pinctrl property but another
device has it. (The AUDMUX <-> SSI on Freescale i.MX6 series for example.
SSI as a cpu dai doesn't contain pinctrl property while AUDMUX, an Audio
Multiplexer, has it). In this case, this kind of cpu dai driver needs to
find a way to obtain the pinctrl property as its own, by moving property
from AUDMUX to SSI, or creating a pins link/dependency between these two
devices, or using a more decent way after we figure it out. ]

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-04 09:08:59 -08:00