openwrt/staging/blogic.git
10 years agoASoC: rsnd: add SRC (Sampling Rate Converter) support
Kuninori Morimoto [Fri, 20 Dec 2013 03:28:51 +0000 (19:28 -0800)]
ASoC: rsnd: add SRC (Sampling Rate Converter) support

This patch adds SRC support to Renesas sound driver.
SRC converts sampling rate between codec <-> cpu.
It needs special codec chip,
or very simple DA/AD converter to use it.
This patch was tested via ak4554 codec,
and supports Gen1 only at this point.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: tidyup rsnd_ssi_master_clk_start() parameter
Kuninori Morimoto [Fri, 20 Dec 2013 03:28:39 +0000 (19:28 -0800)]
ASoC: rsnd: tidyup rsnd_ssi_master_clk_start() parameter

Renesas sound has SRC (= Sampling Rate Converter),
but, the HW implementation depends on its generation.
It was part of SRU on Gen1, and SCU on Gen2.
This SCU needs DMA transfer to use it.
Current rsnd driver is using it as DMA transfer buffer
(= no rate convert), and Gen1 is only supported at this point.

This patch cleanup it with focusing about SRC and Gen2 part.

ssi clock which is calculated from rsnd_ssi_master_clk_start()
should have flexibility since Renesas sound has
SRC (= Sampling Rate Converter).
But current implementation is using runtime->rate directly.
This patch tidyup rsnd_ssi_master_clk_start() parameter
as preparation of future SRC support

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: scu cleanup: add rsnd_scu_rate_ctrl()
Kuninori Morimoto [Fri, 20 Dec 2013 03:28:31 +0000 (19:28 -0800)]
ASoC: rsnd: scu cleanup: add rsnd_scu_rate_ctrl()

Renesas sound has SRC (= Sampling Rate Converter),
but, the HW implementation depends on its generation.
It was part of SRU on Gen1, and SCU on Gen2.
This SCU needs DMA transfer to use it.
Current rsnd driver is using it as DMA transfer buffer
(= no rate convert), and Gen1 is only supported at this point.

This patch cleanup it with focusing about SRC and Gen2 part.

rsnd_scu_set_hpbif() is renamed to rsnd_scu_rate_ctrl(),
since its naming doesn't indicate the function meaning.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: INT_ENABLE is needed only Gen2
Kuninori Morimoto [Fri, 20 Dec 2013 03:28:19 +0000 (19:28 -0800)]
ASoC: rsnd: INT_ENABLE is needed only Gen2

INT_ENABLE is needed only Gen2.
rsnd_mod_write() do nothing on Gen1, but it is confusable.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: add rsnd_scu_transfer_start()
Kuninori Morimoto [Fri, 20 Dec 2013 03:28:04 +0000 (19:28 -0800)]
ASoC: rsnd: add rsnd_scu_transfer_start()

Renesas sound has SRC (= Sampling Rate Converter),
but, the HW implementation depends on its generation.
It was part of SRU on Gen1, and SCU on Gen2.
This SCU needs DMA transfer to use it.
Current rsnd driver is using it as DMA transfer buffer
(= no rate convert), and Gen1 is only supported at this point.

This patch cleanup it with focusing about SRC and Gen2 part.

SRC_CTRL/BUSIF_MODE are used for transfer start.
This patch adds rsnd_scu_transfer_start() and merge these

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: route setting is needed only Gen1
Kuninori Morimoto [Fri, 20 Dec 2013 03:27:37 +0000 (19:27 -0800)]
ASoC: rsnd: route setting is needed only Gen1

Renesas sound has SRC (= Sampling Rate Converter),
but, the HW implementation depends on its generation.
It was part of SRU on Gen1, and SCU on Gen2.
This SCU needs DMA transfer to use it.
Current rsnd driver is using it as DMA transfer buffer
(= no rate convert), and Gen1 is only supported at this point.

This patch cleanup it with focusing about SRC and Gen2 part.

rsnd_scu_set_route() is needed only Gen1.

