summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: Add SoC on-chip internal ram support for DMA buffer allocationNicolin Chen2013-10-243-0/+59
| | | | | | | | | | | | | Now it's quite common that an SoC contains its on-chip internal RAM. By using this RAM space for DMA buffer during audio playback/record, we can shutdown the voltage for external RAM to save power. So add new DEV type with iram malloc()/free() and accordingly modify current default mmap() for the iram circumstance. Signed-off-by: Nicolin Chen <b42378@freescale.com> Reviewed-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'dice-driver-playback-only' of ↵Takashi Iwai2013-10-2217-151/+2192
|\ | | | | | | git://git.alsa-project.org/alsa-kprivate into for-next
| * ALSA: dice: restrict the driver to playback-only devicesClemens Ladisch2013-10-202-4/+15
| | | | | | | | | | | | | | | | At the moment, this driver supports only playback, while FFADO supports (only) full-duplex devices. So, prevent conflicts by not claiming devices that would be better handled by FFADO. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: fix detection of Weiss devicesClemens Ladisch2013-10-201-5/+12
| | | | | | | | | | | | | | | | While most DICE devices keep TCAT's default category ID of 0x04, Weiss devices identify themselves with 0x00. Reported-by: Rolf Anderegg <rolf.anderegg@weiss.ch> Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: dice_proc_read: remove wrong typecastClemens Ladisch2013-10-201-2/+1
| | | | | | | | | | | | Remove a wrong typecast that resulted from a copy-and-paste error. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: document quadlet alignmentClemens Ladisch2013-10-201-3/+3
| | | | | | | | | | | | | | | | Doing accesses without quadlet alignment is a bad idea because the firmware's byte-swapping would garble the data; clarify this in the documentation. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: add a proc file to show device informationClemens Ladisch2013-10-201-0/+246
| | | | | | | | | | | | | | For easier debugging, add a proc file to show the device's capabilities and current status. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: check clock change timeoutClemens Ladisch2013-10-201-2/+3
| | | | | | | | | | | | | | Output a warning if the wait for the clock change notification times out. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: dynamic sample rate selectionClemens Ladisch2013-10-201-35/+102
| | | | | | | | | | | | | | Instead of relying of some control panel application to configure some fixed sample rate, allow applications to set it automatically. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: get rate-dependent parametersClemens Ladisch2013-10-201-2/+90
| | | | | | | | | | | | | | In preparation for sample rate selection support, read the stream parameters that might change when running at different sample rates. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: allow notifications during initializationClemens Ladisch2013-10-201-11/+11
| | | | | | | | | | | | | | Reorganize the initialization order so that the driver can receive notifications earlier. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: get clock capabilitiesClemens Ladisch2013-10-201-2/+21
| | | | | | | | | | | | | | In preparation for sample rate selection support, ensure that the driver knows about the device's clock capabilities. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: make amdtp_rates[] constClemens Ladisch2013-10-202-2/+2
| | | | | | | | Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: fix lockingStefan Richter2013-10-201-4/+4
| | | | | | | | | | | | | | Avoid a lock inversion between dice->mutex and pcm->open_mutex. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: remove superfluous fieldClemens Ladisch2013-10-201-3/+1
| | | | | | | | | | | | The pcm field was not actually used. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: remove 10s period length limitClemens Ladisch2013-10-201-1/+1
| | | | | | | | | | | | | | Since commit f2b3614cefb6 (Don't check DMA time-out too shortly), we need no longer to restrict the period length to less than 10 s. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: avoid superflous write at bus resetClemens Ladisch2013-10-201-0/+5
| | | | | | | | | | | | | | When a bus reset happens, the enable register is automatically cleared, so we do not need to clear it manually when stopping the stream. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: firewire: extend snd_fw_transaction()Clemens Ladisch2013-10-208-206/+137
| | | | | | | | | | | | | | | | | | | | | | Add a flag to snd_fw_transaction() to allow it to abort when a bus reset happens. This removes most of the duplicated error handling loops that were required around calls to the low-level fw_run_transaction(). Also add a flag to suppress error messages; errors are expected when we attempt to clean up after the device was unplugged. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: optimize reading of consecutive registersClemens Ladisch2013-10-201-16/+11
| | | | | | | | | | | | | | Instead of reading two consecutive register with two quadlet requests, use one block read request. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: support dual-wire stream format at 192 kHzClemens Ladisch2013-10-204-67/+164
| | | | | | | | | | | | | | Change the AMDTP streaming code to handle the non-standard stream format that DICE devices use at sample rates greater than 96 kHz. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: fix device detection for other vendorsClemens Ladisch2013-10-201-18/+84
| | | | | | | | | | | | | | | | | | DICE devices do not have a unique specifier ID in their unit directory (it's always the same as the device vendor's ID), so rely on just the version ID for driver loading, and use a heuristic in the probe callback to detect actual DICE devices. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: reorganize interface definitionsClemens Ladisch2013-10-202-207/+373
| | | | | | | | | | | | | | Move the DICE interface symbols into a separate header file, and add more documentation. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: firewire: introduce amdtp_out_stream_running()Clemens Ladisch2013-10-204-23/+18
| | | | | | | | | | | | | | | | Introduce the helper function amdtp_out_stream_running(). This makes many checks in amdtp.c clearer and frees the device drivers from having to track this with a separate variable. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: clear device lock when closing hwdep deviceClemens Ladisch2013-10-201-0/+13
| | | | | | | | | | | | | | Ensure that misbehaving or aborted userspace programs do not accidentally keep the lock. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: implement hwdep deviceClemens Ladisch2013-10-201-22/+203
| | | | | | | | | | | | Implement the hwdep locking and notification mechanisms. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: fix hang when unplugging a running deviceClemens Ladisch2013-10-201-2/+5
| | | | | | | | | | | | | | | | | | | | | | When aborting a PCM stream, the xrun is signaled only if the stream is running. When disconnecting a PCM stream, calling snd_card_disconnect() too early would change the stream into a non-running state and thus prevent the xrun from being noticed by user space. To prevent this, move the snd_card_disconnect() call after the xrun. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice, firewire-lib: add blocking modeClemens Ladisch2013-10-203-27/+36
| | | | | | | | | | | | | | | | | | Allow AMDTP output streams to use blocking mode. Use it for DICE devices, because the old DICE-II chip will in some cases not be able to lock to non-blocking streams (erratum E7). Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: reduce noisy loggingClemens Ladisch2013-10-201-2/+2
| | | | | | | | | | | | | | The notification bits are not of general interest; log them only when debugging. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: allow all sample ratesClemens Ladisch2013-10-201-13/+42
| | | | | | | | | | | | | | | | | | | | Instead of forcing a constant 44.1 kHz, read the current sample rate from the device when opening the PCM device. Actually changing the sample rate requires some separate controller application. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: dice: optimize bus reset handlingClemens Ladisch2013-10-201-55/+93
| | | | | | | | | | | | | | After a bus reset, do not stop the stream completely to avoid having to reconfigure the device when restarting the stream. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
| * ALSA: add DICE driverClemens Ladisch2013-10-177-1/+1078
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As a start point for further development, this is an incomplete driver for DICE devices: - only playback (so no clock source except the bus clock) - only 44.1 kHz - no MIDI - recovery after bus reset is slow - hwdep device is created, but not actually implemented Contains compilation fixes by Stefan Richter. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* | ALSA: hda - Fix typos in patch_hdmi.cTakashi Iwai2013-10-211-3/+3
| | | | | | | | | | | | | | | | ... which was introduced by the previous commit a4e9a38b, causing build errors without CONFIG_PROC_FS. Reported-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - add codec ID for Valleyview2 display codecMengdong Lin2013-10-211-0/+2
| | | | | | | | | | | | | | | | This patch adds codec ID (0x80862882) and module alias for Valleyview2 display codec. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: emu10k1: code refactoringGeyslan G. Bem2013-10-181-31/+45
| | | | | | | | | | | | | | | | | | | | | | Partially restructures _snd_emu10k1_audigy_init_efx() and _snd_emu10k1_init_efx() functions. Be noted that the cast is demanded to use '__user'. So, in these cases, avoid patches based on the coccinelle 'drop_kmalloc_cast' semantic patch. Signed-off-by: Geyslan G. Bem <geyslan@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Move mutex from hda_eld to per_pin in HDMI codec driverTakashi Iwai2013-10-173-81/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the lock is used primarily in patch_hdmi.c, it's better to move it in the local struct instead of exporting in hda_eld. The only functions requiring the lock in hda_eld.c are proc accessors. So in this patch, the proc entry and its creation/deletion/accessors are moved into patch_hdmi.c, together with the mutex lock to pin_spec struct. The former proc info functions are exported so that they can be called from patch_hdmi.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Fix possible races in HDMI driverTakashi Iwai2013-10-171-3/+11
| | | | | | | | | | | | | | | | | | | | Some per_pin fields and ELD contents might be changed dynamically in multiple ways where the concurrent accesses are still opened in the current code. This patch fixes such possible races by using eld->lock in appropriate places. Reported-by: Anssi Hannula <anssi.hannula@iki.fi> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Treat zero connection as non-errorTakashi Iwai2013-10-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The zero-length connection list happens so often on Haswell HDMI, and it results in warning messages like ALSA: hda_codec: invalid CONNECT_LIST verb 5[1]:0 at each time the codec resumes from the power-save, which is fairly annoying. Since this is no real error, make it shown only in the verbose debug mode. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - add connection to thinkpad_acpi to control mute/micmute LEDsDavid Henningsson2013-10-171-2/+90
| | | | | | | | | | Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - add HDA_FIXUP_ACT_FREE actionDavid Henningsson2013-10-171-0/+1
| | | | | | | | | | | | | | | | A fixup which should be called before codec being freed will come to use in the next patch. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | thinkpad-acpi: Add mute and mic-mute LED functionalityDavid Henningsson2013-10-173-3/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | The LEDs are currently not visible to userspace, for security reasons. They are exported through thinkpad_acpi.h for use by the snd-hda-intel driver. Thanks to Alex Hung <alex.hung@canonical.com> and Takashi Iwai <tiwai@suse.de> for writing parts of this patch. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | sound: Remove unnecessary semicolonsJoe Perches2013-10-1412-20/+20
| | | | | | | | | | | | | | These aren't necessary after switch and if blocks. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Enable surround speakers (when line out is also present)David Henningsson2013-10-101-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | In the case where we have both line out and more than stereo speakers, the speaker DACs will end up in extra_out_nid. In fact, AFAIU, speakers are the only ones that can end up in extra_out_nid, and if we have several of those, they should be surround outputs rather than copy front. BugLink: https://bugs.launchpad.net/bugs/1236965 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: Use module_usb_driverSachin Kamat2013-10-091-12/+1
| | | | | | | | | | | | | | module_usb_driver makes code simpler by removing the boilerplate. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'for-linus' into for-nextTakashi Iwai2013-10-08475-2317/+4211
|\ \ | | | | | | | | | | | | | | | | | | For updating the HDMI chmap fix. Conflicts: sound/pci/hda/patch_hdmi.c
| * | ALSA: hda - hdmi: Fix channel map switch not taking effectAnssi Hannula2013-10-081-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently hdmi_setup_audio_infoframe() reprograms the HDA channel mapping only when the infoframe is not up-to-date or the non-PCM flag has changed. However, when just the channel map has been changed, the infoframe may still be up-to-date and non-PCM flag may not have changed, so the new channel map is not actually programmed into the HDA codec. Notably, this failing case is also always triggered when the device is already in a prepared state and a new channel map is configured while changing only the channel positions (for example, plain "speaker-test -c2 -m FR,FL"). Fix that by always programming the channel map in hdmi_setup_audio_infoframe(). Tested on Intel HDMI. Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix mono speakers and headset mic on Dell Vostro 5470David Henningsson2013-10-071-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On this machine, DAC on node 0x03 seems to give mono output. Also, it needs additional patches for headset mic support. It supports CTIA style headsets only. Alsa-info available at the bug link below. Cc: stable@kernel.org (v3.10+) BugLink: https://bugs.launchpad.net/bugs/1236228 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: snd-usb-usx2y: remove bogus frame checksDaniel Mack2013-10-022-25/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The frame check in i_usX2Y_urb_complete() and i_usX2Y_usbpcm_urb_complete() is bogus and produces false positives as described in this LAU thread: http://linuxaudio.org/mailarchive/lau/2013/5/20/200177 This patch removes the check code entirely. Cc: fzu@wemgehoertderstaat.de Reported-by: Dr Nicholas J Bailey <nicholas.bailey@glasgow.ac.uk> Suggested-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Daniel Mack <zonque@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix GPIO for Acer Aspire 3830TGTakashi Iwai2013-09-301-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Acer Aspire 3830TG seems requiring GPIO bit 0 as the primary mute control. When a machine is booted after Windows 8, the GPIO pin is turned off and it results in the silent output. This patch adds the manual fixup of GPIO bit 0 for this model. Reported-by: Christopher <DIDI2002@web.de> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: ac97: Add ID for TI TLV320AIC27 codecOndrej Zary2013-09-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add 0x54584e03 ID for TI TLV320AIC27 AC'97 codec according to datasheet: http://www.ti.com/lit/ds/slas253a/slas253a.pdf The weird thing is that the chip is physically marked 320AD91. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | Merge tag 'asoc-v3.12-rc2' of ↵Takashi Iwai2013-09-30467-2276/+4072
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v3.12 Nothing too exciting here, all driver specific except for the fix from Liam for DPCM systems which have both front and back end DAIs which is not yet used by anything in mainline.