aboutsummaryrefslogtreecommitdiffstats
path: root/sound
Commit message (Collapse)AuthorAgeFilesLines
* S5PC11X: SOUND: fix pop noise issueUK KIM2011-11-173-44/+88
| | | | | | | | | if clock and interface is set on status of amp opened, pop noise occurs. codec driver works by PCM Stream. strange value name was changed from old base code. Signed-off-by: UK KIM <w0806.kim@samsung.com> Change-Id: Ia88b6b79fcc82900bb5411bf9bc786afe6b01f42
* S5PC11X: SOUND: Change audio codec driver to use func ptr for mic biasMike J. Chen2011-11-172-32/+32
| | | | | | | | | | | | | | In current Herring hw, the gpio used for mic bias is shared between the audio driver for the main mic bias, and the headset jack driver for headset mic bias. This will be split in Rev1.0 HW, but to support both, change the audio driver to use a function ptr so we can customize handling based on board rev in the board file. Also cleaned up problems in error handling in _probe, and get rid of global pdata. Change-Id: Ic0b7f656a72cd3e9544bd358e2c949c302912a0b Signed-off-by: Mike J. Chen <mjchen@sta.samsung.com>
* S5PC11X: SOUND: update codec gain values.UK KIM2011-11-172-433/+698
| | | | | | | update codec gain values(mp3 playback, voicecall receiver) Signed-off-by: UK KIM <w0806.kim@samsung.com> Change-Id: I656bc94e8e57b0c5f830d89005eb4a644a25a509
* S5PC11X: SOUND: rename ALSA controller name for CaptureUK KIM2011-11-171-1/+1
| | | | | Signed-off-by: UK KIM <w0806.kim@samsung.com> Change-Id: I630bbd68cfd1000725777f71496bf9e2bb322a7f
* S5PC11X: SOUND: delay I2C-SCL waiting time after codec's VMID up.UK KIM2011-11-171-3/+2
| | | | | | | According to Wolfson's guide, i2c operation must be enabled after codec VMID is stable up. Signed-off-by: UK KIM <w0806.kim@samsung.com> Change-Id: Ic6b7e9d55c74c8545e760b831222ff0e0227d98f
* S5PC11X: SOUND: modified to support BT recording.UK KIM2011-11-171-1/+1
| | | | | | | added BT recording Path Signed-off-by: UK KIM <w0806.kim@samsung.com> Change-Id: I57fde42fa610d1a761ef6e49cb00da80c6703c18
* S5PC110: SOUND: added new driver files for google's mainline branchUK KIM2011-11-174-1479/+2799
| | | | | | | | | added wm8994_s5pc110.c wm8994_s5pc110.h instead of wm8994.c and wm8994.h change header name included modify source codes accroding to linux coding style. Signed-off-by: UK KIM <w0806.kim@samsung.com> Change-Id: I8dc8b103db6bc1d12162982c42b3e35377c9aeea
* S5PC110: SOUND: code cleanup of codec driver fileUK KIM2011-11-171-1549/+1534
| | | | | | | | just modify wm8994_herring.c file according to linux coding style Signed-off-by: UK KIM <w0806.kim@samsung.com> Change-Id: I899a9cffd56ff752931f2ea3f60089f9bbbce810
* Removed unused Kcontrol function.Sayanta Pattanayak2011-11-172-39/+0
| | | | Change-Id: I75ef3e8ffc696200b69736122a7c023e3ff0fb5a
* S5PC110: I2S: Removed redundant logs.Sayanta Pattanayak2011-11-171-7/+0
|
* Configuration for Internal DMA operation and LP audio operation is seperated.Sayanta Pattanayak2011-11-173-20/+20
| | | | | IIS can operate with internal DMA without LP audio mode. cpu-dai name changed to S5P series.
* S5PC110: audio: macro renamingSayanta Pattanayak2011-11-172-10/+10
| | | | | | herring_defconfig : Macro renamed for better compatibility in S5P series. wm899.c,wm8994_herring.c,herring_wm8994.c: Modified to support renamed macros. Kconfig: Macro renamed for compatibility in S5P series.
* S5PC110:I2S: Apply the modified DMA channel nameJaehun Jung2011-11-171-1/+1
|
* Added IIS0 driver.Sayanta Pattanayak2011-11-1613-213/+14720
| | | | | | | | | IIS0 operating with internal DMA with single buffer as External DMA gives some error. WM8994 codec driver is added from SLSI earlier code base(29/32 kernel, used for S1/P1). Reverts files to 2.6.35 versions Change-Id: Id1cc5b862217b629adaae20943a98fd86a342385
* Merge commit 'v3.0.8' into android-3.0Colin Cross2011-10-2729-160/+185
|\
| * ALSA: hda - Add position_fix quirk for Dell Inspiron 1010Takashi Iwai2011-10-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 051a8cb6550d917225ead1cd008b5966350f6d53 upstream. The previous fix for the position-buffer check gives yet another regression on a Dell laptop. The safest fix right now is to add a static quirk for this device (and better to apply it for stable kernels too). Reported-by: Éric Piel <Eric.Piel@tremplin-utc.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: HDA: conexant support for Lenovo T520/W520Daniel Suchy2011-10-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit ca201c096269ee2d40037fea96a59fd0695888c4 upstream. This is patch for Conexant codec of Intel HDA driver, adding new quirk for Lenovo Thinkpad T520 and W520. Conexant autodetection works fine for T520 (similar subsystem ID is used also in W520 model) and detects more mixer features compared to generic (fallback) Lenovo quirk with hardcoded options in Conexant codec. Patch was activelly tested with Linux 3.0.4, 3.0.6 and 3.0.7 without any problems. Signed-off-by: Daniel Suchy <danny@danysek.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: Fix setting update bits for WM8753_LADC and WM8753_RADCAxel Lin2011-10-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 21d17dd2a377ba894f26989915eb3c6e427a3656 upstream. Current code set update bits for WM8753_LDAC and WM8753_RDAC twice, but missed setting update bits for WM8753_LADC and WM8753_RADC. I think it is a copy-paste bug in commit 776065 "ASoC: codecs: wm8753: Fix register cache incoherency". Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: use a valid device for dev_err() in ZyloniteArnd Bergmann2011-10-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit eff919ac0fc7565e71ffa35657c333dd8cdc0520 upstream. A recent conversion has introduced references to &pdev->dev, which does not actually exist in all the contexts it's used in. Replace this with card->dev where necessary, in order to let the driver build again. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: HDA: Add support for IDT 92HD93David Henningsson2011-10-031-0/+1
| | | | | | | | | | | | | | | | | | | | commit 46724c2e023cb7ba5cd5000dee6481f0a15ebed9 upstream. BugLink: http://bugs.launchpad.net/bugs/854468 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: usb-audio: Check for possible chip NULL pointer before clearing ↵Thomas Pfaff2011-10-031-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | probing flag commit 61a6a108d15213f5ee06332e1e7766d3860e4453 upstream. Before clearing the probing flag in the error exit path, check that the chip pointer is not NULL. Signed-off-by: Thomas Pfaff <tpfaff@gmx.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: HDA: No power nids on 92HD93David Henningsson2011-10-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | commit 6656b15d675c9c6a049db48d50994b3cd4e76bd6 upstream. This patch is necessary to make internal speakers work on this chip. BugLink: http://bugs.launchpad.net/bugs/854468 Tested-by: Alex Wolfson <alex.wolfson@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: hda/realtek - Avoid bogus HP-pin assignmentTakashi Iwai2011-10-031-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 5fe6e0151dbd969f5fbcd94d05c968b76d76952b upstream. When the headphone pin is assigned as primary output to line_out_pins[], the automatic HP-pin assignment by ASSID must be suppressed. Otherwise a wrong pin might be assigned to the headphone and breaks the auto-mute. Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: ssm2602: Re-enable oscillator after suspendLars-Peter Clausen2011-10-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 9058020cd9ae3423d6fe7de591698dc96b6701aa upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: omap-mcbsp: Do not attempt to change DAI sysclk if stream is activeJarkko Nikula2011-10-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 34c869855a28af3c6031d29e2267b5a3cce0d67d upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: fm801: Gracefully handle failure of tuner auto-detectBen Hutchings2011-10-031-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit c37279b92aba2893578f61076cd2eef5c5fa0e99 upstream. Commit 9676001559fce06e37c7dc230ab275f605556176 ("ALSA: fm801: add error handling if auto-detect fails") seems to break systems that were previously working without a tuner. As a bonus, this should fix init and cleanup for the case where the tuner is explicitly disabled. Reported-and-tested-by: Hor Jiun Shyong <jiunshyong@gmail.com> References: http://bugs.debian.org/641946 Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: fm801: Fix double free in case of error in tuner detectionBen Hutchings2011-10-031-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 2ba34e43ba0469086d1ff81c13a9aa9070c1a0e1 upstream. Commit 9676001559fce06e37c7dc230ab275f605556176 ("ALSA: fm801: add error handling if auto-detect fails") added incorrect error handling. Once we have successfully called snd_device_new(), the cleanup function fm801_free() will automatically be called by snd_card_free() and we must *not* also call fm801_free() directly. Reported-by: Hor Jiun Shyong <jiunshyong@gmail.com> References: http://bugs.debian.org/641946 Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: usb-audio - clear chip->probing on error exitThomas Pfaff2011-10-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 362e4e49abe53e89d87455dfcd7c1bbaf08a839d upstream. The Terratec Aureon 5.1 USB sound card support is broken since kernel 2.6.39. 2.6.39 introduced power management support for USB sound cards that added a probing flag in struct snd_usb_audio. During the probe of the card it gives following error message : usb 7-2: new full speed USB device number 2 using uhci_hcd cannot find UAC_HEADER snd-usb-audio: probe of 7-2:1.3 failed with error -5 input: USB Audio as /devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.3/input/input6 generic-usb 0003:0CCD:0028.0001: input: USB HID v1.00 Device [USB Audio] on usb-0000:00:1d.1-2/input3 I can not comment about that "cannot find UAC_HEADER" error, but until 2.6.38 the card worked anyway. With 2.6.39 chip->probing remains 1 on error exit, and any later ioctl stops in snd_usb_autoresume with -ENODEV. Signed-off-by: Thomas Pfaff <tpfaff@gmx.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: hda/realtek - Fix auto-mute with HP+LO configurationTakashi Iwai2011-10-031-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 8974bd51a77824d91010176f9a5da28513c2e1f5 upstream. When the system has only the headphone and the line-out jacks without speakers, the current auto-mute code doesn't work. It's because the spec->automute_lines flag is wrongly referred in update_speakers(). This flag must be meaningless when spec->automute_hp_lo isn't set, thus they should be always coupled. The patch fixes the problem and add a comment to indicate the relationship briefly. BugLink: http://bugs.launchpad.net/bugs/851697 Reported-by: David Henningsson <david.henningsson@canonical.com> Tested-By: Jayne Han <jayne.han@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: pcm - fix race condition in wait_for_avail()Arjan van de Ven2011-10-031-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 763437a9e7737535b2fc72175ad4974048769be6 upstream. wait_for_avail() in pcm_lib.c has a race in it (observed in practice by an Intel validation group). The function is supposed to return once space in the buffer has become available, or if some timeout happens. The entity that creates space (irq handler of sound driver and some such) will do a wake up on a waitqueue that this function registers for. However there are two races in the existing code 1) If space became available between the caller noticing there was no space and this function actually sleeping, the wakeup is missed and the timeout condition will happen instead 2) If a wakeup happened but not sufficient space became available, the code will loop again and wait for more space. However, if the second wake comes in prior to hitting the schedule_timeout_interruptible(), it will be missed, and potentially you'll wait out until the timeout happens. The fix consists of using more careful setting of the current state (so that if a wakeup happens in the main loop window, the schedule_timeout() falls through) and by checking for available space prior to going into the schedule_timeout() loop, but after being on the waitqueue and having the state set to interruptible. [tiwai: the following changes have been added to Arjan's original patch: - merged akpm's fix for waitqueue adding order into a single patch - reduction of duplicated code of avail check ] Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: HDA: Cirrus - fix "Surround Speaker" volume control nameDavid Henningsson2011-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | commit 2e1210bc3d065a6e26ff5fef228a9a7e08921d2c upstream. This patch fixes "Surround Speaker Playback Volume" being cut off. (Commit b4dabfc452a10 was probably meant to fix this, but it fixed only the "Switch" name, not the "Volume" name.) Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: Blackfin: bf5xx-ad193x: Fix codec device nameLars-Peter Clausen2011-10-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | commit c5d2e650bd805a00ff9af537d5b5dede598a198c upstream. Fix the codec_name field of the dai_link to match the actual device name of the codec. Otherwise the card won't be instantiated. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: Fix reporting of partial jack updatesMark Brown2011-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 747da0f80e566500421bd7760b2e050fea3fde5e upstream. We need to report the entire jack state to the core jack code, not just the bits that were being updated by the caller, otherwise the status reported by other detection methods will be omitted from the state seen by userspace. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: MPC5200: replace of_device with platform_deviceTimur Tabi2011-10-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 3bdf28feafc52864bd7f17b39deec64833a89d19 upstream. 'struct of_device' no longer exists, and its functionality has been merged into platform_device. Update the MPC5200 audio DMA driver (mpc5200_dma) accordingly. This fixes a build break. Signed-off-by: Timur Tabi <timur@freescale.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: ad193x: fix dac word len settingScott Jiang2011-10-032-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | commit 95c93d8525ebce1024bda7316f602ae45c36cd6f upstream. dac word len value should left shift before setting Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com> Acked-by: Barry Song <21cnbao@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: ad193x: fix registers definitionScott Jiang2011-10-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | commit bf545ed72f2eeac664695a8ea2199d9ddaef6020 upstream. fix dac word len mask and adc tdm fmt shift value Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: soc-jack: Fix checking return value of request_any_context_irqAxel Lin2011-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | commit d2b4c7bd7eabfaa2e3e5b8107d5eeb56ac879813 upstream. request_any_context_irq() returns a negative value on failure. On success, it returns either IRQC_IS_HARDIRQ or IRQC_IS_NESTED. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelistDaniel T Chen2011-08-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit eade7b281c9fc18401b989c77d5e5e660b25a3b7 upstream. BugLink: https://bugs.launchpad.net/bugs/826081 The original reporter needs 'Headphone Jack Sense' enabled to have audible audio, so add his PCI SSID to the whitelist. Reported-and-tested-by: Muhammad Khurram Khan Signed-off-by: Daniel T Chen <crimsun@ubuntu.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: snd_usb_caiaq: track submitted output urbsDaniel Mack2011-08-292-4/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit da6094ea7d3c2295473d8f5134279307255d6ebf upstream. The snd_usb_caiaq driver currently assumes that output urbs are serviced in time and doesn't track when and whether they are given back by the USB core. That usually works fine, but due to temporary limitations of the XHCI stack, we faced that urbs were submitted more than once with this approach. As it's no good practice to fire and forget urbs anyway, this patch introduces a proper bit mask to track which requests have been submitted and given back. That alone however doesn't make the driver work in case the host controller is broken and doesn't give back urbs at all, and the output stream will stop once all pre-allocated output urbs are consumed. But it does prevent crashes of the controller stack in such cases. See http://bugzilla.kernel.org/show_bug.cgi?id=40702 for more details. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-and-tested-by: Matej Laitl <matej@laitl.cz> Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: usb-audio - Fix missing mixer dB informationTakashi Iwai2011-08-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 38b65190c6ab0be8ce7cff69e734ca5b5e7fa309 upstream. The recent fix for testing dB range at the mixer creation time seems to cause regressions in some devices. In such devices, reading the dB info at probing time gives an error, thus both dBmin and dBmax are still zero, and TLV flag isn't set although the later read of dB info succeeds. This patch adds a workaround for such a case by assuming that the later read will succeed. In future, a similar test should be performed in a case where a wrong dB range is seen even in the later read. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: Tegra: wm8903 machine driver: Allow re-insertion of moduleStephen Warren2011-08-171-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 29591ed4ac6fe00e3ff23b5be0cdc7016ef9c47e upstream. Two issues were preventing module snd-soc-tegra-wm8903.ko from being removed and re-inserted: a) The speaker-enable GPIO is hosted by the WM8903 chip. This GPIO must be freed before snd_soc_unregister_card() is called, because that triggers wm8903.c:wm8903_remove(), which calls gpiochip_remove(), which then fails if any of the GPIOs are in use. To solve this, free all GPIOs first, so the code doesn't care where they come from. b) We need to call snd_soc_jack_free_gpios() to match the call to snd_soc_jack_add_gpios() during initialization. Without this, the call to snd_soc_jack_add_gpios() fails during any subsequent modprobe and initialization, since the GPIO and IRQ are already registered. In turn, this causes the headphone state not to be monitored, so the headphone is assumed not to be plugged in, and the audio path to it is never enabled. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: Tegra: tegra_pcm_deallocate_dma_buffer: Don't OOPSStephen Warren2011-08-171-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit a96edd59b2bc88b3d1ea47e0ba48076d65db9302 upstream. Not all PCM devices have all sub-streams. Specifically, the SPDIF driver only supports playback and hence has no capture substream. Check whether a substream exists before dereferencing it, when de-allocating DMA buffers in tegra_pcm_deallocate_dma_buffer. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: Fix binding of WM8750 on JiveMark Brown2011-08-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | commit 6678050442e90a4e9511a9ed14b9bdfc5e393323 upstream. The I2C address is misformatted and would never match. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: snd-usb-caiaq: Correct offset fields of outbound iso_frame_descDaniel Mack2011-08-171-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 15439bde3af7ff88459ea2b5520b77312e958df2 upstream. This fixes faulty outbount packets in case the inbound packets received from the hardware are fragmented and contain bogus input iso frames. The bug has been there for ages, but for some strange reasons, it was only triggered by newer machines in 64bit mode. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-and-tested-by: William Light <wrl@illest.net> Reported-by: Pedro Ribeiro <pedrib@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6Clemens Ladisch2011-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 824818b148db42173446707df4cbd61cd7133272 upstream. The Focusrite Scarlett 18i6 USB has them that way, which is probably a bug. Anyway, the driver should simply ignore this fact. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-by: Nicolai Krakowiak <nicolai.krakowiak@gmail.com> Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: snd-usb: operate on given mixer interface onlyDaniel Mack2011-08-152-12/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 1faa5d07a93fc5b0a4a5254fc940a79e20b55540 upstream. When creating the mixers for an USB audio device, the current code looks at the host interface stored in mixer->chip->ctrl_if. Change this and rather keep a local pointer to the interface that was given when snd_usb_create_mixer() was called. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-by: Nicolai Krakowiak <nicolai.krakowiak@gmail.com> Reported-by: Lean-Yves LENHOF <jean-yves@lenhof.eu.org> Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: snd-usb: avoid dividing by zero on invalid inputNicolai Krakowiak2011-08-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | commit 60c961a9e1ed879a4d151df6076bf1203f595f73 upstream. Signed-off-by: Nicolai Krakowiak <nicolai.krakowiak@gmail.com> Acked-by: Daniel Mack <zonque@gmail.com> Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3Daniel Mack2011-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | commit f4389489b5cbe60b3441869c68bb4afe760969c4 upstream. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-by: Renato <naretobh@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ALSA: timer - Fix Oops at closing slave timerTakashi Iwai2011-08-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 0584ffa548b6e59aceb027112f23a55f0133400e upstream. A slave-timer instance has no timer reference, and this results in NULL-dereference at stopping the timer, typically called at closing the device. Reference: https://bugzilla.kernel.org/show_bug.cgi?id=40682 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * ASoC: sgtl5000: fix cache handlingWolfram Sang2011-08-151-93/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 151798f872d6b386d82cd1707ad703e981fef8f2 upstream. Cache handling in this driver is broken. The chip has 16-bit registers, yet the register numbers also increase by 2 per register, i.e. there are only even-numbered registers. The cache in this driver, though, simply increments register numbers, so it does need some mapping as seen in sgtl5000_restore_regs(), note the '>> 1': snd_soc_write(codec, SGTL5000_CHIP_LINREG_CTRL, cache[SGTL5000_CHIP_LINREG_CTRL >> 1]); That, of course, won't work with snd_soc_update_bits(). (Thus, we won't even notice the missing register 0x1c in the default regs which shifted all follwing registers to wrong values.) Noticed on the MX28EVK where enabling the regulators simply locked up the chip. Refactor the routines and use a properly sized default_regs array which matches the register layout of the underlying chip, i.e. create a truly flat cache. This also saves some code which should make up for the bigger array a little. When soc-core will somewhen have another cache type which handles a step size, this conversion will also ease the transition. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Dong Aisheng <b29396@freescale.com> Tested-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>