summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: Staticise sst_platform_daiAxel Lin2011-09-271-1/+1
| | | | | | | It is not used outside this driver so no need to make the symbol global. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Remove unused fields in struct mfld_mc_privateAxel Lin2011-09-271-2/+0
| | | | | | | | Both *socdev and *codec of struct mfld_mc_private are not being used in this driver, remove it. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* Merge branch 'for-3.1' into for-3.2Mark Brown2011-09-271-1/+2
|\
| * ASoC: ssm2602: Re-enable oscillator after suspendLars-Peter Clausen2011-09-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Currently the the internal oscillator is powered down when entering BIAS_OFF state, but not re-enabled when going back to BIAS_STANDBY. As a result the CODEC will stop working after suspend if the internal oscillator is used to generate the sysclock signal. This patch fixes it by clearing the appropriate bit in the power down register when the CODEC is re-enabled. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
* | ASoC: twl6040: No need to change delay during HF rampPeter Ujfalusi2011-09-261-10/+2
| | | | | | | | | | | | | | | | | | | | | | The Handsfree gain have 2dB steps all the way, so there is no reason to have different delays as we approaching to the end of the scale. The comment was also wrong, since we have 0dB at 0x3 raw, at 16 the gain is -26dB. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: No need to change delay during HS rampPeter Ujfalusi2011-09-261-10/+2
| | | | | | | | | | | | | | | | | | | | | | The Headset gain have 2dB steps all the way, so there is no reason to have different delays as we approaching to the end of the scale. The comment was also wrong, since we have 0dB at 0x0 raw at one end of the range, and not in the middle. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Move the delayed_work for HS detection under twl6040_jack_dataPeter Ujfalusi2011-09-261-4/+4
| | | | | | | | | | | | | | | | The delayed_work named 'delayed_work' is for the headset detection, so move it to the twl6040_jack_data struct. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Move delayed_work struct inside twl6040_output for HS/HFPeter Ujfalusi2011-09-261-8/+7
| | | | | | | | | | | | | | | | | | The delayed works for the output can be moved within the twl6040_output struct (from the twl6040_data) to be better organized. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Combine the custom volsw get, and put functionsPeter Ujfalusi2011-09-261-64/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We can manage with one set of get, and put function for the gain controls we need to handle with custom code due to the shadowing of the register. For both get, and put function we can call decide based on the mc->rreg value, if we need to call the volsw, or the vlosw_2r variant (in 2r case rreg is not 0). Handling of the shadow values are the same for both type of controls. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Rename pga_event to out_drv_eventPeter Ujfalusi2011-09-261-6/+5
| | | | | | | | | | | | | | | | This event handler is used with the OUT_DRV widgets. The name pga_event was misleading. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: sdp4430: Configure McPDM offset cancellationPeter Ujfalusi2011-09-261-1/+9
| | | | | | | | | | | | | | | | Based on the values from twl6040 codec (HSOTRIM L/R) we can configure the McPDM offset cancellation. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: omap-mcpdm: API to configure offset cancellationPeter Ujfalusi2011-09-262-0/+37
| | | | | | | | | | | | | | | | | | | | The offset cancellation values can be different from board to board, even on the same HW platform. Provide a way for the machine drivers to configure the McPDM offset cancellation. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Function to fetch the TRIM valuesPeter Ujfalusi2011-09-262-0/+22
| | | | | | | | | | | | | | Provide API to fetch the TRIM values (for machine drivers) Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Read the TRIM values from the chipPeter Ujfalusi2011-09-261-0/+7
| | | | | | | | | | | | | | Update the reg_cache with values from chip regarding to TRIM. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Drop exporting ad1980_daiAxel Lin2011-09-261-1/+0
| | | | | | | | | | | | | | | | ad1980_dai is not used outside this driver, thus drop exporting it. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Drop exporting sn95031_get_mic_biasAxel Lin2011-09-261-1/+0
| | | | | | | | | | | | | | | | | | sn95031_get_mic_bias() is not used outside this driver and it is a static function now. Thus drop exporting sn95031_get_mic_bias. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: omap-mcbsp: Fix compile time warning about ambiguous ‘else’Peter Ujfalusi2011-09-261-1/+2
| | | | | | | | | | | | | | | | | | Fixes the following compile time warning: omap-mcbsp.c:519: warning: suggest explicit braces to avoid ambiguous ‘else’ Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Set idle_bias_off for WM1250 EV1Mark Brown2011-09-231-0/+1
| | | | | | | | | | | | | | The WM1250 EV1 is functionally digital in a system (the analogue I/O is either ground referenced or always powered) so flag it as idle_bias_off. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add platform data for WM1250 EV1 GPIOsMark Brown2011-09-232-3/+145
| | | | | | | | | | | | | | | | The WM1250 EV1 has some GPIOs which can be used to control the behaviour at runtime. Request them all if supplied and add a set_bias_level() function to start and stop the clocks. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Don't force bias on ground referenced devicesMark Brown2011-09-231-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we force all devices in the system to be at the same bias level. This is due to concerns about power or pop/click impacts from either ramping VMID or mismatching VMID on the analogue I/O lines between connected devices but does mean we power devices up more often than we really need to. If a device flags idle_bias_off this will usually mean that it's either all digital or ground referenced (in which case the idle and powered bias levels are identical) so this concern does not apply and we can save some power by leaving it off when not needed itself. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add DMIC control to Speyside WM8962 boardMark Brown2011-09-231-0/+1
| | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add support for on-board analogue microphones on Speyside WM8962Mark Brown2011-09-231-0/+5
| | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Convert WM8962 MICBIAS to a supply widgetMark Brown2011-09-232-6/+6
| | | | | | | | | | | | | | | | A supply widget is generally clearer than a MICBIAS widget and a mic bias is just a type of supply so use a supply widget for the MICBIAS. This also avoids confusion with the routing when connected to multiple inputs. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Rename WM8962 DMIC widget to DMIC_ENAMark Brown2011-09-231-4/+4
| | | | | | | | | | | | Matches the register name and avoids confusion with board widgets. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Support a wider range of sample rates on Speyside WM8962Mark Brown2011-09-231-2/+6
| | | | | | | | | | | | | | | | As we've only got one audio interface and it is symmetric we can just set SYSCLK based on the sample rate requested by the application layer. Provide a default so bypass paths work before audio playback. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add missed free_irq in wm5100_remove and wm5100_probe error pathAxel Lin2011-09-231-0/+5
| | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Remove unneeded mutex_init in wl1273_probe()Axel Lin2011-09-231-1/+0
| | | | | | | | | | | | | | | | | | Since f0fba2ad "ASoC: multi-component - ASoC Multi-Component Support", snd_soc_register_codec() now does all the codec list and mutex init. Thus don't need to call mutex_init(&codec->mutex) in wl1273_probe() any more. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Staticize sn95031_daisAxel Lin2011-09-231-1/+1
| | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Staticize rt5631_daiAxel Lin2011-09-231-1/+1
| | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: No need to read the INTID registerPeter Ujfalusi2011-09-231-7/+2
| | | | | | | | | | | | | | | | | | | | | | Since our irq handler has been called, it is granted, that the reason was either PLUGINT, or UNPLUGINT. The INTID register has been checked in the MFD part of twl6040 driver (twl6040-irq.c). We have no reason to read from chip again here. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: omap-mcpdm: Correct the supported number of channelsPeter Ujfalusi2011-09-231-6/+8
| | | | | | | | | | | | | | | | OMAP4 McPDM supports 5 downlink (playback), and 3 uplink (capture) channels. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | Merge branch 'for-3.1' into for-3.2Mark Brown2011-09-231-0/+6
|\ \ | |/
| * ASoC: omap-mcbsp: Do not attempt to change DAI sysclk if stream is activeJarkko Nikula2011-09-231-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attempt to change McBSP CLKS source while another stream is active is not safe after commit d135865 ("OMAP: McBSP: implement functional clock switching via clock framework") in 2.6.37. CLKS parent clock switching using clock framework have to idle the McBSP before switching and then activate it again. This short break can cause a DMA transaction error to already running stream which halts and recovers only by closing and restarting the stream. This goes more fatal after commit e2fa61d ("OMAP3: l3: Introduce l3-interconnect error handling driver") in 2.6.39 where l3 driver detects a severe timeout error and does BUG_ON(). Fix this by not changing any configuration in omap_mcbsp_dai_set_dai_sysclk if the McBSP is already active. This test should have been here just from the beginning anyway. Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
* | ASoC: Add Kconfig and Makefile entries for rt5631 codecAxel Lin2011-09-222-0/+6
| | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add missed BCLK rate to WM5100 driverMark Brown2011-09-221-0/+1
| | | | | | | | | | Reported-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add another DAPM stat for neighbour checksMark Brown2011-09-223-2/+10
| | | | | | | | | | | | | | | | The number of times we look at a potentially connected neighbour is just as important as the number of times we actually recurse into looking at that neighbour so also collect that statistic. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Dynamically manage DBVDD2 and DBVDD3 on WM5100Mark Brown2011-09-221-1/+81
| | | | | | | | | | | | | | Allow the DBVDD2 and DBVDD3 rails to be powered down when idle, helping fully power down connected devices when idle. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC/MFD: twl6040: Combine bit definitions for Headset control registersPeter Ujfalusi2011-09-222-9/+4
| | | | | | | | | | | | | | | | | | Use one set of defines for the HS bits, since they are identical in both control register. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040/sdp4430: Change legacy DAI namePeter Ujfalusi2011-09-222-2/+2
| | | | | | | | | | | | | | | | | | Change the legacy DAI name from "twl6040-hifi" to "twl6040-legacy" to be more intuitive. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Support for AUX L/R outputPeter Ujfalusi2011-09-221-0/+18
| | | | | | | | | | | | | | | | AUX L/R outputs can be driver from the Handsfree PGA output. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Use consistent names for Headset pathPeter Ujfalusi2011-09-221-12/+12
| | | | | | | | | | | | | | | | | | | | | | Use "Headset XYZ" for user visible controls, while the internal DAPM widgets can use "HS XYZ". In this way we can group the Headset related controls in UI (alsamixer for example). Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Use consistent names for Handsfree pathPeter Ujfalusi2011-09-221-16/+16
| | | | | | | | | | | | | | | | | | | | | | Use "Handsfree XYZ" for user visible controls, while the internal DAPM widgets can use "HF XYZ". In this way we can group the Handsfree related controls in UI (alsamixer for example). Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Earphone path correctionPeter Ujfalusi2011-09-221-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the DAPM routing for the earphone path. Convert the DAPM_SWITCH_E to DAPM_OUT_DRV_E, so we can have correct power up, and down sequence for EP. Introduce mute control (Earphone Playback Switch) for users to enable/disable the EP path. Note: the EP does not have it's own dedicated DAC. EP is connected to HSL DAC. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Introduce SW only shadow registerPeter Ujfalusi2011-09-222-5/+16
| | | | | | | | | | | | | | | | | | Software only shadow register to be used by the driver. For example Earpiece path will need this shadow register. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Remove strings "NULL" from DAPM routePeter Ujfalusi2011-09-221-4/+4
| | | | | | | | | | | | | | | | Replace the string with plain NULL. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Fix comments for register namesPeter Ujfalusi2011-09-221-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the register name strings in the comments for the twl6040_reg table, so it is easier to search for specific register. This is cosmetic change. Before we had for example: TWL6040_REG_HSLCTL as register definition. At the register table we had: TWL6040_HSLCTL Searching for TWL6040_HSLCTL resulted no hits. While if we look for REG_HSLCTL, we can find the places the register has been used. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Lower the power on gain values at startupPeter Ujfalusi2011-09-221-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The default gains on outputs/inputs are set to 0dB. This is fixing the pop noise issue at the first playback, which caused by the wrong starting point of the ramp code. The ramp code for the outputs expects the gains to be in their lowest configuration in order to be effective. After the playback stops, the ramp code takes care of ramping down the gains to their minimum. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | Merge branch 'peter/topic/for-mark/mcpdm_for-3.2' of ↵Mark Brown2011-09-229-765/+472
|\ \ | | | | | | | | | git://gitorious.org/omap-audio/linux-audio into for-3.2
| * | ASoC: omap-mcpdm: Replace legacy driverMisael Lopez Cruz2011-09-226-734/+434
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reasons for the replacement: The current driver for McPDM was developed to support the legacy mode only. In preparation for the ABE support the current driver stack need the be replaced. The new driver is much simpler, easier to extend, and it also fixes some of the issues with the old stack. Main changes: - single file for omap-mcpdm (mcpdm.c/h removed) - Define names for registers, bits cleaned up, prefixed - Full-duplex audio operation (arecord | aplay) has been fixed - Less code McPDM need to be turned off after all streams has been stopped. This might cause pop noise on the output, if the codec's DAC is still powered at this time. Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com> Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: OMAP4: McPDM: Convert to hwmod/omap_devicePeter Ujfalusi2011-09-224-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to probe, and operate correctly, the OMAP McPDM driver needs to be converted to use hwmod. The device name has been changed to probe the driver. Replace the clk_* with pm_runtime_* calls to manage the clocks correctly. Missing request_mem_region/release_mem_region added. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
OpenPOWER on IntegriCloud