summaryrefslogtreecommitdiff
path: root/sound/soc/codecs
AgeCommit message (Collapse)Author
2012-09-07Merge remote branch 'fsl-linux-sdk/imx_3.0.35_12.09.01' into imx_3.0.35_androidXinyu Chen
Conflicts: arch/arm/mach-mx6/pm.c
2012-09-05ENGR00222836 Fix Kern BUG during Susp/Resu caused by SPDIF debug codeNicolin Chen
dump_reg() in msc_spdif.c will cause kernel BUG during Suspend/Resume, because of calling clk_enable() in an interrupt for playback. There's also a simular issue in capture case. Capture'd be stopped after resume for suspending. Signed-off-by: Nicolin Chen <b42378@freescale.com>
2012-08-30Merge remote branch 'fsl-linux-sdk/imx_3.0.35_12.09.01' into imx_3.0.35_androidXinyu Chen
Conflicts: arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/mach-mx6/board-mx6sl_arm2.c arch/arm/mach-mx6/bus_freq.c arch/arm/mach-mx6/cpu_op-mx6.c arch/arm/plat-mxc/cpufreq.c
2012-08-29ENGR00221689 wm8962: add wait time after enable power supplyGary Zhang
add 100ms wait time after enable power supply for power stability Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-08-24ENGR00219933 CS42888: abort delay powerdown if codec is onChen Liangjun
CS42888 driver own 2 codec_dai for ESAI and ASRC P2P use. Due to the delay power down mechanism, if a ASRC P2P stream is played right after a finish of ESAI stream playback, ASRC P2P stream would be stop. In this patch, do nothing in the delay powerdown flow if CS42888 codec is on. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-08-01Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
Conflicts: drivers/mxc/vpu/mxc_vpu.c
2012-07-31ENGR00217401 wm8962: fix build warningXinyu Chen
Fix two build warnings on wm8962 Signed-off-by: Xinyu Chen <Xinyu.chen@freescale.com>
2012-07-31ENGR00217401-1 wm8962: fix build warningXinyu Chen
Fix two build warnings on wm8962 Signed-off-by: Xinyu Chen <Xinyu.chen@freescale.com>
2012-07-30ENGR00218421-2 ESAI_ASRC:Add support for p2p virtual device playbackChen Liangjun
In the origin code, ESAI driver supoprt audio p2p playback by setting input PCM data's sample rate thought amixer interface.It is ugly and request user application call amixer control interface everytime before and playback. In this patch, user can call the audio p2p playback by writing data to an special virtual device. Driver would automatically get the params of input PCM. At the same time, driver would get the output sample rate and word data. With the data abover, driver can set ASRC properly and audio p2p palyback is support. This patch mainly focus on: 1 clean old p2p playback way for ESAI. 2 Setup the output sample rate and word width to virtual device's substream_runtime's private data. Everytime the virtual device is called, the data abover is used for config ASRC, ESAI, and codec. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-30ENGR00218421-1 ESAI: Setup virtual device under ESAI sound cardChen Liangjun
For ESAI sound card, ESAI driver setup device 0 for raw ESAI playback and capture. In this patch, add ESAI virtual device 1 under ESAI sound card. Device 1 is for ESAI audio p2p playback. Every time user use device 1 for playback, ASRC would be called defaultly. Thus for device 1, it can support all sample rate between 8k ~ 192k. Signed-off-by: Chen Liangjun <b36089@freescale.com>
2012-07-25Merge remote branch 'fsl-linux-sdk/imx_3.0.35' into imx_3.0.35_androidXinyu Chen
Conflicts: arch/arm/configs/imx6_defconfig arch/arm/configs/imx6_updater_defconfig arch/arm/configs/imx6s_defconfig arch/arm/include/asm/dma-mapping.h arch/arm/kernel/smp.c arch/arm/mach-mx6/Kconfig arch/arm/mach-mx6/board-mx6dl_arm2.h arch/arm/mach-mx6/board-mx6dl_sabresd.h arch/arm/mach-mx6/board-mx6q_arm2.c arch/arm/mach-mx6/board-mx6q_arm2.h arch/arm/mach-mx6/board-mx6q_sabreauto.c arch/arm/mach-mx6/board-mx6q_sabreauto.h arch/arm/mach-mx6/board-mx6q_sabrelite.c arch/arm/mach-mx6/board-mx6q_sabresd.c arch/arm/mach-mx6/board-mx6q_sabresd.h arch/arm/mach-mx6/board-mx6sl_arm2.c arch/arm/mach-mx6/board-mx6sl_arm2.h arch/arm/mach-mx6/board-mx6solo_sabreauto.h arch/arm/mach-mx6/bus_freq.c arch/arm/mach-mx6/clock.c arch/arm/mach-mx6/clock_mx6sl.c arch/arm/mach-mx6/cpu.c arch/arm/mach-mx6/crm_regs.h arch/arm/mach-mx6/devices-imx6q.h arch/arm/mach-mx6/devices.c arch/arm/mach-mx6/mx6_anatop_regulator.c arch/arm/mach-mx6/pcie.c arch/arm/mach-mx6/system.c arch/arm/mm/dma-mapping.c arch/arm/plat-mxc/devices/Makefile arch/arm/plat-mxc/devices/platform-imx-dcp.c arch/arm/plat-mxc/devices/platform-imx-ocotp.c arch/arm/plat-mxc/devices/platform-imx-rngb.c arch/arm/plat-mxc/devices/platform-mxc_hdmi.c arch/arm/plat-mxc/include/mach/devices-common.h arch/arm/plat-mxc/include/mach/esdhc.h arch/arm/plat-mxc/include/mach/iomux-mx6dl.h arch/arm/plat-mxc/include/mach/iomux-mx6q.h arch/arm/plat-mxc/include/mach/memory.h arch/arm/plat-mxc/include/mach/mx6.h arch/arm/plat-mxc/include/mach/mxc_edid.h arch/arm/plat-mxc/include/mach/mxc_hdmi.h arch/arm/plat-mxc/system.c drivers/Kconfig drivers/char/hw_random/fsl-rngc.c drivers/cpufreq/Makefile drivers/cpufreq/cpufreq_interactive.c drivers/crypto/Kconfig drivers/crypto/caam/caamalg.c drivers/crypto/caam/compat.h drivers/crypto/caam/ctrl.c drivers/crypto/caam/desc_constr.h drivers/crypto/caam/intern.h drivers/crypto/dcp.c drivers/dma/pch_dma.c drivers/input/keyboard/gpio_keys.c drivers/input/touchscreen/egalax_ts.c drivers/input/touchscreen/max11801_ts.c drivers/media/video/mxc/capture/Kconfig drivers/media/video/mxc/capture/adv7180.c drivers/media/video/mxc/capture/ipu_csi_enc.c drivers/media/video/mxc/capture/ipu_prp_vf_sdc.c drivers/media/video/mxc/capture/ipu_prp_vf_sdc_bg.c drivers/media/video/mxc/capture/mxc_v4l2_capture.c drivers/media/video/mxc/capture/ov5640_mipi.c drivers/media/video/mxc/output/mxc_vout.c drivers/misc/Kconfig drivers/misc/Makefile drivers/mmc/card/block.c drivers/mmc/core/mmc.c drivers/mmc/host/mmci.c drivers/mmc/host/sdhci-esdhc-imx.c drivers/mmc/host/sdhci.c drivers/mmc/host/sdhci.h drivers/mxc/Kconfig drivers/mxc/Makefile drivers/mxc/asrc/mxc_asrc.c drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_context.c drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c drivers/mxc/ipu3/ipu_device.c drivers/mxc/vpu/mxc_vpu.c drivers/net/fec.c drivers/net/wireless/Makefile drivers/power/sabresd_battery.c drivers/regulator/core.c drivers/tty/serial/imx.c drivers/usb/core/hub.c drivers/usb/gadget/arcotg_udc.c drivers/usb/gadget/fsl_updater.c drivers/usb/gadget/inode.c drivers/usb/host/ehci-hub.c drivers/video/mxc/ldb.c drivers/video/mxc/mipi_dsi.c drivers/video/mxc/mxc_dispdrv.c drivers/video/mxc/mxc_dispdrv.h drivers/video/mxc/mxc_edid.c drivers/video/mxc/mxc_elcdif_fb.c drivers/video/mxc/mxc_ipuv3_fb.c drivers/video/mxc/mxc_spdc_fb.c drivers/video/mxc_hdmi.c drivers/watchdog/imx2_wdt.c fs/proc/base.c include/linux/mmc/host.h include/linux/mmc/sdhci.h include/linux/mxc_v4l2.h kernel/power/main.c sound/soc/codecs/mxc_hdmi.c sound/soc/codecs/mxc_spdif.c sound/soc/codecs/wm8962.c sound/soc/imx/Kconfig sound/soc/imx/Makefile sound/soc/imx/imx-cs42888.c sound/soc/imx/imx-esai.c sound/soc/imx/imx-wm8958.c sound/soc/imx/imx-wm8962.c
2012-07-25ENGR00215621 HDMI: Pass HCT TestID 7-32: Audio Sample Packet LayoutSandor Yu
CA index table should followed CEA-861-D table 20. Signed-off-by: Sandor Yu <R01008@freescale.com>
2012-07-25ENGR00209905 WM8962: support for continuously playback diff sample bit streamsGary Zhang
support for continuously playback different sample bit audio streams with -Dplughw:0,0 option such as the command: 'aplay -Dplughw:0,0 16bit.wav 24bit.wav' before prohibit reenter hw_params, now remove this limitation to support this feature. Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00213616 wm8962: set default volume for playback and recordGary Zhang
set default volume for playback and record Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00212542 SPDIF: move clock operationGary Zhang
Now clock operation occurs in mxc_spdif_trigger(), and because clock operation is forbidden to exist in interrupt context, move disabling clock operation to mxc_spdif_shutdown() Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00209384-4 mxc_spdif: disable sym_err isrAdrian Alonso
* Disable symbol error interrupt when rx dpll is unlocked This means that no spdif Rx data had been identified and driver will keep issuing sym_err interrupt request. * Add check to only execute capture_start/stop functions if rx_active is set. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-07-20ENGR00209384-3 mxc_spdif: capture playback stop functionAdrian Alonso
* Add capture/playback stop function Stops capture/playback process Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-07-20ENGR00209384-2 mxc_spdif: capture playback start functionAdrian Alonso
* Add start capture/playback function Start sequence for capturing/playing audio data. * Remove caprure/playback prepere function hwd initialization handled by trigger function when user/app starts capture/play process. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-07-20ENGR00209384-1 mxc_spdif: add trigger handler functionAdrian Alonso
* Add trigger function in order to handle user space events start/stop/pause playback/capture Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-07-20SAUCE remove unnecessary suspend/resume functionsAdrian Alonso
BugLink: http://bugs.launchpad.net/bugs/882723 Disabling/re-enabling clocks is not necessary as it's done in *_startup() and *_shutdown() functions, and shall be performed during suspend/resume. This is causing warnings of un-matched clk_enable()/clk_disable() Rework patch for imx_3.0.15 code base Signed-off-by: Eric Miao <eric.miao@linaro.org> Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-07-20ENGR00178459 mxc_spdif: fix read access for debug infoAdrian Alonso
* Fix read register access for debug info * Read from spdif registers with a disabled spdif core clock leads to kernel hang. * Avoid it by enabling/diabling core clk. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-07-20ENGR00178459 mxc_spdif: clk_enable return checksAdrian Alonso
* 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>
2012-07-20ENGR00182220 WM8962: set a default volumeGary Zhang
set default volume for headphone and speaker Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00181130 Optimizate HDMI audio mmap to fix HDMI audio alsa underrunSandor Yu
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>
2012-07-20ENGR00180236-2: spdif clk usecount is 1 when not in useAdrian Alonso
* 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>
2012-07-20ENGR00180236: mxc_spdif add spdif_clk error checkAdrian Alonso
* Add get_clk clock error check abort driver probe if wrong clock. Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-07-20ENGR00180350-2 HDMI set infoframe informationAlan Tull
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>
2012-07-20ENGR00180297 WM8962: stereo record on AMICGary Zhang
Implement stereo recording feature on analog mic Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00171077 ESAI: Ends of record should not impact playbackLionel Xu
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>
2012-07-20ENGR00179127 Audio integration for AMFM module to ARD platformAlejandro Sierra
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>
2012-07-20ENGR00179725 WM8962: remove 64KHz sample rate supportGary Zhang
because wm8962 codec does not support 64KHz sample rate, no longer declare to support 64KHz: Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00179367: cs42888 record fix damp routing settingsAdrian Alonso
* Fix cs42888 record DAMP routing settings for ADCx Signed-off-by: Adrian Alonso <aalonso@freescale.com>
2012-07-20ENGR00177281-5 WM8962: add record featureGary Zhang
1. add amic and dmic support. 2. update wm8962 codec driver Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00177581-3 WM8962: add wm8962 codec driverGary Zhang
add wm8962 audio codec driver Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00176374 SPDIF TX Fix channel status bit orderAlan Tull
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>
2012-07-20ENGR00170526-4 ESAI: To resolve the playback no sound issue occasionally happenLionel Xu
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>
2012-07-20ENGR00170526-3 ESAI: Remove the workaround to reset codec before playbackingLionel Xu
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>
2012-07-20ENGR00175219-4 wm8958: add audio codec supportGary Zhang
add two channels record support. Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00175219-3 wm8958: add audio codec supportGary Zhang
add wm8958 audio codec support Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00171079-4 cs42888 imx6q-sabreauto supportted ratesAdrian Alonso
* 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>
2012-07-20ENGR00173964 make hdmi audio init dependent on hdmi video initAlan Tull
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>
2012-07-20ENGR00172342-2 EDID parse audio data blocksAlan Tull
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>
2012-07-20ENGR00173869-9: i.mx6dl: add the misc drivers supportJason Liu
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>
2012-07-20ENGR00171026 SGTL5000: remove mono supportGary Zhang
there is a issue on 24bit mono transmit of sgtl5000, temporarily disable mono support Signed-off-by: Gary Zhang <b13634@freescale.com>
2012-07-20ENGR00170999 Fix the record end, playback muteb02247
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>
2012-07-20ENGR00162649 sgtl5000: reduce the DAC volumeGary Zhang
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>
2012-07-20fix the building warningsJason Liu
Signed-off-by: Jason Liu <r64343@freescale.com>
2012-07-20ENGR00162729 MX6 ESAI: To reset the codec before initing a stream playbackingLionel Xu
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>
2012-07-20ENGR00162035 Fix usage of snd_soc_update_bits() func in SGTL5000 driverMahesh Mahadevan
Some calls to the snd_soc_update_bits() uses an incorrect value for the mask field Signed-off-by: Mahesh Mahadevan <r9aadq@freescale.com>
2012-07-20ENGR00161288 balance spdif clock enables and disablesAlan Tull
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>