This patch renames it to rsnd_scu_set_route_if_gen1()
and it adds comment to rsnd_reg member
in order to clarify it is used for Gen1.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: make sure variable name for 44.1kHz/48kHz
Kuninori Morimoto [Fri, 20 Dec 2013 03:27:19 +0000 (19:27 -0800)]
ASoC: rsnd: make sure variable name for 44.1kHz/48kHz

This driver is assuming that
RBGA is used as source clock of 44.1kHz category, and
RBGB is used as source clock of 48kHz category.
This patch clarifies the variable name.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: tidyup register naming
Kuninori Morimoto [Fri, 20 Dec 2013 03:27:03 +0000 (19:27 -0800)]
ASoC: rsnd: tidyup register naming

Use correct register name which appears in the datasheet

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: tidyup ssi comment
Kuninori Morimoto [Fri, 20 Dec 2013 03:26:44 +0000 (19:26 -0800)]
ASoC: rsnd: tidyup ssi comment

we can check rsnd_ssi_init(), not, rsnd_ssi_start()

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: add rsnd_adg_set_ssi_clk() and cleanup adg
Kuninori Morimoto [Fri, 20 Dec 2013 03:26:31 +0000 (19:26 -0800)]
ASoC: rsnd: add rsnd_adg_set_ssi_clk() and cleanup adg

This patch adds rsnd_adg_set_ssi_clk() to access to
AUDIO_CLK_SEL0/1/2, and removes last user of
rsnd_write/read/bset which is very low level function.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: fsi: remove original filter from fsi_dma_probe()
Kuninori Morimoto [Wed, 11 Dec 2013 04:46:59 +0000 (20:46 -0800)]
ASoC: fsi: remove original filter from fsi_dma_probe()

Remove original filter from fsi_dma_probe(),
and use SH-DMA suitable filter.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rsnd: gen: fixup Gen2 channel size
Kuninori Morimoto [Tue, 10 Dec 2013 01:26:01 +0000 (17:26 -0800)]
ASoC: rsnd: gen: fixup Gen2 channel size

Gen2 has 0 - 9, total 10 channels, not 9 channels.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rcar: use devm_clk_get() instead of clk_get()
Kuninori Morimoto [Wed, 4 Dec 2013 06:09:33 +0000 (22:09 -0800)]
ASoC: rcar: use devm_clk_get() instead of clk_get()

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rcar: add Gen2 sound support
Kuninori Morimoto [Fri, 29 Nov 2013 02:43:45 +0000 (18:43 -0800)]
ASoC: rcar: add Gen2 sound support

This patch adds Gen2 sound support for Renesas R-Car.
But, it is supporting PIO transfer only at this point

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rcar: remove rcar_gen_ops
Kuninori Morimoto [Fri, 29 Nov 2013 02:43:34 +0000 (18:43 -0800)]
ASoC: rcar: remove rcar_gen_ops

Current rcar driver gen.c is using rcar_gen_ops
which was made with the assumption that
Gen1 and Gen2 need different behavior.
but it was not needed.
This patch removes unnecessary complex method.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rcar: remove .path_init/exit from rsnd_gen_ops
Kuninori Morimoto [Fri, 29 Nov 2013 02:43:23 +0000 (18:43 -0800)]
ASoC: rcar: remove .path_init/exit from rsnd_gen_ops

rsnd_gen_ops has .path_init/exit callback function
which cares SRU/SSI (if Gen1) SCU/SSIU/SSI (if Gen2)
path settings.
But, the differences between Gen1/Gen2 are cared
in ssi.c/scu.c, and the path itself is same in Gen1/Gen2.
This patch removes .path_init/exit callback.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rcar: add rsnd_is_accessible_reg()
Kuninori Morimoto [Fri, 29 Nov 2013 02:43:13 +0000 (18:43 -0800)]
ASoC: rcar: add rsnd_is_accessible_reg()

Current rcar driver is supporting Gen1,
and Gen2 will be supported soon.
Then, some registers are used from Gen1 only,
or from Gen2 only.
To avoid NULL pointer access, this patch adds
register accessible check function.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rcar: separate regmap init common field
Kuninori Morimoto [Fri, 29 Nov 2013 02:43:01 +0000 (18:43 -0800)]
ASoC: rcar: separate regmap init common field

