includes patches:
ENGR00132153 sgtl5000: do not enforce symmetry if rate is unknown
ENGR00132525 sgtl5000: audio clock gating
ENGR00132580 allow prediv by 1 for ext1 clk
(audio clock gating on Efika will be patched in later)
The CS42888 can only playback or record the multiple 44k streams,
as there is only the 22.579MHz Osc on the board. Enable the
ALSA plugin or ASRC when try to playback or record multiple 48k
streams.
Signed-off-by: William Lai <b04597@freescale.com>
Support CS42888 playback and recording.
ESAI_HCKT is used to drive CS42888 when recording, due to
hardware layout.
Signed-off-by: William Lai <b04597@freescale.com>
1)There is still pop noise sometimes when start/stop/pausing a playback,
this patch is used to further reduce the pop noise.
2)Enter low power mode(power down DAC) when there is no playback for 5 seconds.
3)Modify amixer controls "Speaker Playback Switch" and "Headhpone Playback
Switch"
Signed-off-by: Lionel Xu <r63889@freescale.com>
Use the RATE_MODE field to support more sample rates in hardware,
specifically 8000, 11025, 16000, and 22050 Hz.
Signed-off-by: Alan Tull <r80115@freescale.com>
Changes such that DAC Mux will only affect whether the headphone
output gets connected to the DAC or Line in.
The previous implementation of the DAC Mux allowed the dapm power
level of the sgtl5000 to be affected whether audio was playing or
not. It also controlled the an internal osc which had no effect
since it didn't affect whether mclk was turned on.
Signed-off-by: Alan Tull <r80115@freescale.com>
Add HEADPHONE short protection,when headphone short,mute the
HP vol and pwrdn the headphone,and restore them when short gone.
Signed-off-by: Frank Li <frank.li@freescale.com>
DMA will stop working after playback/stop many times, especially for those
high bitrate wav sound, use another way to trigger the audioout playback
can resolve this issue.
Signed-off-by: Lionel Xu <r63889@freescale.com>
Starting a mono record stream and doing stereo playback resulted in
wrong sample rate. Also starting stereo playback then doing mono
record.
Signed-off-by: Alan Tull <r80115@freescale.com>
The data in memory is 24 bit little endian in a 32 bit word.
We need to shift the data in memory out one byte to get the proper
alignment.
Signed-off-by: Alan Tull <r80115@freescale.com>
Support audio record through saif, support playback/record simultaneously
Signed-off-by: Lionel Xu <r63889@freescale.com>
(cherry picked from commit 18627873f6332e03ebd03691f51937559bbdf03d)
No all regiser use _SCT. stmp3xxx_setl may write to wrong address.
please use __raw_write (value, REG_XXX_SET) to write date to SCT
register. Only REG_XXX_SCT is defined when it exist at hardware.
Signed-off-by: Frank.Li <Frank.Li@freescale.com>
wm8580 is using regulators that can't change state. The
regulator driver doesn't handle this case well so it crashes
during regulator_bulk_enable. Eventually this will be fixed in the
regulator driver. For now, remove regulators from list in
wm8580 driver.
Fix spi_rw err. hw_write needs to return transferred data length.
Signed-off-by: Alan Tull <r80115@freescale.com>
Signed-off-by: Wallace Wang <r59996@freescale.com>
Move regulator control into codec drivers.
Move codec platform data to machine layer.
Remove unused fields from mxc_audio_platform_data.
soc multiple audio cards support:
dai_list is a list for all registered codec/cpu dais.
One codec/cpu dais can't be registered twice, so move the
cpu dai registering into imx-ssi.c/imx-esai.c
Fix ak4647_read_reg error.
Put ssi/esai mode in the cpu_dai private_data.
sgtl5000: Fix the power for MX35
1. MX35 vddio and vddd are directly connected to
external 3V3. It has no regulator control.
2. sgtl5000 needs some time to be ready after vdda
is switched on so msleep(1) is added before regiter
read/write.
3. On MX35 platform, vdda is from VCAM.
Signed-off-by: Alan Tull <r80115@freescale.com>
Signed-off-by: Wallace Wang <r59996@freescale.com>
Add basic support for integration with the regulator API to WM8580.
Since the core cannot yet disable biases when the CODEC is idle we
simply request and enable the regulators for the entire time the
driver is active.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
For best performance the DAC sloping stopband filter should be enabled
below 24kHz and not enabled above that so remove the user visible
control for this and do it autonomously in the driver.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
commit 48e3cbb3f67a27d9c2db075f3d0f700246c40caa upstream.
This patch fixes a bug where "virtual" registers were being written to the ac97
bus. This was causing unrelated registers to become corrupted (headphone 0x04,
touchscreen 0x78, etc).
This patch duplicates protection that was included in the wm9713 driver.
Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
commit e9ff5eb2ae018fe2298c68746c873bf828c6b10e upstream.
This patch fixes two issues:
a) Infinite loop in resume function
b) Writes to non-existing registers in resume function
Signed-off-by: Anuj Aggarwal <anuj.aggarwal@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
commit 87831cb660954356d68cebdb1406f3be09e784e9 upstream.
It's the 8th enum of a zero indexed array. This is why I don't let
new drivers use these arrays of enums...
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
PLL was not being enabled when it was not bypassed. This patch
enables the PLL when it is used. Additionally, it disables the PLL
when it is bypassed.
Without this patch, the audio on TI DM646x EVM and DM355 EVM
does not work properly. The bit clocks and the frame sync signals
from the codec are not correct and hence the playback/record are faster
than usual for most sample rates. The reason for this was that the PLL
was not enabled when it was not bypassed.
Tested on DM6467 EVM, playback tested on DM355 EVM.
Signed-off-by: Chaithrika U S <chaithrika@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Register cache space was not being allocated for the final register,
causing bugs when it was used. Allocate space for it.
Also ensure that the final register is displayed in sysfs.
[Commit message rewritten to document actual issue. -- broonie]
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
The wrong register cache variable was being used to provide the size for
the memcpy(), resulting in a copy of only a void * of data.
Reported-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
The Blackfin submission was done as a patch against a different tree
and contained a duplicate hunk which will cause us to loose track of the
substream pointers when shutting down. Remove one of the duplicated
hunks.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Fix the (likely cut-n-paste) error by commit
16a30fbb0d, which causes the error below:
sound/soc/codecs/twl4030.c: In function 'twl4030_read_reg_cache':
sound/soc/codecs/twl4030.c:152: error: 'cache' undeclared (first use in this function)
Signed-off-by: Takashi Iwai <tiwai@suse.de>
In addition to the operating mode check, also check the
codec's interface format in case of four channel mode.
If the codec is not in TDM (DSP_A) mode, return with error.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
McASP on DM646x can operate in DIT (S/PDIF) where no codec is needed.
This patch provides stub codec that can be used in these configurations.
On DM646x EVM the McASP1 is connected to the S/PDIF out.
Signed-off-by: Steve Chen <schen@mvista.com>
Signed-off-by: Pavel Kiryukhin <pkiryukhin@ru.mvista.com>
Signed-off-by: Naresh Medisetty <naresh@ti.com>
Signed-off-by: Chaithrika U S <chaithrika@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>