26 Apr, 2011
13 commits
-
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
There's only one DAI anyway.
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
We can safely divide these down to within the supported SYSCLK range.
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood -
The current davinci_mcasp_set_dai_fmt() sets bits ACLKX and ACLKR in the PDIR
register for the codec clock-master/frame-slave mode; however, this results in
the ACLKX and ACLKR pins being outputs according to SPRUFM1 [1] which
conflicts with "codec is clock master."Similarly to the previous patch in this series, "fix _CBM_CFS hw_params" --
For codec clock-master/frame-slave mode (_CMB_CFS), clear bits ACLKX and ACLKR
in the PDIR register to set the pins as inputs and hence allow externally
sourced bit-clocks.[1] http://www.ti.com/litv/pdf/sprufm1
Signed-off-by: Ben Gardiner
Reviewed-by: James Nuss
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
The current davinci_mcasp_set_dai_fmt() sets bits ACLKXE and ACLKRE (CLKXM
and CLKRM as they are reffered to in SPRUFM1 [1]) for codec clock-slave/
frame-slave mode (_CBS_CFS) which selects internally generated bit-clock and
frame-sync signals; however, it does the same thing again for codec
clock-master/frame-slave mode (_CBM_CFS) in the very next case statement which
is incorrectly selecting internally generated bit-clocks in this mode.For codec clock-master/frame-slave mode (_CBM_CFS), clear bits ACLKXE and
ACLKRE to select externally-generated bit-clocks.[1] http://www.ti.com/litv/pdf/sprufm1
Signed-off-by: Ben Gardiner
Reviewed-by: James Nuss
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
The current driver creates value for set/clr of PDIR using (x<
Reviewed-by: James Nuss
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
The current check for the number of tdm-slots specified by platform data is
always true (x >= 2 || x
Reviewed-by: James Nuss
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
The FIFO of each port were always working though it was not used
in current FSI driver.
This patch add module/port clock control function for fixing it.
This patch is also caring suspend/resume.Signed-off-by: Kuninori Morimoto
Reviewed-by: Simon Horman
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Current FSI driver sets important settings when probing.
And it are not set again as long as driver is not bind again.
This mean FSI driver will lost it from register
if suspend/resume are happen.
This patch save important settings for suspend/resume.Signed-off-by: Kuninori Morimoto
Reviewed-by: Simon Horman
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
If FSI port is clock master, it use set_rate function
which is callback from platform,
and it is not necessary to call it if FSI port is clock slave.
Current FSI driver called this callback if platform provide it.
This patch modify it.Signed-off-by: Kuninori Morimoto
Reviewed-by: Simon Horman
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
There needs to be a strong reason for overriding the Kconfig default.
Signed-off-by: Mark Brown
Acked-by: Liam Girdwood
21 Apr, 2011
2 commits
-
Fix up merge with Harmony driver rename.
Conflicts:
sound/soc/tegra/Kconfig -
CONFIG_SND_SOC_TEGRA_WM8903 is useful for many Tegra boards. To avoid the
ASoC tegra/Kconfig enumerating them all, instead have the Tegra machine
Kconfig select MACH_HAS_SND_SOC_TEGRA_WM8903 where appropriate, and have
SND_SOC_TEGRA_WM8903 depend on this.[Redid ASoC diff so it applies. -- broonie]
Signed-off-by: Stephen Warren
Acked-by: Olof Johansson
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown
20 Apr, 2011
12 commits
-
In addition to the currently supported analog capture path, the WM8903
also supports digital mics.The analog and digital capture paths are exclusive; a mux is present to
select the capture source.Logically, the mux exists to select the decimator's input, from either
the ADC or DMIC block outputs. However, the ADC power domain also
includes the DMIC interface. Consequently, this change represents the
mux as existing immediately before the ADC, and selecting between the
Input PGA and DMIC block outputs.An alternative might be to represent the mux in its correct location,
and associate the ADC power enable controls with both the real ADC, and
a fake ADC for the DMIC?Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
This patch adds the equalizer and biquad filter controls.
Signed-off-by: Peter Hsiang
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Replace calls to a variety of registration functions by updating
struct snd_soc_card snd_soc_tegra_wm8903 to directly point at the
various control/widget/map tables instead. The ASoC core now
performs any required registration based on these data fields.(Applying Mark's TrimSlice review comments to the existing driver)
Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Signed-off-by: Lu Guanqun
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
replace the tab with spaces,
make it align with other paragraphsSigned-off-by: Lu Guanqun
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
`type` parameter is not longer used in `snd_soc_codec_set_cache_io`,
so remove this line.Signed-off-by: Lu Guanqun
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Signed-off-by: Lu Guanqun
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Not all widgets on a card are within the codec's DAPM context. Fix
snd_soc_dapm_get_pin_status to search all contexts when looking for a
widget.This change is required when modifying tegra_wm8903 to use
snd_soc_card.widgets rather than calling snd_soc_dapm_new_controls; the
former adds the widgets to the card's DAPM context, whereas tegra_wm8903
uses the codec's DAPM context when calling snd_soc_dapm_new_controls.By code inspection, I suspect this also applies to Samsung Speyside.
Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Card widgets are created in the card's DAPM context, not any codec's DAPM
context. Hence, w->codec==NULL. Instead, find the card from the widget
through the DAPM context of the widget, not the codec of the widget.Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Only the clock programming code needs to know whether the clocks changed,
and that is encapsulated within tegra_asoc_utils_set_rate(). The machine
driver's call to snd_soc_dai_set_sysclk(codec_dai, ...) is safe
irrespective of whether the clocks changed.(Applying Mark's TrimSlice review comments to the existing driver)
Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
When the driver is not initialized/registered, nothing should be touching
these fields anyway, so there's no point clearing them out.(Applying Mark's TrimSlice review comments to the existing driver)
Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
This machine driver is a platform driver, and hence will only be
instantiated on the correct machines. Hence, there is no need to
check the current machine during probe.(Applying Mark's TrimSlice review comments to the existing driver)
Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown
19 Apr, 2011
11 commits
-
* Ventana is identical to Harmony.
* Seaboard, Kaen, and Aebl are all pretty similar, mainly with slightly
different sets of GPIOs, and slightly different WM8903 pin connectivity.Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Storing the struct in an array makes the assignments to the GPIO member a
little non-obvious, and is pointless when there's only a single GPIO.(I thought I fixed this during the review cycle when first submitting this
driver, but I guess I overlooked that)Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
The previous commit renames SND_TEGRA_SOC_HARMONY to SND_TEGRA_SOC_WM8903.
While we're breaking people's .config files, rename all Tegra/SOC-related
Kconfig variables to be more consistent with at least the core codec
variables. Note that there exist machines that name their variables both
ways.Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Soon, this machine driver will be updated to handle a number of Tegra boards
using the WM8903 codec. Rename the file in advance to reflect this.Fix the content of tegra_wm8903.c to match the rename; replace references
to Harmony board with something more generic.* s/struct tegra_harmony/struct tegra_wm8903/
* s/harmony/machine/ # variable name
* Similar rename for some functions
* Similar comment fix
* Similar MODULE_DESCRIPTION fixSigned-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
Fix trivial conflict caused by silly spelling fix patch.
Conflicts:
sound/soc/codecs/wm8994.c -
Seaboard derivate Kaen has a GPIO to mute the headphone output. Add a field
to tegra_wm8903_platform_data so the board files can pass the GPIO number
for that to the ASoC machine driver.Also, initialize this new field to a "not present" value for Harmony.
Signed-off-by: Stephen Warren
Signed-off-by: Mark Brown -
Soon, this machine driver will be updated to handle a number of Tegra boards
using the WM8903 codec. Rename the platform device in advance to reflect this.Signed-off-by: Stephen Warren
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown -
The audio driver will soon support more than just the Tegra Harmony board.
Rename the platform data header file and data type to reflect this.Signed-off-by: Stephen Warren
Signed-off-by: Mark Brown -
This patch enables FSI driver autoloading on sh-mobile systems.
Signed-off-by: Guennadi Liakhovetski
Reviewed-by: Simon Horman
Signed-off-by: Mark Brown
14 Apr, 2011
2 commits
-
Register the dfbmcs320 device which provides the PCM DAI for the bluetooth
module.Signed-off-by: Lars-Peter Clausen
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown