summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-07-09ASoC: Free card DAPM context on snd_soc_instantiate_card() error pathLars-Peter Clausen1-0/+1
Make sure the to free the card DAPM context if snd_soc_instantiate_card() fails, otherwise the memory allocated for the DAPM widgets is leaked. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-09ASoC: dapm: Fix kcontrol widget name memory managementLars-Peter Clausen1-6/+4
The name field of the widget template is only used inside snd_soc_dapm_new_control_unlocked() which allocates a copy for the actual widget. This means we need to free the name allocated for the template in dapm_kcontrol_data_alloc() and not the name of the actual widget in dapm_kcontrol_free(). Otherwise we get a double free on the widget name and a memory leak on the template name. Fixes: 773da9b358bf ("ASoC: dapm: Append "Autodisable" to autodisable widget names") Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-06ASoC: dapm: Lock during userspace accessLars-Peter Clausen1-0/+9
The DAPM lock must be held when accessing the DAPM graph status through sysfs or debugfs, otherwise concurrent changes to the graph can result in undefined behaviour. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2015-06-26ASoC: dapm: Fix deadlock on auto-disable mux controlsCharles Keepax1-2/+2
The commit 02aa78abec6e ("ASoC: DAPM: Add APIs to create individual DAPM controls.") added locking to the snd_soc_dapm_new_control function but did not update the call to snd_soc_dapm_new_control in the auto-disable mux code, this appears to be because the patches were sent at fairly similar times. This patch change the call in the auto-disable mux code to use the new snd_soc_dapm_new_control_unlocked function instead. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05Merge remote-tracking branches 'asoc/topic/wm8994', 'asoc/topic/wm8996' and ↵Mark Brown10-4/+902
'asoc/topic/zx' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/topology', 'asoc/topic/twl6040', ↵Mark Brown15-31/+2684
'asoc/topic/wm5100', 'asoc/topic/wm8741' and 'asoc/topic/wm8960' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/sta350', 'asoc/topic/tas2552', ↵Mark Brown11-123/+917
'asoc/topic/tas3a227e' and 'asoc/topic/tas571x' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/ssm2518', ↵Mark Brown4-6/+18
'asoc/topic/ssm2602', 'asoc/topic/ssm4567' and 'asoc/topic/sta32x' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/rt5677', 'asoc/topic/samsung' and ↵Mark Brown10-30/+213
'asoc/topic/sgtl5000' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/max98095', 'asoc/topic/omap', ↵Mark Brown24-368/+847
'asoc/topic/pxa', 'asoc/topic/qcom' and 'asoc/topic/rcar' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/gpiod-flags', ↵Mark Brown21-186/+784
'asoc/topic/gtm601', 'asoc/topic/intel', 'asoc/topic/lm3857' and 'asoc/topic/max98090' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/fsl', 'asoc/topic/fsl-sai', ↵Mark Brown9-32/+165
'asoc/topic/fsl-spdif', 'asoc/topic/fsl-ssi' and 'asoc/topic/gpio-jack' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/davinci' and 'asoc/topic/dpcm' ↵Mark Brown3-100/+153
into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/au1x', 'asoc/topic/bt-sco', ↵Mark Brown6-4/+26
'asoc/topic/cs35l32' and 'asoc/topic/da7210' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/adau1977', 'asoc/topic/adav80x', ↵Mark Brown14-559/+1001
'asoc/topic/arizona' and 'asoc/topic/atmel' into asoc-next
2015-06-05Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/ad1836', ↵Mark Brown9-55/+149
'asoc/topic/ada1977', 'asoc/topic/adau1701' and 'asoc/topic/adau17x1' into asoc-next
2015-06-05Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-nextMark Brown4-266/+847
2015-06-05Merge remote-tracking branch 'asoc/topic/dma' into asoc-nextMark Brown6-22/+16
2015-06-05Merge remote-tracking branch 'asoc/topic/dapm' into asoc-nextMark Brown111-474/+684
2015-06-05Merge remote-tracking branch 'asoc/topic/core' into asoc-nextMark Brown1-21/+23
2015-06-05Merge remote-tracking branches 'asoc/fix/wm8737', 'asoc/fix/wm8903' and ↵Mark Brown3-4/+6
'asoc/fix/wm8955' into asoc-linus
2015-06-05Merge remote-tracking branches 'asoc/fix/arizona', 'asoc/fix/fmtbit', ↵Mark Brown10-17/+22
'asoc/fix/max98925', 'asoc/fix/rcar' and 'asoc/fix/ux500' into asoc-linus
2015-06-05Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linusMark Brown1-4/+4
2015-06-05ASoC: tas2552: Configure the WCLK frequency based on the streamPeter Ujfalusi2-21/+59
Instead of hard wiring the WCLK frequency at probe time do it runtime. The hard wired 88_96KHz was not even setting the correct bits since it was defined as (1 << 6) which will change the I2S_OUT_SEL bit and will leave the amplifier configured for 8KHz. At the same time clean up and fix the CFG3 register bits. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: Add support for word length configurationPeter Ujfalusi2-0/+48
Configure the word length based on the params_width of the stream. Also configure the clock per frame value which is used when tas2552 is bus master. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: Implement startup/stop sequence as per TRMPeter Ujfalusi1-16/+28
Certain sequence need to be followed in order to have smooth power up and power down performance. Execute this sequence via DAPM_POST widget. Remove patching the RESERVED_0D register at probe time since it has to be handled every time when we stop or start the amplifier. In order to be able to execute the sequence at the correct time, the driver need to request to ignore the pmdown time. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: Correct the Speaker Driver Playback Volume (PGA_GAIN)Peter Ujfalusi1-2/+2
The last parameter for DECLARE_TLV_DB_SCALE() is to tell if the gain will be muted or not when it is set to raw 0. IN this case it is not muted. The PGA_GAIN is in 0-4 bits in the register. Fix the offset in the SOC_SINGLE_TLV() for this. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: Clean up the Digital - Analog DAPM route definitionPeter Ujfalusi1-8/+6
The strings should be: 'static const char * const tas2552_input_texts[]' SOC_DAPM_ENUM should have "Route" in place of xname and no need to have it as an array. Also align the parameters. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: Add TDM supportPeter Ujfalusi2-4/+58
TDM support is achieved using DSP transfer mode and setting a programmable offset which specifies where data begins with respect to the frame sync. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: Correct and clean up data format and BCLK/WCLK directionPeter Ujfalusi2-18/+17
Use names from the datasheet for the definitions. Correct the data format definitions since they were not correct. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: Correct dai format supportPeter Ujfalusi1-14/+15
DSP_A mode require one bit delay from the FS, DSP_B is without data delay. When checking the requested format, also match the bit and fs inversion flag along with the format since it is not possible to change inversion. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: Add support for pll and pdm source clock selectionPeter Ujfalusi1-4/+29
Instead of hard wiring the PLL_CLKIN and PDM_CLK to be sourced from BCLK add proper clock configuration via the set_dai_sysclk callback. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: tas2552: bindings header file for tas2552 codecPeter Ujfalusi1-0/+18
Binding header file for clock input selection and configuration. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-05ASoC: rt5645: Init jack_detect_work before registering irqNicolas Boichat1-2/+2
Prevents frequent panic on boot, if the irq handler rt5645_irq gets called before the workqueue rt5645_jack_detect_work is initialized. Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2015-06-04ASoC: zx: fix platform_no_drv_owner.cocci warningskbuild test robot1-1/+0
sound/soc/zte/zx296702-i2s.c:428:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: tas2552: Rename mclk parameter to pll_clkin to match with the datasheetPeter Ujfalusi1-7/+7
MCLK is one of the possible source for the pll_clkin frequency. Make this clear by renaming the variable. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: tas2552: Simplify and reverse the functionality of tas2552_sw_shutdownPeter Ujfalusi1-5/+3
The function name and parameters of: tas2552_sw_shutdown(struct tas2552_data *tas_data, int sw_shutdown) implies that if sw_shutdown is 1 we should be entering to the software shutdown mode. The code can be simplified as well within the function. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: tas2552: Simplify the tas2552_mute functionPeter Ujfalusi1-4/+2
Initialize the cfg1_reg to 0 and set the mute bit only when it is needed. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: tas2552: Correct CFG1 register bit definitionsPeter Ujfalusi2-16/+15
Remove the _MASK postfix of the bit definitions, collect the CFG1 bit definition in one place and correct the bit shifts at the same time. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: tas2552: Correct PDM configuration register bit definitionsPeter Ujfalusi2-7/+7
The PDM clock can be selected via bit0-1. PDM_DATA_ES bit is at bit2. The code were trying to select BCLK as PDM reference clock but instead it was selecting PLL and set the DATA_ES bit to 1. Selecting the PLL output as reference clock as default does make sense, but the driver should not change the PDM data edge. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: tas2552: Fix kernel crash caused by wrong kcontrol entryPeter Ujfalusi1-1/+0
SOC_DAPM_SINGLE("Playback AMP", ..) should not be under kcontrols. It causes kernel crash (NULL pointer) when the mixers are listed. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2015-06-04ASoC: tas2552: Fix kernel crash when the codec is loaded but not part of a cardPeter Ujfalusi1-0/+3
If the card is not part of any card the tas_data->codec is NULL since it is set only during snd_soc_codec_driver.probe, which is not yet called. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
2015-06-04ASoC: tas2552: Make the enable-gpio really optionalPeter Ujfalusi1-2/+6
Do not fail the probe if the enable-gpio is not specifiedbut handle deferred probe case. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: zte: Fix missing dev in devm operationMark Brown1-1/+1
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: zx: fix simple_return.cocci warningskbuild test robot1-5/+1
sound/soc/zte/zx296702-spdif.c:191:1-4: WARNING: end returns can be simpified Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: zx: fix platform_no_drv_owner.cocci warningskbuild test robot1-1/+0
sound/soc/zte/zx296702-spdif.c:361:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: dapm: fix build errors for missing snd_soc_dapm_new_control symbolLiam Girdwood1-2/+2
Fix the following error:- All error/warnings (new ones prefixed by >>): > > sound/built-in.o: In function `soc_tplg_dapm_widget_create': > >> :(.text+0x25a90): undefined reference to `snd_soc_dapm_new_control' Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04ASoC: zx: zx_i2s_dai can be statickbuild test robot1-1/+1
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04dt: Add documentation for the ZTE I2S controllerJun Nie1-0/+44
This patch adds the devicetree documentation for the ZTE zx296702 I2S audio controller. Signed-off-by: Jun Nie <jun.nie@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-04dt: Add documentation for the ZTE SPDIF controllerJun Nie1-0/+28
This patch adds the devicetree documentation for the ZTE zx296702 SPDIF audio controller. Signed-off-by: Jun Nie <jun.nie@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>