spdif can't playback at system first bootup, write I/O error print out.
This problem is caused by DMA channel not requested before enable spdif dma
trigger register.
Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
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)
Use the platform_device_unregister instead of platform_device_put,
to remove the device from the audio subsystem, when it fails to reigster
the cs42888 card.
Signed-off-by: William Lai<b04597@freescale.com>
(cherry picked from commit b096820108269d4d67b44fd8652c475263ee8a18)
Judge the codec memeber of the snd_soc_card_imx_3stack after the
platform_device_add function, as only after this function, the
cs42888_codec pointer will be passed to.
Signed-off-by: William Lai <b04597@freescale.com>
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>
Due to an apparent hw bug we have to shift data in the audio buffer by
one byte to play out S/PDIF. ENGR00122025 and ENGR00122231 are a
workaround for playback with non-mmapped buffers. This patch is
the workaround for mmapped buffers.
Signed-off-by: Alan Tull <r80115@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>
To resolve the problem of playing back wavfile with sample rate over 48khz.
Signed-off-by: Lionel Xu <r63889@freescale.com>
(cherry picked from commit f1af83a27357d7da1a89d79f8ed2d74fbfb7dc34)
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)
- put base address and irq in platform data.
- use clk usecounts instead of ssi_active struct
- allow up to MAX_SSI_CHANNELS in hardware
Signed-off-by: Alan Tull <r80115@freescale.com>
The spba defaults to all masters enabled and this is fine as
all chips only have ARM and SDMA as masters.
Signed-off-by: Rob Herring <r.herring@freescale.com>
When bluetooth handsfree is enabled, sgtl5000 and bt
sound cards are both opened. BT sound card playback
can't use IRAM as sgtl5000 has used IRAM. The bt audio
platform data - ext_ram is not set when kernel porting
to 2.6.31.
Signed-off-by: Wallace Wang <r59996@freescale.com>
ASRC minmal output sample rate is 32000. When ASRC
is used as ASRC-ESAI per_2_per mode, the unsupported
sample rates should not be included in ASRC mixer.
Signed-off-by: Wallace Wang <r59996@freescale.com>
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>