The repmap initialization difference between Gen1/Gen2 is
only register offset.
This patch separates rsnd_gen1_regmap_init()
into common part and Gen1 specific part.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
10 years agoASoC: rcar: remove unused register settings
Kuninori Morimoto [Fri, 29 Nov 2013 02:42:49 +0000 (18:42 -0800)]
ASoC: rcar: remove unused register settings

AUDIO_CLK_SEL4/5 are not used

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: rcar: some dubious one-bit signed bitfields
Dan Carpenter [Fri, 8 Nov 2013 09:46:53 +0000 (12:46 +0300)]
ASoC: rcar: some dubious one-bit signed bitfields

Because these are signed they can either be 0 or -1 instead of 0 and 1
as intended.  It doesn't cause a problem from what I can see, but it's
dangerous and Sparse complains:

sound/soc/sh/rcar/rsnd.h:177:25:
error: dubious one-bit signed bitfield

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: rcar: rename GEN2_SRU to GEN2_SCU
Kuninori Morimoto [Tue, 19 Nov 2013 09:06:15 +0000 (01:06 -0800)]
ASoC: rcar: rename GEN2_SRU to GEN2_SCU

Gen2 has SCU. SRU is for Gen1

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoMerge remote-tracking branch 'asoc/topic/wm8962' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:18 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/wm8962' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/wm8400' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:18 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/wm8400' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/twl6040' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:17 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/twl6040' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/twl4030' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:17 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/twl4030' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/tpa6130a2' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:17 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/tpa6130a2' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/tlv320aic3x' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:16 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/tlv320aic3x' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/tlv320aic32x4' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:16 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/tlv320aic32x4' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/tlv320aic26' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:15 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/tlv320aic26' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/tlv320aic23' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:15 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/tlv320aic23' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/tegra' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:14 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/tegra' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/tas5086' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:14 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/tas5086' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/spear' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:13 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/spear' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/sn95031' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:13 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/sn95031' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/simple' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:12 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/simple' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/si476x' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:12 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/si476x' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/samsung' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:12 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/samsung' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/rt5640' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:11 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/rt5640' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/rcar' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:11 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/rcar' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/pxa' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:10 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/pxa' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/pcm1792a' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:10 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/pcm1792a' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/pcm1681' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:09 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/pcm1681' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/mxs' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:09 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/mxs' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/mc13783' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:08 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/mc13783' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/max9850' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:08 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/max9850' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/max98095' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:07 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/max98095' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/max98088' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:07 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/max98088' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/kirkwood' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:06 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/kirkwood' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/fsl' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:06 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/fsl' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/ep93xx' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:06 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/ep93xx' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/doc' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:05 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/doc' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/dma' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:05 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/dma' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/devm' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:04 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/devm' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/davinci' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:04 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/davinci' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/dapm' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:03 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/cs42l73' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:03 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/cs42l73' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/cs4271' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:02 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/cs4271' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/cq93vc' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:02 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/cq93vc' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/core' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:02 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/core' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/component' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:01 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/component' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/bclk' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:01 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/bclk' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/atmel' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:00 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/atmel' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/arizona' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:24:00 +0000 (11:24 +0100)]
Merge remote-tracking branch 'asoc/topic/arizona' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/ak4642' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:23:59 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/topic/ak4642' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/ak4104' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:23:59 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/topic/ak4104' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/adav80x' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:23:58 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/topic/adav80x' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/adau1373' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:23:58 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/topic/adau1373' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/ab8500' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:23:57 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/topic/ab8500' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/topic/88pm860x' into asoc-next
Mark Brown [Thu, 24 Oct 2013 10:23:57 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/topic/88pm860x' into asoc-next

11 years agoMerge remote-tracking branch 'asoc/fix/tlv320aic3x' into asoc-linus
Mark Brown [Thu, 24 Oct 2013 10:23:56 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/fix/tlv320aic3x' into asoc-linus

11 years agoMerge remote-tracking branch 'asoc/fix/rcar' into asoc-linus
Mark Brown [Thu, 24 Oct 2013 10:23:56 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/fix/rcar' into asoc-linus

11 years agoMerge remote-tracking branch 'asoc/fix/pcm1792a' into asoc-linus
Mark Brown [Thu, 24 Oct 2013 10:23:55 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/fix/pcm1792a' into asoc-linus

11 years agoMerge remote-tracking branch 'asoc/fix/pcm1681' into asoc-linus
Mark Brown [Thu, 24 Oct 2013 10:23:55 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/fix/pcm1681' into asoc-linus

11 years agoMerge remote-tracking branch 'asoc/fix/omap' into asoc-linus
Mark Brown [Thu, 24 Oct 2013 10:23:55 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/fix/omap' into asoc-linus

11 years agoMerge remote-tracking branch 'asoc/fix/fsl' into asoc-linus
Mark Brown [Thu, 24 Oct 2013 10:23:54 +0000 (11:23 +0100)]
Merge remote-tracking branch 'asoc/fix/fsl' into asoc-linus

11 years agoASoC: fsl: Add missing pm to current machine drivers
Nicolin Chen [Thu, 24 Oct 2013 10:15:29 +0000 (18:15 +0800)]
ASoC: fsl: Add missing pm to current machine drivers

Add missing pm to current machine drivers so that all of them would
correctly do suspend/resume.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: dmaengine: Use filter_data rather than dma_data for compat requests
Mark Brown [Sat, 19 Oct 2013 20:38:26 +0000 (21:38 +0100)]
ASoC: dmaengine: Use filter_data rather than dma_data for compat requests

When using the legacy filter function channel requests we currently pass
the audio specific struct snd_dmaengine_dai_dma_data which isn't likely to
be helpful for actual filtering. Since there's already a field in the
structure called filter_data clearly intended for use here convert the
driver to use that.

All existing users of plain filter functions have been converted to use
an explicit compat function to override this behaviour except i.MX which
is working around this issue in its filter function and is updated to
just use filter_data directly here.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
11 years agoASoC: dmaengine: Support custom channel names
Mark Brown [Sat, 19 Oct 2013 16:43:51 +0000 (17:43 +0100)]
ASoC: dmaengine: Support custom channel names

Some devices have more than just simple TX and RX DMA channels, for example
modern Samsung I2S IPs support a secondary transmit DMA stream which is
mixed into the primary stream during playback. Allow such devices to
specify the names of the channels to be requested in their dma_data.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
11 years agoASoC: tpa6130a2: Add device tree support
Sebastian Reichel [Wed, 23 Oct 2013 12:03:28 +0000 (14:03 +0200)]
ASoC: tpa6130a2: Add device tree support

Add device tree support to tpa6130a2 driver and document the
bindings.

Signed-off-by: Sebastian Reichel <sre@debian.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: davinci-evm: Add device tree binding
Hebbar, Gururaja [Wed, 23 Oct 2013 12:30:14 +0000 (15:30 +0300)]
ASoC: davinci-evm: Add device tree binding

Device tree support for Davinci Machine driver

When the board boots with device tree, the driver will receive card,
codec, dai interface details (like the card name, DAPM routing map,
phandle for the audio components described in the dts file, codec mclk
speed). The card will be set up based on this information. Since the
routing is provided via DT we can mark the card fully routed so core
can take care of disconnecting the unused pins.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Darren Etheridge <detheridge@ti.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: davinci-mcasp: Remove last reference to num-serializer in DT doc
Jyri Sarha [Wed, 23 Oct 2013 12:30:15 +0000 (15:30 +0300)]
ASoC: davinci-mcasp: Remove last reference to num-serializer in DT doc

Remove last reference to num-serializer in davinci-mcasp devicetree
binding document.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: davinci: Add support for AM33xx SoC Audio
Hebbar, Gururaja [Wed, 23 Oct 2013 12:30:13 +0000 (15:30 +0300)]
ASoC: davinci: Add support for AM33xx SoC Audio

AM33xx uses same McASP IP as the Davinci Platform. This patch updates
Kconfig and makefile to enable build for McASP, PCM & Codec drivers.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Darren Etheridge <detheridge@ti.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: tegra: Remove redundant initialisation of compat_filter_fn
Mark Brown [Sat, 19 Oct 2013 13:17:03 +0000 (14:17 +0100)]
ASoC: tegra: Remove redundant initialisation of compat_filter_fn

Setting a field in a static struct to NULL has no effect so don't bother
(and don't generate false positives for grep).

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Stephen Warren <swarren@nvidia.com>
11 years agoASoC: ep93xx: Open code dma channel request
Mark Brown [Sat, 19 Oct 2013 13:13:04 +0000 (14:13 +0100)]
ASoC: ep93xx: Open code dma channel request

Currently the ep93xx DMA code is one of the few users relying on the fact
that the compat code uses the dma_data as the filter data for non-DT
channel requests. Since the rest of the core expects this to be a struct
snd_dmaengine_dai_data this isn't terribly helpful this will be changed to
use the already existing filter data so avoid breaking ep93xx by open
coding the current behaviour.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
11 years agoASoC: davinci-mcasp: Remove redundant num-serializer DT parameter
Peter Ujfalusi [Fri, 18 Oct 2013 15:37:46 +0000 (18:37 +0300)]
ASoC: davinci-mcasp: Remove redundant num-serializer DT parameter

The serial-dir array gives this information so there is no need to have the
num-serializer property in DT description.
Just ignore the property in the driver the DTS files can be updated
separately without regression.
Update the documentation at the same time for davinci-mcasp

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: davinci-mcasp: Improve DT bindings document
Jyri Sarha [Fri, 18 Oct 2013 15:37:45 +0000 (18:37 +0300)]
ASoC: davinci-mcasp: Improve DT bindings document

Makes interrupts property optional as the interrupts are not currently
used by the driver and adds interrupt-names property to name listed
interrupts. Currently know interrupt names are "tx" and "rx".

- Improve tdm-slots propery description

- Improve op-mode property description

- Add pinctrl-names and pinctrl-0 properties

- Remove #address-cells and #size-cells as they are not needed.

- Bracket named interrupts property tuples for uniformity.

- Add missing "for" to serial-dir prop in DT bindings doc.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: davinci-mcasp: Change compatible property model to more accurate
Jyri Sarha [Fri, 18 Oct 2013 15:37:44 +0000 (18:37 +0300)]
ASoC: davinci-mcasp: Change compatible property model to more accurate

Change the model omap2-mcasp-audio in compatible property to
am33xx-mcasp-audio as omap2 does not have mcasp.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: davinci-mcasp: Extract DMA channels directly from DT
Jyri Sarha [Fri, 18 Oct 2013 15:37:43 +0000 (18:37 +0300)]
ASoC: davinci-mcasp: Extract DMA channels directly from DT

Extract DMA channels directly from DT as they can not be found from
platform resources anymore. This is a work-around until davinci audio
driver is updated to use dmaengine.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: davinci-mcasp: Add location for data port registers to DT
Jyri Sarha [Fri, 18 Oct 2013 15:37:42 +0000 (18:37 +0300)]
ASoC: davinci-mcasp: Add location for data port registers to DT

This patch adds a separate register location for data port registers to
mcasp DT bindings. On am33xx SoCs the McASP registers are mapped
trough L4 interconnect, but data port registers are also mapped trough
L3 bus to a different memory location.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Darren Etheridge <detheridge@ti.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: kirkwood: add S/PDIF support
Jean-Francois Moine [Mon, 21 Oct 2013 08:50:49 +0000 (10:50 +0200)]
ASoC: kirkwood: add S/PDIF support

This patch adds S/PDIF input/output for mvebu DT boards.

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: dont call dapm_sync while reporting jack always
Vinod Koul [Mon, 21 Oct 2013 13:37:34 +0000 (19:07 +0530)]
ASoC: dont call dapm_sync while reporting jack always

While reporting the jack status snd_soc_jack_report() invokes snd_soc_dapm_sync()
always. This should be required when we have pins associated with jack and
reporting enables or disables these.
So add a check for this case

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: si476x: Fix locking of core
Mark Brown [Sun, 20 Oct 2013 17:14:20 +0000 (18:14 +0100)]
ASoC: si476x: Fix locking of core

The conversion of the si476x to regmap removed locking of the core during
register updates, allowing things like power state changes for the MFD to
happen during a register update. Avoid this by taking the core lock in the
DAI operations (which are the only things that do register updates) as we
used to do in the open coded register I/O functions.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Andrey Smirnov <andrew.smirnov@gmail.com>
11 years agoASoC: cs42l73: Add Device Tree support for CS42L73
Brian Austin [Fri, 18 Oct 2013 19:30:01 +0000 (14:30 -0500)]
ASoC: cs42l73: Add Device Tree support for CS42L73

This patch adds support for device tree for the CS42L73 CODEC

Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: kirkwood: prefer external clock over internal clock
Jean-Francois Moine [Fri, 18 Oct 2013 18:34:52 +0000 (20:34 +0200)]
ASoC: kirkwood: prefer external clock over internal clock

When there is an external clock, always use this one.
This prevents the two Dove audio devices to use the same DCO clock
at different rates.

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: rcar: remove RSND_SSI_CLK_FROM_ADG
Kuninori Morimoto [Fri, 18 Oct 2013 05:51:40 +0000 (22:51 -0700)]
ASoC: rcar: remove RSND_SSI_CLK_FROM_ADG

R-Car sound has clock pin for each SSI, and sometimes,
these pins are shared with paired SSI.
It may sometimes become "SSI-A clock pin is master" and
"SSI-B clock pin is slave", but "SSI-A/B clock pins are shared".
SSI-B needs SSI-A clock in this case.

Current R-Car sound driver is using RSND_SSI_xxx flag
to control this kind of shared pin behavior.

But, this information, especially clock master setting,
can be got from ASoC set_fmt settings.
This patch removes rsnd_ssi_mode_init() and extend rsnd_ssi_mode_set()
to controlling pin settings via .set_fmt.

This patch doesn't removes RSND_SSI_CLK_FROM_ADG flag at this point
to avoid conflict branch merging between ASoC <-> SH-ARM.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: rcar: add rsnd_scu_hpbif_is_enable()
Kuninori Morimoto [Fri, 18 Oct 2013 05:50:59 +0000 (22:50 -0700)]
ASoC: rcar: add rsnd_scu_hpbif_is_enable()

Current SSI needs RSND_SSI_DEPENDENT flag to
decide dependent/independent mode.
And SCU needs RSND_SCU_USE_HPBIF flag
to decide HPBIF is enable/disable.
But these 2 means same things.

This patch adds new rsnd_scu_hpbif_is_enable()
function, and merges above methods.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: simple-card: un-implemented set_fmt is not error
Kuninori Morimoto [Fri, 18 Oct 2013 05:46:49 +0000 (22:46 -0700)]
ASoC: simple-card: un-implemented set_fmt is not error

Current simple-card returns error if DAI doesn't
support .set_fmt callback.
But the error is -ENOTSUPP (= not supported),
and it is not error.
This patch avoids such case

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: samsung: Initialise DMA data at device probe time
Mark Brown [Thu, 17 Oct 2013 20:18:40 +0000 (21:18 +0100)]
ASoC: samsung: Initialise DMA data at device probe time

This is a minor simplification and will help with converting the platform
to use the dmaengine helpers.

Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: dai: Provide interface for setting DMA data at probe time
Mark Brown [Thu, 17 Oct 2013 20:13:19 +0000 (21:13 +0100)]
ASoC: dai: Provide interface for setting DMA data at probe time

Allow DMA data to be set at probe time for devices that can do that,
avoiding the need to do it every time we start a stream and supporting
non-DT dmaengine users using the helpers.

Signed-off-by: Mark Brown <broonie@linaro.org>
11 years agoASoC: dmaengine-pcm: Provide default config
Lars-Peter Clausen [Tue, 8 Oct 2013 13:08:00 +0000 (15:08 +0200)]
ASoC: dmaengine-pcm: Provide default config

This patch adds some default settings for the generic dmaengine PCM driver for
the case that no config has been supplied. The following defaults are used:
* Use snd_dmaengine_pcm_prepare_slave_config for preparing the DMA slave
  config.
* 512kB for the prealloc buffer size. This value has been chosen based on
  'feels about right' and is not backed up by any scientific facts. We
  may need to come up with something smarter in the future but it should
  work fine for now.

With this infrastructure in place we can finally write DAI drivers which are
independent of the DMA controller they are connected to. This is e.g. useful if
the DAI IP core is reused across different SoCs, but the SoCs uses different DMA
controllers.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>