summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'asoc/topic/twl6040' into asoc-nextMark Brown2016-05-271-4/+8
|\
| * ASoC: twl6040: Select LPPLL during standbyPeter Ujfalusi2016-05-111-4/+8
| | | | | | | | | | | | | | When the codec is in standby we do not need to keep the HPPLL active. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | Merge remote-tracking branch 'asoc/topic/max98371' into asoc-nextMark Brown2016-05-274-0/+513
|\ \
| * | ASoC: max98371 Remove duplicate entry in max98371_regAxel Lin2016-05-111-1/+0
| | | | | | | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: Add max98371 codec driveranish kumar2016-04-284-0/+514
| |/ | | | | | | | | Signed-off-by: anish kumar <yesanishhere@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | Merge remote-tracking branch 'asoc/topic/tlv320aic32x4' into asoc-nextMark Brown2016-05-276-84/+369
|\ \
| * | ASoC: tlv320aic32x4: Properly implement the positive and negative pins into ↵Jeremy McDermond2016-05-131-49/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the mixers The TLV320AIC32x4 has a very flexible mixer on the inputs to the ADCs. Each mixer has an available set of available pins that can be connected to the ADC positive and negative pins via three different resistor values. This allows for configuration of differential inputs as well as doing level manipulation between sources going into the mixers. The current code only provides positive pins and I implemented the resistors in an earlier patch. It turns out that it appears to more accurately model what's happening to implement each of the pins as a MUX rather than on/off switches and a mixer. This way each pin can be set to its desired resistor value. Since there are no switches, the mixer is no longer necessary in the DAPM path. I set the DAPM paths such that the "off" position of any of the MUXes turns the path off. This should allow for any input confiuration available on the codec. Signed-off-by: Jeremy McDermond <nh6z@nh6z.net> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: tlv320aic32x4: Add additional input pinsJeremy McDermond2016-04-211-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | The input mixers support routing the IN1_R pin to the Left PGA and the IN2_L pin to the Right PGA. This patch allows for those routings. Signed-off-by: Jeremy McDermond <nh6z@nh6z.net> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: tlv320aic32x4: Implement resistors on input pinsJeremy McDermond2016-04-211-6/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The input pins of the aic3204 have resistors inline with them. The current code assumes that you want a 10k resistor inline with your inputs and implements it as a simple switch. This patch creates an enum for each pin and allows you to switch between not connected, 10k, 20k and 40k ohm values. This more closely models the acutal aic3204 part. These pin settings are documented in TI's SLAA557 pages 135 and 136 (http://www.ti.com/lit/ml/slaa557/slaa557.pdf). Signed-off-by: Jeremy McDermond <nh6z@nh6z.net> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: tlv320aic32x4: Add 96k sample rateJeremy McDermond2016-04-191-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The TLV320AIC32x4 series supports 96ksps rates in hardware. This patch adds the necessary PLL divider values and clock settings to the table to make 96ksps work. Signed-off-by: Jeremy McDermond <nh6z@nh6z.net> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: tlv320aic32x4: Add SPI supportJeremy McDermond2016-04-193-0/+84
| | | | | | | | | | | | | | | | | | | | | Add support for running the tlv32x4 control channel over SPI rather than I2C. Signed-off-by: Jeremy McDermond <nh6z@nh6z.net> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: tlv320aic32x4: Break out I2C support into separate moduleJeremy McDermond2016-04-195-53/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To prepare for abstracting adding SPI support, the I2C pieces needs to be in its own moudle. This patch moves common probe code into aic32x4_probe and common removal code into aic32x4_remove. It also creates a static regmap config structure to be copied in the I2C specific driver. Signed-off-by: Jeremy McDermond <nh6z@nh6z.net> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: tlv320aic32x4: Change name of probe functionJeremy McDermond2016-04-191-2/+2
| |/ | | | | | | | | | | | | | | | | | | The codec's probe function is named aic32x4_probe. This is going to conflict with later work to implement SPI support and separate out I2S into its own file. In line with other drivers in the tree, this function is renamed to aic32x4_codec_probe instead. Signed-off-by: Jeremy McDermond <nh6z@nh6z.net> Signed-off-by: Mark Brown <broonie@kernel.org>
| |
| \
| \
| \
*---. \ Merge remote-tracking branches 'asoc/fix/ak4642', 'asoc/fix/ep93xx', ↵Mark Brown2016-05-253-3/+5
|\ \ \ \ | | | | | | | | | | | | | | | 'asoc/fix/kirkwood' and 'asoc/fix/twl6040' into asoc-linus
| | | * | ASoC: twl6040: Disconnect AUX output pads on digital mutePeter Ujfalusi2016-05-181-2/+2
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disconnect also the path to AUXL from the HF path during digital_mute to avoid pop noise leakage to Line-out pads. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | ASoC: ak4642: Enable cache usage to fix crashes on resumeMark Brown2016-05-181-0/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ak4642 driver is using a regmap cache sync to restore the configuration of the chip on resume but (as Peter observed) does not actually define a register cache which means that the resume is never going to work and we trigger asserts in regmap. Fix this by enabling caching. Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Reported-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
| * | ASoC: hdac_hdmi: Remove the unused 'timeout' variableFabio Estevam2016-05-171-1/+0
|/ / | | | | | | | | | | | | | | | | | | | | | | Commit b2047e996cd88d3 ("ASoC: hdac_hdmi: add link management") introuduced the following build warning: sound/soc/codecs/hdac_hdmi.c:1721:16: warning: unused variable 'timeout' [-Wunused-variable] Remove the unused 'timeout' variable. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | Merge remote-tracking branch 'asoc/topic/hdmi' into asoc-nextMark Brown2016-05-134-9/+594
|\ \
| * | ASoC: hdac_hdmi: Potential NULL deref in hdac_hdmi_get_spk_alloc()Dan Carpenter2016-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We intended || here instead of &&. The original code potentially leads to a NULL dereference. Fixes: 2889099eb8cd ('ASoC: hdac_hdmi: Register chmap controls and ops') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewd-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Acked-by: Vinod Koul <vinod.koul@intel.com> Tested-by: Sachin Mokashi <sachinx.mokashi@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: hdac_hdmi: Register chmap controls and opsSubhransu S. Prusty2016-04-281-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | With this patch, chmap controls are created and user space can set the channel map. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: hdac_hdmi: Add multichannel supportSubhransu S. Prusty2016-04-281-9/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To support multichannel hdac hdmi driver registers with HDA channel map framework. Channel count and channel slot verbs are programmed by using the chmap helpers/ops. The channel allocation is then programmed in the audio infoframe as per CEA spec. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: hdac_hdmi: parse eld for channel map capabilitySubhransu S. Prusty2016-04-281-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch parses ELD speaker allocation data block to find sink's chmap capability. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: hdmi-codec: Add ELD controlPhilipp Zabel2016-04-221-2/+0
| | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: hdmi-codec: Add ELD controlPhilipp Zabel2016-04-211-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ALSA doesn't know about all the different compressed audio formats, so there is no interface to let userspace enumerate the formats that are supported by the connected sink. Exporting the raw ELD bytes to userspace allows an application to select the appropriate audio format depending on the current capabilities of the connected HDMI sink device. Usually userspace then just pretends to ALSA that the data is in one of the raw 16-bit PCM audio formats and relies on the IEC controls to tell the sink how to interpret the data. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Reviewed-by: Jyri Sarha <jsarha@ti.com> Tested-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: hdmi-codec: Add hdmi-codec for external HDMI-encodersJyri Sarha2016-04-183-0/+404
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hdmi-codec is a platform device driver to be registered from drivers of external HDMI encoders with I2S and/or spdif interface. The driver in turn registers an ASoC codec for the HDMI encoder's audio functionality. The structures and definitions in the API header are mostly redundant copies of similar structures in ASoC headers. This is on purpose to avoid direct dependencies to ASoC structures in video side driver. Signed-off-by: Jyri Sarha <jsarha@ti.com> Acked-by: Arnaud Pouliquen <arnaud.pouliquen@st.com> Acked-by: PC Liao <pc.liao@mediatek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| |
| \
*-. \ Merge remote-tracking branches 'asoc/topic/es8328', 'asoc/topic/find-dai', ↵Mark Brown2016-05-132-51/+166
|\ \ \ | | |/ | | | | | | 'asoc/topic/fsl', 'asoc/topic/fsl-sai' and 'asoc/topic/fsl-ssi' into asoc-next
| * | ASoC: es8328: Set symmetric ratesJohn Keeping2016-05-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although the ES8328 does support different rates for capture and playback, only very limited combinations are supported (8kHz and 48kHz or 8.0182kHz and 44.1kHz) with most rates required to be symmetric. Instead of adding a lot of complexity for little gain, let's enforce symmetric rates. Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: es8328: Support more sample ratesJohn Keeping2016-05-101-35/+100
| | | | | | | | | | | | | | | Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: es8328: Support more sample formatsJohn Keeping2016-05-102-16/+31
| | | | | | | | | | | | | | | | | | | | | | | | The values are the same for the DAC and ADC so remove the specific values and use values with shifts. Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: es8328: Move sample size setup to hw_paramsJohn Keeping2016-05-102-5/+18
| | | | | | | | | | | | | | | | | | | | | | | | This is a refactor in preparation for supporting more sample sizes which has no functional change. Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: es8328: Use single R/W for regmapJohn Keeping2016-05-101-0/+1
| | | | | | | | | | | | | | | | | | | | | The chip only supports single reads and writes. Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: es8328: Fix mask for VMIDSELJohn Keeping2016-05-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is always used along with ES8328_CONTROL1_ENREF so there is no change in the generated code as a result of this fix. Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: es8328: Fix ADC format setupJohn Keeping2016-05-102-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ADCCONTROL4 and DACCONTROL1 registers are similar but not identical, with the DACCONTROL1 having each field starting one bit higher than ADCCONTROL4. Instead of introducing a magic shift, add new constants for the values in ADCCONTROL4 and use a second variable to setup the ADC. Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: es8328: Move clock setup to hw_paramsJohn Keeping2016-05-101-15/+16
| |/ | | | | | | | | | | | | | | | | This ensures that the clock is setup after its frequency has been set; the existing code in set_dai_fmt may be called before the clock rate has been set resulting in an incorrect configuration. Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| |
| \
| \
| \
| \
| \
| \
| \
*-------. \ Merge remote-tracking branches 'asoc/topic/bcm2835', 'asoc/topic/cs42l56', ↵Mark Brown2016-05-137-83/+164
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | 'asoc/topic/da7213', 'asoc/topic/da7218' and 'asoc/topic/da7219' into asoc-next
| | | | | * ASoC: da7129: Add missing include of acpi.hMark Brown2016-05-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | | | * ASoC: da7219: Add initial ACPI id for deviceAdam Thomson2016-05-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds "DLGS7219" ACPI id for the codec. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Tested-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | | | * ASoC: da7219: Disallow unsupported 32KHz clock setting in set_dai_sysclk()Adam Thomson2016-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PLL function was updated to disallow 32KHz in commit 501f72e9c520 ("ASoC: da7219: Remove support for 32KHz PLL mode"), but set_dai_sysclk() was missed and still permits it. This patch resolves that discrepancy. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | | | * ASoC: da7219: Update PLL ranges and dividers to improve lockingAdam Thomson2016-04-192-24/+24
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The expected MCLK frequency ranges and the associated dividers are updated to improve PLL locking in a corner scenario, with low MCLK frequency near an input divider change boundary. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | | * ASoC: da7218: Update PLL ranges and dividers to improve lockingAdam Thomson2016-04-222-25/+28
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The expected MCLK frequency ranges and the associated dividers are updated to improve PLL locking in a corner scenario, with low MCLK frequency near an input divider change boundary. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | * ASoC: da7213: Allow PLL disable/bypass when using 32KHz sysclkAdam Thomson2016-05-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current checking for PLL 32KHz mode fails in driver code when bypassing the PLL. This is due to an incorrect check of PLL source type when 32KHz clock is provided. Removal of this check resolves the issue. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | * ASoC: da7213: Update PLL ranges to improve locking at frequency boundaryAdam Thomson2016-05-102-27/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update changes the dividers used for ranges of input MCLK frequencies, to improve PLL locking for a corner case when at edge of MCLK frequency input divider range. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | * ASoC: da7213: Default PC counter to free-running when DAI disabledAdam Thomson2016-05-102-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently PC counter is always synchronised to DAI which means that when the DAI is disabled, features such as ALC calibration cannot be executed successfully. This patch makes sure that when the DAI is disabled, PC counter is set to free-running. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | * ASoC: da7213: Add checking of SRM lock status before enabling DAIAdam Thomson2016-05-102-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the codec is DAI clk slave, and the SRM feature of the PLL is being used, the enabling of the DAI should occur only after the PLL has locked to the incoming WCLK. This update adds checking to the the DAI widget event, so it waits for SRM to lock. There is also a timeout if that lock doesn't occur within a given time. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | * ASoC: da7213: Add DAI DAPM event to control DAI clocksAdam Thomson2016-05-102-5/+32
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | Currently, when Codec is I2S master DAI clocks are continuously generated even if all audio streams have stopped. To improve efficiency, control of the DAI clocks for master mode have been moved to a DAPM widget event so they're only enabled as required. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: cs42l56: Use IS_ENABLED() instead of checking for built-in or moduleJavier Martinez Canillas2016-04-261-1/+1
| |/ | | | | | | | | | | | | | | The IS_ENABLED() macro checks if a Kconfig symbol has been enabled either built-in or as a module, use that macro instead of open coding the same. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| |
| \
| \
| \
*---. \ Merge remote-tracking branches 'asoc/topic/adsp', 'asoc/topic/ak4624', ↵Mark Brown2016-05-137-90/+295
|\ \ \ \ | | | |/ | | | | | | | | 'asoc/topic/atmel' and 'asoc/topic/au1x' into asoc-next
| | * | ASoC: ak4642: Remove CLK_IS_ROOTStephen Boyd2016-04-201-3/+1
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | This flag is a no-op now (see commit 47b0eeb3dc8a "clk: Deprecate CLK_IS_ROOT", 2016-02-02) so remove it. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: wm_adsp: Detach compressed stream on freeCharles Keepax2016-05-041-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If someone powers down the DSP core (through routing changes say) whilst a compressed record is in progress we can end up using a freed pointer to the buffer object. When a compressed audio stream is triggered we attach it to a buffer on a physical DSP. This patch adds a detach of the buffer from the stream when the stream is freed or when the DSP is powered down which avoids the situation where we use a buffer when it is no longer valid. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: wm_adsp: Move compr_attach/attached functionsCharles Keepax2016-05-041-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | Move wm_adsp_compr_attach and wm_adsp_compr_attached functions so they will stay logically grouped with similar functions after some additional changes. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
OpenPOWER on IntegriCloud