diff options
Diffstat (limited to 'target/linux/brcm2708/patches-3.10/0115-ASoC-core-Add-API-for-configuration-of-DAI-BCLK-rati.patch')
-rw-r--r-- | target/linux/brcm2708/patches-3.10/0115-ASoC-core-Add-API-for-configuration-of-DAI-BCLK-rati.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-3.10/0115-ASoC-core-Add-API-for-configuration-of-DAI-BCLK-rati.patch b/target/linux/brcm2708/patches-3.10/0115-ASoC-core-Add-API-for-configuration-of-DAI-BCLK-rati.patch new file mode 100644 index 0000000000..3a3f7916c8 --- /dev/null +++ b/target/linux/brcm2708/patches-3.10/0115-ASoC-core-Add-API-for-configuration-of-DAI-BCLK-rati.patch @@ -0,0 +1,64 @@ +From 5c080b18934d9dcea2bf902c09d640daf6fe49d4 Mon Sep 17 00:00:00 2001 +From: Liam Girdwood <liam.r.girdwood@linux.intel.com> +Date: Mon, 16 Sep 2013 13:01:46 +0100 +Subject: [PATCH 115/174] ASoC: core: Add API for configuration of DAI BCLK + ratio + +Some codec drivers when running in slave mode require that BCLK to sample rate ratio +is explicitly set by the machine driver as it may not be exactly rate * frame size. + +Extend the DAI API by adding :- + +int snd_soc_dai_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int ratio); + +Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> +Signed-off-by: Mark Brown <broonie@linaro.org> +--- + include/sound/soc-dai.h | 3 +++ + sound/soc/soc-core.c | 16 ++++++++++++++++ + 2 files changed, 19 insertions(+) + +--- a/include/sound/soc-dai.h ++++ b/include/sound/soc-dai.h +@@ -105,6 +105,8 @@ int snd_soc_dai_set_clkdiv(struct snd_so + int snd_soc_dai_set_pll(struct snd_soc_dai *dai, + int pll_id, int source, unsigned int freq_in, unsigned int freq_out); + ++int snd_soc_dai_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int ratio); ++ + /* Digital Audio interface formatting */ + int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt); + +@@ -131,6 +133,7 @@ struct snd_soc_dai_ops { + int (*set_pll)(struct snd_soc_dai *dai, int pll_id, int source, + unsigned int freq_in, unsigned int freq_out); + int (*set_clkdiv)(struct snd_soc_dai *dai, int div_id, int div); ++ int (*set_bclk_ratio)(struct snd_soc_dai *dai, unsigned int ratio); + + /* + * DAI format configuration +--- a/sound/soc/soc-core.c ++++ b/sound/soc/soc-core.c +@@ -3463,6 +3463,22 @@ int snd_soc_codec_set_pll(struct snd_soc + EXPORT_SYMBOL_GPL(snd_soc_codec_set_pll); + + /** ++ * snd_soc_dai_set_bclk_ratio - configure BCLK to sample rate ratio. ++ * @dai: DAI ++ * @ratio Ratio of BCLK to Sample rate. ++ * ++ * Configures the DAI for a preset BCLK to sample rate ratio. ++ */ ++int snd_soc_dai_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int ratio) ++{ ++ if (dai->driver && dai->driver->ops->set_bclk_ratio) ++ return dai->driver->ops->set_bclk_ratio(dai, ratio); ++ else ++ return -EINVAL; ++} ++EXPORT_SYMBOL_GPL(snd_soc_dai_set_bclk_ratio); ++ ++/** + * snd_soc_dai_set_fmt - configure DAI hardware audio format. + * @dai: DAI + * @fmt: SND_SOC_DAIFMT_ format value. |