Age | Commit message (Collapse) | Author |
|
Add SAI driver support for Faraday.
Signed-off-by: Alison Wang <b18965@freescale.com>
Signed-off-by: Xiaochun Li <b41219@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>
|
|
* Remove hard codded gpio reset definition
* Add in mxc_audio_platform_data reset gpio reference to be able
to pass gpio reset assignment in board definition file instead
of a macro for each different board.
* Add plat_data null check, return EINV if no set.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
|
|
1. if the DAC volume is largest, output is harsh.
so reduce the DAC volume.
2. increase ADC volume
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
Signed-off-by: Jason Liu <r64343@freescale.com>
|
|
Sometimes there is no sound after starting a stream playbacking, this problem
can be resolved by resetting external codec at the beginning of startup.
Signed-off-by: Lionel Xu <R63889@freescale.com>
|
|
Former stereo playback uses network mode which does not
suppot 24bit format well.
Add I2S mode to do the same manner with codec.
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
Code change in none-mach code for support MX6Q Sabre Auto.
Signed-off-by: Eric Sun <jian.sun@freescale.com>
|
|
Some calls to the snd_soc_update_bits() uses an incorrect value for the
mask field
Signed-off-by: Mahesh Mahadevan <r9aadq@freescale.com>
|
|
Add 24bit sample rate playback support for SSI and sgtl5000
codec driver.
Signed-off-by: Gary Zhang <b13634@freescale.com>
|
|
add i2c depends for mxc edid/dvi/hdmi driver.
add i2c depends for codec soc sgtl5000 and cs42888.
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
Add tx_active, rx_active flags to keep track of what channels
have enabled clocks.
In suspend/resume, only disable/re-enable the clocks that were
enabled.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
|
|
Previously, only one static struct for ops existed for all
platform DMA drivers to share. Half of the ops are shared
functions which don't have stubs in the ALSA core. The
other half are initialized to point directly to ops in the
platform driver. This creates problems where each time
soc_new_pcm is called, the new platform driver's ops would
overwrite a subset of the ops.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
|
|
To make cpu_dai esai support 8/6 channel playback/recording.
Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
|
|
Add support for the SSI audio through the SGTL codec
on MX6 Sabre-lite board
Signed-off-by: Mahesh Mahadevan <r9aadq@freescale.com>
|
|
Rename "sabreauto" config in sound driver to "arm2".
Signed-off-by: Anish Trivedi <anish@freescale.com>
|
|
Audio driver for i.Mx built-in HDMI Transmitter.
* Uses HDMI Transmitter's built-in DMA.
* Adds IEC958-style digital audio header info to the raw audio.
* Gets pixel clock from the IPU driver and calculates clock
regenerator values (cts and N).
* Move ipu_id, and disp_id from the HDMI's platform data to the
HDMI mfd's platform data. Saves them in the hdmi mfd.
* Add mfd functionality to update the clock regenerator values
when the hdmi changes the pixel clock rate or when requested
from the audio driver with a new audio sample rate.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
|
|
On boards which have more than one soc-audio device, the initialization
of the first device will create a sysfs directory named
/sys/devices/platform/soc-audio and subsequent soc-audio devices will
fail to init because they try to create another sysfs directory of the
same name.
The solution is to have a unique number for each device such that
different boards having combinations will be OK.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
|
|
* Add spdif block clock divider settings and spdif_clk_set_rate
function to mxc_spdif_platform_data.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
|
|
The S/PDIF block's DPLL recovers the clock from the input
bitstream. So S/PDIF capture rate is not dependent on
transmit clocks available.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
|
|
All ALSA sound-cards are not registered, hence change the init to regular
module_init.
Signed-off-by: Mahesh Mahadevan <r9aadq@freescale.com>
|
|
Update Headset detect code incase no dedicated pin and detect is
always activated
Signed-off-by: Mahesh Mahadevan <r9aadq@freescale.com>
|
|
Proper flag setting and placement should be used to avoid function hw_param
called multiple times when playback and record startup concurrently.
Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
|
|
BugLink: http://bugs.launchpad.net/bugs/855281
Playback/capture rates should be configured before the SPDIF codec
DAI is registered, according to the parameters that passed in by
the platform data. And this caused pulseaudio not working with the
SPDIF sound card.
Signed-off-by: Eric Miao <eric.miao@linaro.org>
|
|
When recording mono wav, SSI's network mode should be closed, or it will
influence the internal freq config, making recording fail.
Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
|
|
There is no sound in the recorded wav, to enable recording, the VAG should be
powered up, and the mic bias resistor should be setup with proper value.
Signed-off-by: Lionel Xu <Lionel.Xu@freescale.com>
|
|
Add ESAI recording to mx6q platform.
To differentiate mx6q and mx53 in codec machine layer code.
Signed-off-by: Lionel Xu <R63889@freescale.com>
|