summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: Add default snd_soc_default_writable_register() callbackDimitris Papastamos2011-03-263-0/+21
| | | | | | | | | | By using struct snd_soc_reg_access for the read/write/vol attributes of the registers, we provide callbacks that automatically determine whether a given register is readable/writable or volatile. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: soc-cache: Return -ENOSYS instead of -EINVALDimitris Papastamos2011-03-261-5/+5
| | | | | | | | | | These functions fail with -EINVAL if the corresponding callbacks are not implemented. Change them to return -ENOSYS as it is more appropriate for unimplemented callbacks. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: soc-cache: Factor-out the SPI write codeDimitris Papastamos2011-03-261-96/+30
| | | | | | | | | The handling of all snd_soc_x_y_spi_write() functions is similar. Create a separate function and update all callers to use it. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: soc-cache: Factor-out the hw_read() specific codeDimitris Papastamos2011-03-261-96/+18
| | | | | | | | | The handling of all snd_soc_x_y_read() functions is similar. Factor it out into a separate function and update all callers. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: soc-cache: Factor-out the hw_write() specific codeDimitris Papastamos2011-03-261-120/+33
| | | | | | | | | | The handling of all snd_soc_x_y_write() functions is similar. Factor it out into a separate function and update all functions to use it. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Add control_type in snd_soc_codecDimitris Papastamos2011-03-261-1/+2
| | | | | | | | | | This is mainly used by the soc-cache code to easily determine the currently used underlying serial bus. Set SND_SOC_CUSTOM to 1 so we can distinguish it if it is not initialized or set. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: soc-cache: Introduce raw bulk write supportDimitris Papastamos2011-03-263-0/+49
| | | | | | | | | | | | As it has become more common to have to write firmware or similar large chunks of data to the hardware, add a function to perform raw bulk writes that bypass the cache. This only handles volatile registers as we should avoid getting out of sync with the actual cache. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: soc-cache: Factor-out the I2C read codeDimitris Papastamos2011-03-261-68/+32
| | | | | | | | | The handling of all snd_soc_x_y_read_i2c() functions is similar. Make a generic I2C read function and update all callers to use it. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: imx: remove superfluous code in imx-ssi.cWolfram Sang2011-03-261-6/+0
| | | | | | | | Checking if IMX_SSI_DMA is set and then set it again is useless. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* Merge branch 'for-2.6.39' into for-2.6.40Mark Brown2011-03-264-13/+29
|\
| * ASoC: imx: fix burstsize for DMAWolfram Sang2011-03-261-2/+2
| | | | | | | | | | | | | | | | | | | | SSI counts in words, the DMA engine in bytes. (Wrong) factor got removed in bf974a0 (ASoC i.MX: switch to new DMA api). Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
| * ASoC: imx: set watermarks for mx2-dmaWolfram Sang2011-03-262-3/+5
| | | | | | | | | | | | | | | | | | | | | | They got accidently removed by f0fba2a (ASoC: multi-component - ASoC Multi-Component Support). Reintroduce them and get rid of the superfluous defines because the fiq-driver has its own hardcoded values. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
| * ASoC: Explicitly say registerless widgets have no registerMark Brown2011-03-231-8/+8
| | | | | | | | | | | | | | | | | | This stops code that handles widgets generically from attempting to access registers for these widgets. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
| * ASoC: Support !REGULATOR build for sgtl5000Mark Brown2011-03-221-0/+14
| | | | | | | | | | | | | | The regulator is optional depending on board design. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Add WM8958 enhanced EQ supportMark Brown2011-03-224-3/+213
| | | | | | | | | | | | | | | | DSP2 in the WM8958 can be used to support an upgraded EQ for use in demanding applications. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: Add WM8958 VSS supportMark Brown2011-03-224-8/+405
| | | | | | | | | | | | | | | | | | | | With appropriate firmware the WM8958 can support Virtual Surround Sound or VSS, widening the stereo audio image for improved user experience. Enable support for this mode of operation when the appropriate firmware can be loaded at runtime. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: Refactor WM8958 DSP to support additional algorithmsMark Brown2011-03-222-53/+44
| | | | | | | | | | | | | | | | In preparation for the addition of additional WM8958 algorithms reorganise the code to make it easier to add such support later. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: Support download of WM8958 MBC firmwareMark Brown2011-03-223-0/+231
| | | | | | | | | | | | | | | | | | | | Allow userspace to supply an update to the ROM firmware. The firmware request is non-blocking so userspace can load the firmware at its leisure without delaying startup, the driver will begin using the firmware the next time MBC is started after it has been supplied. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: Mark WM8958 DSP2 registers readableMark Brown2011-03-181-0/+12
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Handle startup sequencing of WM8958 DSP2 with deferred clockingMark Brown2011-03-182-21/+17
| | | | | | | | | | | | | | | | The DSP2 startup requires that the clock be enable so if we've deferred clock startup we need to defer DSP2 startup Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Factor WM8958 DSP2 handling into separate fileMark Brown2011-03-184-303/+364
| | | | | | | | | | | | | | | | | | | | | | DSP2 on the WM8958 has a default ROM which provides a multi-band compressor for enhanced performance on mobile devices but can also support runtime download of alternative firmware. In preparation for more exploiting this functionality refactor the code to split the handling of DSP2 into a separate file. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Treat WM8958 revision A as WM8994 revision DMark Brown2011-03-181-10/+26
|/ | | | | | | The first WM8958 revision requires similar treatment. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* ASoC: Remove bogus check for register validity in debugfs writeMark Brown2011-03-181-2/+0
| | | | | | | | | | | | | Since not all registers need to be cached and the cache is entirely optional anyway we shouldn't be checking that a register is in the cached range. If the register is invalid then the actual I/O code can determine that and report an error. Similarly, the step size can and should be enforced by the lower level code if it's important. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* Merge branch 'topic/asoc' of ↵Mark Brown2011-03-181-6/+36
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 into for-2.6.39
| * Merge branch 'for-2.6.39' of ↵Takashi Iwai2011-03-161-6/+36
| |\ | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc-2.6 into topic/asoc
| | * ASoC: omap: rx51: Enable McBSP2 sidetoneJarkko Nikula2011-03-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | McBSP sidetone is needed in telephony applications. McBSP sidetone is a configurable FIR filter that forms a loopback from McBSP input to output. This patch enables the McBSP2 sidetone ALSA controls so that it can be used on Nokia RX-51/N900. Sidetone feature can be tested with following commands: (set up codec input and output paths) # Enable and configure sidetone amixer -D hw:0 set 'McBSP2 Sidetone' on amixer set -D hw:0 'McBSP2 Sidetone Channel 0' 32767 echo 32767 >/sys/devices/platform/omap-mcbsp.2/st_taps # Do not loop audio via CPU arecord -f dat >/dev/null |aplay /dev/zero Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
| | * ASoC: omap: rx51: Add FM transmitter supportJarkko Nikula2011-02-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Si4713 FM transmitter on Nokia RX-51/N900 is connected to same Line out signals of TLV320AIC34 than TPA6130 headphone amplifier. This patch adds route to transmitter and "FM Transmitter" control to keep route active when needed. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
| | * ASoC: omap: rx51: Report headset insertion instead of video out cableJarkko Nikula2011-02-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is more usefull to report headset instead of video out cable in response to jack insertion as this is more usual use-case and because now the headset feature is supported. Automatic accessory detection is not possible at the moment so most sensible static accessory type have to be used. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
| | * ASoC: omap: rx51: Add headset supportJarkko Nikula2011-02-151-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for headset microphone in Nokia RX-51/N900. The mic signal from audio jack is routed to codec A LINE1L via two switches and the mic bias is coming from codec B part. First switch is the tv-out switch that is already supported and the second switch selects between voltage detection circuit and codecs. As there is no use for voltage detection at the moment the second switch is connected statically to codecs in rx51_soc_init. Headset can be active when control "Jack Function" is set to "Headset". Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
| | * ASoC: omap: rx51: Use gpio_request_one to configure tvout_sel gpioJarkko Nikula2011-02-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Just slight cleanup to be sync with upcoming change. Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | ASoC: mini2440: Fix uda134x codec problem.Marek Belisko2011-03-113-2/+11
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASoC audio for mini2440 platform in current kenrel doesn't work. First problem is samsung_asoc_dma device is missing in initialization. Next problem is with codec. Codec is initialized but never probed because no platform_device exist for codec driver. It leads to errors during codec binding to asoc dai. Next problem was platform data which was passed from board to asoc main driver but not passed to codec when called codec_soc_probe(). Following patch should fix issues. But not sure if in correct way. Please review. Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
* | ASoC: Fix spacing in MAX8950Mark Brown2011-03-111-1/+1
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: PXA: Z2: Fix codec pin nameVasily Khoruzhick2011-03-111-1/+1
| | | | | | | | | | | | | | | | | | MONO was renamed to MONO1. Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
* | ASoC: PXA: z2: Mute internal speaker when headphones are connectedVasily Khoruzhick2011-03-111-0/+5
| | | | | | | | | | | | Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add MAX9850 codec driverChristian Glindkamp2011-03-114-0/+433
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds ASoC support for the MAX9850 codec with headphone amplifier. Supported features: - Playback - 16, 20 and 24 bit audio - 8k - 48k sample rates - DAPM Signed-off-by: Christian Glindkamp <christian.glindkamp@taskit.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ALSA: Add snd_ctl_activate_id()Takashi Iwai2011-03-112-0/+48
| | | | | | | | | | | | | | | | Added a new API function snd_ctl_activate_id() for activate / inactivate the control element dynamically. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | Merge branch 'for-2.6.38' into for-2.6.39Mark Brown2011-03-101-1/+9
|\ \
| * | ASoC: Ensure WM8958 gets all WM8994 late revision widgetsMark Brown2011-03-091-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Without this fix the driver won't instantiate properly on relevant devices. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
| * | ASoC: Fix typo in late revision WM8994 DAC2R nameMark Brown2011-03-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Without this fix the driver won't instantiate properly on relevant devices. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
* | | ASoC: Enable 192kHz sample rate for EP93xx.Alexander Sverdlin2011-03-092-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Enable 192kHz sample rate for EP93xx. Signed-off-by: Alexander Sverdlin <subaparts@yandex.ru> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | ASoC: Improve EP93xx I2S clocks management.Alexander Sverdlin2011-03-091-10/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve EP93xx I2S clocks management. Some freqs values are set not exact as they requested for MCLK and original code was not able to find divisors for SCLK and LRCLK. This code just picks up nearest value from 3 possible variants. This patch makes 44100 and 192000 rates working and fixes capture function (by selecting SCLK/LRCLK=64 where possible). All other rates should work as before. Signed-off-by: Alexander Sverdlin <subaparts@yandex.ru> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | ASoC: EDB93xx: Manage I2S rates according to datasheet for CS4271 CODEC.Alexander Sverdlin2011-03-091-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Manage I2S rates according to datasheet for CS4271 CODEC in EDB93xx machine driver. Signed-off-by: Alexander Sverdlin <subaparts@yandex.ru> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | ASoC: Manage mode and rate bits correctly for CS4271 CODEC.Alexander Sverdlin2011-03-091-30/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | Manage mode and rate bits correctly, according to datasheet in CS4271 CODEC. This is done to make capture work properly. Signed-off-by: Alexander Sverdlin <subaparts@yandex.ru> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | Merge branch 'for-2.6.38' into for-2.6.39Mark Brown2011-03-091-1/+1
|\ \ \ | |/ / | | | | | | | | | | | | Conflicts: sound/soc/codecs/wm8978.c sound/soc/soc-dapm.c
| * | ASoC: Use the correct DAPM context when cleaning up final widget setMark Brown2011-03-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now we've got multi-component we need to make sure that the DAPM context (and hence register I/O context) we use to apply the pending updates at the end of a DAPM sequence is the one we were processing rather than the one that was used to initate the state change. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
| * | ASoC: Fix broken bitfield definitions in WM8978Mark Brown2011-03-091-6/+8
| | | | | | | | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Cc: stable@kernel.org
* | | ASoC: Fix double addition of prefixes due to widget prefixingMark Brown2011-03-091-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're not only prefixing all controls, we're also prefixing the widget names in the runtime data. This causes us to add the prefix twice - once when using the widget name to generate the control name and once when adding the control. Really we shouldn't be prefixing the widget names at all, the matching code should be handing this as we always know which DAPM context a widget came from and always display the widget name in terms of a DAPM context. However, we're quite close to the merge window and that's relatively invasive. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Reported-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | | ASoC: Simplify WM9081 speaker startup by using widgets for spaker outputMark Brown2011-03-091-26/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now we have a register write minimisation code in DAPM we don't need to worry about the ordering of the enable and disable of the PGA and the output stage. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | ASoC: sgtl5000: use after free in ldo_regulator_register()Dan Carpenter2011-03-081-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | The "ldo" variable was dereferenced after free on the error path. Signed-off-by: Dan Carpenter <error27@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | ASoC: Fix prefixing of DAPM controls by factoring prefix into snd_soc_cnew()Mark Brown2011-03-083-17/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently will ignore prefixes when creating DAPM controls. Since currently all control creation goes through snd_soc_cnew() we can fix this by factoring the prefixing into that function. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
OpenPOWER on IntegriCloud