ASoC: Tegra: Move utilities to separate module

The utilities will be required by every machine driver. Including the
utility object directly into every machine driver causes a build failure
if the modules are actually built into the kernel, since each will define
the symbols exported by the utility file. Solve this by moving the
utility object into a separate module.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Stephen Warren 2011-02-22 17:23:56 -07:00 committed by Mark Brown
parent 67f5ed6e71
commit a3cd50deef
2 changed files with 8 additions and 1 deletions

View File

@ -2,13 +2,14 @@
snd-soc-tegra-das-objs := tegra_das.o snd-soc-tegra-das-objs := tegra_das.o
snd-soc-tegra-pcm-objs := tegra_pcm.o snd-soc-tegra-pcm-objs := tegra_pcm.o
snd-soc-tegra-i2s-objs := tegra_i2s.o snd-soc-tegra-i2s-objs := tegra_i2s.o
snd-soc-tegra-utils-objs += tegra_asoc_utils.o
obj-$(CONFIG_SND_TEGRA_SOC) += snd-soc-tegra-utils.o
obj-$(CONFIG_SND_TEGRA_SOC) += snd-soc-tegra-das.o obj-$(CONFIG_SND_TEGRA_SOC) += snd-soc-tegra-das.o
obj-$(CONFIG_SND_TEGRA_SOC) += snd-soc-tegra-pcm.o obj-$(CONFIG_SND_TEGRA_SOC) += snd-soc-tegra-pcm.o
obj-$(CONFIG_SND_TEGRA_SOC_I2S) += snd-soc-tegra-i2s.o obj-$(CONFIG_SND_TEGRA_SOC_I2S) += snd-soc-tegra-i2s.o
# Tegra machine Support # Tegra machine Support
snd-soc-tegra-harmony-objs := harmony.o snd-soc-tegra-harmony-objs := harmony.o
snd-soc-tegra-harmony-objs += tegra_asoc_utils.o
obj-$(CONFIG_SND_TEGRA_SOC_HARMONY) += snd-soc-tegra-harmony.o obj-$(CONFIG_SND_TEGRA_SOC_HARMONY) += snd-soc-tegra-harmony.o

View File

@ -101,6 +101,7 @@ int tegra_asoc_utils_set_rate(struct tegra_asoc_utils_data *data, int srate,
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(tegra_asoc_utils_set_rate);
int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data, int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data,
struct device *dev) struct device *dev)
@ -139,6 +140,7 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data,
err: err:
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(tegra_asoc_utils_init);
void tegra_asoc_utils_fini(struct tegra_asoc_utils_data *data) void tegra_asoc_utils_fini(struct tegra_asoc_utils_data *data)
{ {
@ -146,4 +148,8 @@ void tegra_asoc_utils_fini(struct tegra_asoc_utils_data *data)
clk_put(data->clk_pll_a_out0); clk_put(data->clk_pll_a_out0);
clk_put(data->clk_pll_a); clk_put(data->clk_pll_a);
} }
EXPORT_SYMBOL_GPL(tegra_asoc_utils_fini);
MODULE_AUTHOR("Stephen Warren <swarren@nvidia.com>");
MODULE_DESCRIPTION("Tegra ASoC utility code");
MODULE_LICENSE("GPL");