summaryrefslogtreecommitdiff
path: root/sound/soc/codecs
AgeCommit message (Collapse)AuthorFilesLines
2015-08-06Merge remote-tracking branches 'asoc/fix/cs4265', 'asoc/fix/intel' and ↵Mark Brown1-5/+5
'asoc/fix/topology' into asoc-linus
2015-08-06Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linusMark Brown2-0/+6
2015-08-03ASoC: rt5645: Fix lost pin setting for DMIC1Bard Liao2-0/+6
I2S2_DAC pin can be used for I2S or GPIO. We should set it as GPIO if we use GPIO5 as DMIC1 data pin. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-24ASoC: cs4265: Fix setting dai format for Left/Right JustifiedAxel Lin1-5/+5
The settings in current code does not match the datasheet, fix it. DAC Control - Address 03h DAC Digital Interface Format (Bits 5:4) DAC_DIF1 DAC_DIF0 Description 0 0 Left Justified, up to 24-bit data (default) 0 1 I²S, up to 24-bit data 1 0 Right-Justified, 16-bit Data 1 1 Right-Justified, 24-bit Data Transmitter Control 2 - Address 12h Transmitter Digital Interface Format (Bits 7:6) Tx_DIF1 Tx_DIF0 Description Format Figure 0 0 Left Justified, up to 24-bit data (default) 0 1 I²S, up to 24-bit data 1 0 Right-Justified, 16-bit Data 1 1 Right-Justified, 24-bit Data Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-24Merge remote-tracking branches 'asoc/fix/sgtl5000', 'asoc/fix/topology' and ↵Mark Brown1-1/+1
'asoc/fix/zx' into asoc-linus
2015-07-24Merge remote-tracking branch 'asoc/fix/ssm4567' into asoc-linusMark Brown1-1/+7
2015-07-24Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linusMark Brown1-0/+3
2015-07-24ASoC: pcm1681: Fix setting de-emphasis sampling rate selectionAxel Lin1-1/+1
The de-emphasis sampling rate selection is controlled by BIT[3:4] of PCM1681_DEEMPH_CONTROL register. Do proper left shift to set it. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Marek Belisko <marek.belisko@streamunlimited.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2015-07-22ASoC: ssm4567: Keep TDM_BCLKS in ssm4567_set_dai_fmtBen Zhang1-1/+7
The regmap_write in ssm4567_set_dai_fmt accidentally clears the TDM_BCLKS field which was set earlier by ssm4567_set_tdm_slot. This patch fixes it by using regmap_update_bits with proper mask. Signed-off-by: Ben Zhang <benzh@chromium.org> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Anatol Pomozov <anatol.pomozov@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2015-07-22ASoC: sgtl5000: Fix up define for SGTL5000_SMALL_POPAxel Lin1-1/+1
Currently, below code actually does not update any bit because SGTL5000_SMALL_POP is 0. snd_soc_update_bits(codec, SGTL5000_CHIP_REF_CTRL, SGTL5000_SMALL_POP, 1); The SGTL5000_SMALL_POP should be BIT(0) rather than 0, fix it. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-By: Alexander Stein <alexander.stein@systec-electronic.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-17ASoC: rt5645: Check if codec is initialized in workqueue handlerNicolas Boichat1-0/+3
This fixes kernel panic on boot, if rt5645->codec is NULL when rt5645_jack_detect_work is first called. rt5645_jack_detect_work needs rt5645->codec to be initialized to setup dapm pins. Also, reporting jack events is useless, as the jacks cannot be set before the codec is ready. Since we manually call the interrupt handler in rt5645_set_jack_detect, the initial jack state will be reported correctly, and dapm pins will be setup at that time. Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-22Merge remote-tracking branch 'asoc/topic/arizona' into asoc-nextMark Brown7-48/+48
2015-06-22Merge remote-tracking branch 'asoc/topic/wm8995' into asoc-nextMark Brown1-1/+1
2015-06-22Merge remote-tracking branches 'asoc/topic/wm8523' and 'asoc/topic/wm8741' ↵Mark Brown2-35/+52
into asoc-next
2015-06-22Merge remote-tracking branch 'asoc/topic/tas2552' into asoc-nextMark Brown2-91/+152
2015-06-22Merge remote-tracking branches 'asoc/topic/qcom', 'asoc/topic/rcar', ↵Mark Brown6-94/+175
'asoc/topic/rt286' and 'asoc/topic/rt5640' into asoc-next
2015-06-22Merge remote-tracking branches 'asoc/topic/mediatek', 'asoc/topic/ml26124' ↵Mark Brown1-47/+11
and 'asoc/topic/omap' into asoc-next
2015-06-22Merge remote-tracking branches 'asoc/topic/intel' and 'asoc/topic/max98090' ↵Mark Brown1-2/+2
into asoc-next
2015-06-22Merge remote-tracking branches 'asoc/topic/adsp' and 'asoc/topic/atmel' into ↵Mark Brown4-27/+253
asoc-next
2015-06-22Merge remote-tracking branch 'asoc/topic/rt5670' into asoc-nextMark Brown1-3/+2
2015-06-22Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-nextMark Brown2-56/+56
2015-06-22Merge tag 'asoc-v4.2' into asoc-nextMark Brown128-1509/+3615
ASoC: Updates for v4.2 The big thing this release has been Liam's addition of topology support to the core. We've also seen quite a bit of driver work and the continuation of Lars' refactoring for component support. - Support for loading ASoC topology maps from firmware, intended to be used to allow self-describing DSP firmware images to be built which can map controls added by the DSP to userspace without the kernel needing to know about individual DSP firmwares. - Lots of refactoring to avoid direct access to snd_soc_codec where it's not needed supporting future refactoring. - Big refactoring and cleanup serieses for the Wolfson ADSP and TI TAS2552 drivers. - Support for TI TAS571x power amplifiers. - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs. - Support for x86 systems with RT5650 and Qualcomm Storm. # gpg: Signature made Mon 08 Jun 2015 18:48:37 BST using RSA key ID 5D5487D0 # gpg: Oops: keyid_from_fingerprint: no pubkey # gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>" # gpg: aka "Mark Brown <broonie@debian.org>" # gpg: aka "Mark Brown <broonie@kernel.org>" # gpg: aka "Mark Brown <broonie@tardis.ed.ac.uk>" # gpg: aka "Mark Brown <broonie@linaro.org>" # gpg: aka "Mark Brown <Mark.Brown@linaro.org>"
2015-06-22Merge remote-tracking branches 'asoc/fix/wm8737', 'asoc/fix/wm8903', ↵Mark Brown4-5/+7
'asoc/fix/wm8955' and 'asoc/fix/wm8960' into asoc-linus
2015-06-22Merge remote-tracking branches 'asoc/fix/arizona', 'asoc/fix/fmtbit', ↵Mark Brown8-17/+17
'asoc/fix/intel', 'asoc/fix/max98925', 'asoc/fix/rcar' and 'asoc/fix/ux500' into asoc-linus
2015-06-22Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linusMark Brown1-4/+4
2015-06-19ASoC: wm_adsp: Move DSP Rate controls into the codecRichard Fitzgerald7-48/+48
The rate controls are codec-specific, it's not possible to generically say what the range or the meaning of each control is (or even if they exist at all) - that depends on the particular codec. This is currently being handled for Arizona codecs by putting an Arizona-specific table of controls inside the wm_adsp driver. This creates a dependency between wm_adsp and arizona.c, and is an awkward solution if the ADSP is used in another family of codecs Fix this by moving the Arizona-specific rate controls into the Arizona codec drivers. Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-19Merge branches 'topic/adsp' and 'topic/dapm' of ↵Mark Brown107-398/+278
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-arizona
2015-06-17ASoC: wm8995: Fix setting sysclk for WM8995_SYSCLK_MCLK2 caseAxel Lin1-1/+1
Fix trivial typo. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-15ASoC: rt5645: move RT5650 muxes to rt5650_specific_dapm_widgetsMichele Curti1-17/+18
Developing a driver for an Asus X205TA laptop I get these dmesg errors: rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 ADC1 Swap Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 ADC2 Swap Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 ADC3 Swap Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 ADC Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 DAC1 L Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 DAC1 R Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 DAC2 L Mux has no paths rt5645 i2c-10EC5648:00: ASoC: mux RT5650 IF1 DAC2 R Mux has no paths so, move these muxes to the rt5650_specific_dapm_widgets[] list. Signed-off-by: Michele Curti <michele.curti@gmail.com> Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-15ASoC: rt5670: Constify ACPI device ids and register defaultsMathias Krause1-3/+2
Constify the ACPI device ID array and the register map, no need to have them writable at runtime. Also drop the unneeded RT5670_INIT_REG_LEN define. Signed-off-by: Mathias Krause <minipli@googlemail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-15ASoC: max98090: Constify ACPI device ids and register defaultsMathias Krause1-2/+2
Constify the ACPI device ID array and the register map, no need to have them writable at runtime. Signed-off-by: Mathias Krause <minipli@googlemail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-15ASoC: rt5640: Constify ACPI device ids and register defaultsMathias Krause1-3/+2
Constify the ACPI device ID array and the register map, no need to have them writable at runtime. Also drop the unneeded RT5640_INIT_REG_LEN define. Signed-off-by: Mathias Krause <minipli@googlemail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-15ASoC: ml26124: Remove duplicate codeAxel Lin1-47/+11
Current code has duplicate code for 16000, 32000 and 48000 sample rates. get_srate() returns negative error code for unsupported rate, so we can remove the duplicate code in the swith cases by calling get_srate() first. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-12ASoC: wm8523: Set bclk ratio for master modeJulian Scheel1-0/+26
When running in master mode the bclk divider must be configured to generate a sane bitclock. Pick the smallest fs multiplicator, which can hold all transmitted bits. Signed-off-by: Julian Scheel <julian@jusst.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-12ASoC: wm8960: the enum of "DAC Polarity" should be wm8960_enum[1]Zidan Wang1-1/+1
the enum of "DAC Polarity" should be wm8960_enum[1]. Signed-off-by: Zidan Wang <zidan.wang@freescale.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2015-06-12ASoC: rt5645: Use devm_gpiod_get_optional for hp-detectAxel Lin1-2/+3
Since hp-detect is optional, use devm_gpiod_get_optional instead. In additional, it should return error if devm_gpiod_get_optional fails. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-12ASoC: rt5645: Add the device tree parserOder Chiou1-6/+19
Modify the RT5645 driver to parse platform data from device tree. This is missing from previous patch in sound/soc/codecs/rt5645.c, that was present in v3. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-12ASoC: rt286: Add RL6347A class device shared support for RT286Oder Chiou5-91/+173
The patch separates the IO function from the rt286. It is prepared to share for new chips that support the same IO function. Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-11ASoC: tas2552: Use devm_gpiod_get_optional for enable-gpioAxel Lin1-7/+4
commit ea178d1456dc ("ASoC: tas2552: Make the enable-gpio really optional") makes enable-gpio optional. devm_gpiod_get_optional() is the better function for optional gpio, so let's switch to use it. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-11ASoC: wm_adsp: Add basic debugfs entriesRichard Fitzgerald2-4/+202
This patch adds some debugfs nodes to get information about the currently running firmware. Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-11ASoC: wm_adsp: create ALSA controls from wm_adsp driverRichard Fitzgerald4-26/+24
Now that we have a codec_probe stage initialization in the wm_adsp driver, we can make the wm_adsp driver create its own ALSA controls instead of having that responsibility pushed to every codec driver. Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-11ASoC: wm_adsp: Add codec_probe and codec_remove stubsRichard Fitzgerald4-1/+31
Currently the only init function in wm_adsp is called by the codec driver early in its probe before the codec has been registered with SOC. This patch adds stubs for the codec_probe and codec_remove stages and calls them from WM5102 and WM5110 codec drivers. This allows us to hang anything that needs setup during the codec probe stage off these functions without further modification of the codec drivers. Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-10ASoC: rt5645: change gpio to gpiod APIsOder Chiou2-35/+13
Move gpio to gpio_desc and use gpiod APIs in codec driver. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-10Merge tag 'asoc-v4.2' into asoc-rt5645Mark Brown131-1280/+2807
ASoC: Updates for v4.2 The big thing this release has been Liam's addition of topology support to the core. We've also seen quite a bit of driver work and the continuation of Lars' refactoring for component support. - Support for loading ASoC topology maps from firmware, intended to be used to allow self-describing DSP firmware images to be built which can map controls added by the DSP to userspace without the kernel needing to know about individual DSP firmwares. - Lots of refactoring to avoid direct access to snd_soc_codec where it's not needed supporting future refactoring. - Big refactoring and cleanup serieses for the Wolfson ADSP and TI TAS2552 drivers. - Support for TI TAS571x power amplifiers. - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs. - Support for x86 systems with RT5650 and Qualcomm Storm.
2015-06-10ASoC: rt5645: make RT5650_TDM_CTRL_4 readableOder Chiou1-0/+1
Register RT5650_TDM_CTRL_4(0x7A) is readable and used for mixer setting. It should be added in rt5645_readable_register function. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-10ASoC: rt5645: Lock mutex in rt5645_enable_push_button_irqNicolas Boichat1-0/+6
rt5645_enable_push_button_irq uses snd_soc_dapm_*_unlocked functions, so it needs to lock the required dapm mutex. Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-08ASoC: wm8741: Allow master clock switchingSergej Sawazki1-35/+26
The set of supported sample rates depends on the master clock supplied to the codec. Allow the machine driver to set the required master clock in hw_params(). Signed-off-by: Sergej Sawazki <ce3a@gmx.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-08ASoC: tas2552: Use consistent name for 'struct tas2552_data'Peter Ujfalusi1-3/+3
In tas2552_sw_shutdown() tas_data is used while the rest of the driver uses tas2552 when dealing with the 'struct tas2552_data' Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-08ASoC: tas2552: Remove unneeded semicolonPeter Ujfalusi1-1/+1
Double semicolon was added by the following commit: ea178d1456dc ASoC: tas2552: Make the enable-gpio really optional Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-08ASoC: tas2552: Call pm_runtime_disable when the module is removedPeter Ujfalusi1-0/+1
The module can not be loaded again after it has been removed. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>