Age | Commit message (Collapse) | Author |
|
* Add clk_enable return checks, if clocks aren't enabled
writting/reading from spdif register will cause
system to become unresponsive.
* Remove spdif_audio_clk enable/disable calls
this clock is not assigned and is reposible for making
the system unresposive.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
set default volume for headphone and speaker
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
In ARIK, to prevent noise cause by false triggered burst, we reduce
the incr type to 4. and the change may cause bus_error because a
burst may unexpectly stop and thus an AHB bus error happens.
Reset HDMI Audio FIFO state to prevent AHB bus error.
Signed-off-by: Chen Liangjun <b36089@freescale.com>
|
|
Configure information for threshold and incr:
CHIP + CHANNEL THRESHOLD INCRTYPE
ARIK + 2 126 4
ARIK + 4,6,8 124 4
RIGEL + 2,4,6,8 128 8
Signed-off-by: Chen Liangjun <b36089@freescale.com>
|
|
mx6x HDMI audio add IEC head optimization with C code
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Added miss file hdmi_cpm.S for patch ENGR00181130
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
HDMI audio DMA FIFO size is setting to 126, and use INCR4 mode
to fix FIFO overflow issue.
Added Neon code for PCM data IEC head and data copy.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
* Move spdif_core_clk enable from spdif_probe to spdif_startup
function in order to avoid initializing the core clock
when module is not in use.
* At spdif_shutdown disable spdif core_clk.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
* Add get_clk clock error check
abort driver probe if wrong clock.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
Get speaker allocation data block information from the EDID.
Translate the EDID speaker allocation to audio infoframe
speaker allocation (different bit mapping) given the number
of channels of audio being played.
Set channel count information in HDMI_FC_AUDICONF0.
Set speaker allocation information in HDMI_FC_AUDICONF2.
From CEA-861-D spec:
NOTE—HDMI requires the CT, SS and SF fields to be set to 0 (Refer
to Stream Header) as these items are carried in the audio stream.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
Implement stereo recording feature on analog mic
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
The mute process in shutdown function should only be limited to playback, or
it will influence each other when they running together.
Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
|
|
Audio integration of AMFM module to ARD platform IMX6Q and IMX6DL
rev A and rev B boards. Supported on ALSA for kernel 3.0.15.
Signed-off-by: Alejandro Sierra <b18039@freescale.com>
|
|
because wm8962 codec does not support 64KHz sample
rate, no longer declare to support 64KHz:
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
This patch includes some of the clk enable/disable changes from rev2
Check the version of the HDMI IP to determine whether the fifo
threshold needs to be high. The i.Mx6dl version of the HDMI doesn't
need the workaround. All other parts of the workaround are used
for both parts for code simplicity.
----------------------------------------------------------
For i.Mxq, set the Threshold of audio fifo as: FIFO depth - 2 (fixed
and independent of the number of channels actually used).
Use unspecified length ahb bursts (using fixed INCRx will make the
audio dma fail).
Additionally and in order to get it working on all conditions it will
be necessary to run the following sw steps at startup of video and audio
(or when video changes or audio changes):
1-Configure AUD_N1 and AUD_CTS1 registers with final value and let the
AUD_N2, AUD_N3, AUD_CTS2 and AUD_CTS3 to 0s.
2-Configure start and end addresses of audio DMA registers.
3-Start DMA operation
4-Configure the AUD_CTS2 and AUD_CTS3 with the final value.
5-Configure the AUD_N2 and AUD_N3 with final value.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
enable SSI dual-fifo feature as default setting
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
* Fix cs42888 record DAMP routing settings for ADCx
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
* Remove transmitter personal reset during stream record
this could potencially block concurrent play/record support.
* Remove receiver personal reset calls, rx is always
operational.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
* Add record support for S24_LE and
S20_3LE bit format.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
SRCR was bad configured on the DAI format
configuration function on the imx-ssi.c file.
When SSI was configured as master.
Signed-off-by: Alejandro Sierra <b18039@freescale.com>
|
|
ESAI can call ASRC for sample rate convert if the input sample rate
is not support.
1 ESAI will decide whether to use ASRC for sample rate convert in
imx-cs42888.c. If ASRC is need, the asrc_enable will be set.
2 In imx-pcm-dma-mx2.c, according to the value of asrc_enable, the
dma driver would decide whether to alloc another p2p dma channel to
support MEMORY-->ASRC_INPUT-->ASRC_OUTPUT-->ESAI_TX_FIFO route.
3 The code support 2 channel,24/32 bit audio file playback.
Signed-off-by: Chen Liangjun <b36089@freescale.com>
|
|
* Improve dump regs format to easily correlate
register content.
* Update copyrigth year.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
1. add amic and dmic support.
2. update wm8962 codec driver
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
add wm8962 audio codec driver
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
Take out mmap functionality.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
The channel status bits in STCSCH and STCSCL are reverse of
how they are defined in asoundef.h.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
There is no sound output any longer sometimes after several times of playback,
this platch is trying to resolve this issue by:
1)move the global power control bit setting from function hw_params/shutdown to
DAPM, thererfor the PWN bit will not be set/unset each time playback;
2)
Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
|
|
Previously in order to avoid audio playback no sound issue, a hardware reset
was made to the codec chip each time when doing playback. now remove this
workaround.
Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
|
|
1. add clko_clk clock management
2. use 'Headphone Jack' name
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
add two channels record support.
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
add wm8958 audio codec support
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
* imx-cs42888 config esai for sabreauto support
* Select lrclk_ratio according to mclk_freq
* Set clkdiv relations
* Add safer codec reset, request and free gpio
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
* Get audio codec platform data and overwrite supportted
sample rates if defined in machine board file.
* Remove machine soc specific sample rate settings.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
Panic is due to runtime being a NULL pointer.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
Runtime dma_area may be invalid after trigger stop command.
This will cause an oops in hdmi_dma_mmap_copy. To fix this,
disable mmap copying with trigger stop command and also check
the runtime->dma_area before doing hdmi_dma_mmap_copy.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
Don't show hdmi as an audio playback device if hdmi isn't
configured on the command line.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
Add cs42888 build support.
Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
|
|
Add functionality to parse Audio Data Blocks from EDID data to
find out what modes of LPCM are suppored by the HDMI sink device.
The parsed settings are saved in the hdmi mfd. The HDMI audio driver
will check the settings when the audio stream is opened and will
then apply appropriate constraints.
If we are unable to read from the EDID, then we default to supporting
Basic Audio as defined by the HDMI specification (stereo, 16 bit,
32KHz, 44.1KHz, 48KHz PCM).
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
This patch change is very trivial and simply just add
cpu_is_mx6dl() or using cpu_is_mx6 to replace cpu_is_mx6q
each driver owner will check it and adjust it accordingly later,
such as sdhc etc.
Signed-off-by: Jason Liu <r64343@freescale.com>
|
|
Makefile.rej got committed from doing cherry-pick for kernel
upgrade from 2.6.38 to 3.0.15
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
The ALSA userspace requires mmapped buffer access to support sample
rate conversion.
Our hardware requires the driver to add frame information to the pcm
data. For non-mmap access, the snd_pcm_ops' copy routine will do it.
For mmap access, we have to do it in the isr. This is not ideal, but
it will work.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
add sgtl5000 driver for MX6Q_ARM2 in config file
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
Add spdif to Makefile.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
[ 330.922320] [<800417e0>] (__bug+0x1c/0x24) from [<8007b4dc>] (__queue_work+0x24c/0x3f0)
[ 330.930333] [<8007b4dc>] (__queue_work+0x24c/0x3f0) from [<8007b6e0>] (queue_work_on+0x38/0x40)
[ 330.939039] [<8007b6e0>] (queue_work_on+0x38/0x40) from [<8007d568>] (queue_work+0x2c/0x58)
[ 330.947401] [<8007d568>] (queue_work+0x2c/0x58) from [<803b83a4>] (snd_soc_resume+0x98/0xb8)
[ 330.955852] [<803b83a4>] (snd_soc_resume+0x98/0xb8) from [<80280aa4>] (platform_pm_resume+0x2c/0x4c)
[ 330.964996] [<80280aa4>] (platform_pm_resume+0x2c/0x4c) from [<80284388>] (pm_op+0xe4/0x11c)
[ 330.973441] [<80284388>] (pm_op+0xe4/0x11c) from [<80284780>] (device_resume+0x78/0x13c)
[ 330.981537] [<80284780>] (device_resume+0x78/0x13c) from [<802849d0>] (dpm_resume+0x144/0x194)
[ 330.990154] [<802849d0>] (dpm_resume+0x144/0x194) from [<80284a2c>] (dpm_resume_end+0xc/0x18)
[ 330.998692] [<80284a2c>] (dpm_resume_end+0xc/0x18) from [<8009cf18>] (suspend_devices_and_enter+0x78/0xb8)
[ 331.008355] [<8009cf18>] (suspend_devices_and_enter+0x78/0xb8) from [<8009d010>] (enter_state+0xb8/0xe4)
[ 331.017842] [<8009d010>] (enter_state+0xb8/0xe4) from [<8009c5b4>] (state_store+0x8c/0xc0)
[ 331.026116] [<8009c5b4>] (state_store+0x8c/0xc0) from [<80223b20>] (kobj_attr_store+0x18/0x1c)
[ 331.034740] [<80223b20>] (kobj_attr_store+0x18/0x1c) from [<801352ec>] (sysfs_write_file+0x104/0x184)
[ 331.043969] [<801352ec>] (sysfs_write_file+0x104/0x184) from [<800e4ce8>] (vfs_write+0xb4/0x148)
[ 331.052762] [<800e4ce8>] (vfs_write+0xb4/0x148) from [<800e4e4c>] (sys_write+0x40/0x70)
[ 331.060781] [<800e4e4c>] (sys_write+0x40/0x70) from [<8003e380>] (ret_fast_syscall+0x0/0x30)
The commit:c4e133f ASoC: core: Don't schedule deferred_resume_work twice
commit c4e133f4e253b57e5d4409964a3b51f2d887e94b
Author: Stephen Warren <swarren@nvidia.com>
Date: Wed May 25 14:06:41 2011 -0600
ASoC: core: Don't schedule deferred_resume_work twice
commit 82e14e8bdd88b69018fe757192b01dd98582905e upstream.
For cards that have two or more DAIs, snd_soc_resume's loop over all
DAIs ends up calling schedule_work(deferred_resume_work) once per DAI.
Since this is the same work item each time, the 2nd and subsequent
calls return 0 (work item already queued), and trigger the dev_err
message below stating that a work item may have been lost.
Solve this by adjusting the loop to simply calculate whether to run the
resume work immediately or defer it, and then call schedule work (or not)
one time based on that.
Note: This has not been tested in mainline, but only in chromeos-2.6.38;
mainline doesn't support suspend/resume on Tegra, nor does the mainline
Tegra ASoC driver contain multiple DAIs. It has been compile-checked in
mainline.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
changed the defaut behaviour for non-ac97 class which cause deferred_resume_work
was scheduled not by desire when card->num_rdt is zero.
Signed-off-by: Jason Liu <r64343@freescale.com>
|
|
The bug is that HDMI audio continues playing after doing ctrl-z,
repeating playing a small part of the buffer.
Mask HDMI audio irq when we receive SNDRV_PCM_TRIGGER_STOP command.
Unmask when we receive SNDRV_PCM_TRIGGER_START.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
disable ssi2 clk after init ssi.
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
there is a issue on 24bit mono transmit of sgtl5000,
temporarily disable mono support
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
SGTL5000_VAG_POWERUP used by record and playback.
when playback and record are opened, close one of them will cause
the other mute
Signed-off-by: b02247 <b02247@freescale.com>
|
|
close ssi_clk when ssi is idle.
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
* Overwrite codec_name if passed as platform data
* Add codec_name in mxc_audio_platform_data
* Codec name follows the naming convention
<codec>.<i2c-channel>-<codec i2c address> i.e. cs42888.0-0048
* For IMX6Q-ARD this name convention doesn't follow previous settings for
imx6q platforms codec is on different i2c channel and can't be resolved
by CONFIG macros on imx_3stack_dai data structure; So we overwrite in
probe function by getting the correct value from plat_data->codec_name.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|