summaryrefslogtreecommitdiffstats
path: root/sound/firewire (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: dice: fix array limits in dice_proc_read()Dan Carpenter2013-11-291-2/+2
| | | | | | | | | | The array limits are supposed to be in units of u32 instead of in bytes. The current code has a potential array overflow. Fixes: c614475b0ea9 ('ALSA: dice: add a proc file to show device information') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'fix/firewire' into for-linusTakashi Iwai2013-11-261-9/+6
|\
| * ALSA: firewire-lib: fix wrong value for FDF field as an empty packetTakashi Sakamoto2013-11-221-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fix out of specification about the value of FDF field in out packet with 'no data'. This affects blocking mode. According to IEC 61883-6, there is two way to generate AMDTP packets include no data in blocking mode. Way 1. an empty packet defined in IEC 61883-1 - Size of packet is 2 quadlets. - The value of FDF is sfc. - The packet includes only CIP headers Way 2. a special non-empty packet defined in IEC 61883-6 - Size of packet is following to blocking mode - The value of FDF is 0xff. This value is 'NO-DATA'. This means 'The receiver' must ignore all the data in a CIP with this FDF code'. - The packet includes dummy data. But current implementation is a combination of them. - Size of packet is 2 (way 1) - FDF = 0xff (way 2) This causes BeBoB chipset cannot sound. This patch applies Way 1. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Cc: Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge tag 'sound-fix2-3.13-rc1' of ↵Linus Torvalds2013-11-221-0/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull second set of sound fixes from Takashi Iwai: "A collection of small fixes in HD-audio quirks and runtime PM, ASoC rcar, abs8500 and other codecs. Most of commits are for stable kernels, too" * tag 'sound-fix2-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - Set current_headset_type to ALC_HEADSET_TYPE_ENUM (janitorial) ALSA: hda - Provide missing pin configs for VAIO with ALC260 ALSA: hda - Add headset quirk for Dell Inspiron 3135 ALSA: hda - Fix the headphone jack detection on Sony VAIO TX ALSA: hda - Fix missing bass speaker on ASUS N550 ALSA: hda - Fix unbalanced runtime PM notification at resume ASoC: arizona: Set FLL to free-run before disabling ALSA: hda - A casual Dell Headset quirk ASoC: rcar: fixup dma_async_issue_pending() timing ASoC: rcar: off by one in rsnd_scu_set_route() ASoC: wm5110: Add post SYSCLK register patch for rev D chip ASoC: ab8500: Revert to using custom I/O functions ALSA: hda - Also enable mute/micmute LED control for "Lenovo dock" fixup ALSA: firewire-lib: include sound/asound.h to refer to snd_pcm_format_t ALSA: hda - Select FW_LOADER from CONFIG_SND_HDA_CODEC_CA0132_DSP ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Realtek codec ASoC: rcar: fixup mod access before checking
| * ALSA: firewire-lib: include sound/asound.h to refer to snd_pcm_format_tTakashi Sakamoto2013-11-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | 'snd_pcm_format_t' is used by amdtp_out_stream_set_pcm_format(). Currently, when just including amdtp.h, compiler cannot find this type because this type is defined in uapi/sound/asound.h and this header is not included by amdtp.h. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | tree-wide: use reinit_completion instead of INIT_COMPLETIONWolfram Sang2013-11-151-1/+1
|/ | | | | | | | | | | | Use this new function to make code more comprehensible, since we are reinitialzing the completion, not initializing. [akpm@linux-foundation.org: linux-next resyncs] Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Acked-by: Linus Walleij <linus.walleij@linaro.org> (personally at LCE13) Cc: Ingo Molnar <mingo@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'dice-driver-playback-only' of ↵Takashi Iwai2013-10-2213-150/+2137
|\ | | | | | | 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-173-0/+1023
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: firewire-lib: use inlune function to calculate frame bytesTakashi Sakamoto2013-09-261-2/+2
| | | | | | | | | | | | | | | | Calculating frame bytes can be replaced with inline function in include/sound/pcm.h. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'for-3.12' into for-nextTakashi Iwai2013-07-151-3/+1
|\ \ | |/ |/|
| * ALSA: firewire-speakers: remove not-reused member from structureTakashi Sakamoto2013-07-101-3/+1
| | | | | | | | | | | | | | | | | | | | "pcm" member in struct fwspk is used to set pcm operations but is not used again. This commit remove this member and set pcm operations with snd_pcm_set_ops(). Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge tag 'firewire-updates' of ↵Linus Torvalds2013-07-103-107/+82
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 Pull firewire updates from Stefan Richter: "Make struct ieee1394_device_id.driver_data actually avaliable to 1394 protocol drivers. This is especially useful to 1394 audio drivers for model-specific parameters and methods" * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: firewire: remove support of fw_driver.driver.probe and .remove methods firewire: introduce fw_driver.probe and .remove methods
| * firewire: introduce fw_driver.probe and .remove methodsStefan Richter2013-06-093-107/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FireWire upper layer drivers are converted from generic struct driver.probe() and .remove() to bus-specific struct fw_driver.probe() and .remove(). The new .probe() adds a const struct ieee1394_device_id *id argument, indicating the entry in the driver's device identifiers table which matched the fw_unit to be probed. This new argument is used by the snd-firewire-speakers driver to look up device-specific parameters and methods. There is at least one other FireWire audio driver currently in development in which this will be useful too. The new .remove() drops the unused error return code. Although all in-tree drivers are being converted to the new methods, support for the old methods is left in place in this commit. This allows public developer trees to merge this commit and then move to the new fw_driver methods. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Acked-by: Clemens Ladisch <clemens@ladisch.de> (for sound/firewire/) Cc: Peter Hurley <peter@hurleysoftware.com> (for drivers/staging/fwserial/)
* | ALSA: snd-firewire-lib: remove unused header inclusionTakashi Sakamoto2013-06-251-1/+0
| | | | | | | | | | | | | | spinlock is not used in amdtp.h. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: firewire: fix error return code in scs_probe()Wei Yongjun2013-06-181-1/+3
|/ | | | | | | | | Fix to return -ENOMEM in the kmalloc() error handling case instead of 0, as done elsewhere in this function. Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: firewire-speakers: remove __dev* attributesBill Pemberton2012-12-071-4/+4
| | | | | | | | | | | | CONFIG_HOTPLUG is going away as an option. As result the __dev* markings will be going away. Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst, and __devexit. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Acked-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: firewire: add Stanton SCS.1d/1m driverClemens Ladisch2012-11-123-0/+542
| | | | | | | Add a MIDI driver for the Stanton FireWire DJ controllers. Tested-by: Sean M. Pappalardo - D.J. Pegasus <spappalardo@mixxx.org> Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* Merge tag 'firewire-updates' of ↵Linus Torvalds2012-05-243-29/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 Pull IEEE 1394 (FireWire) subsystem updates from Stefan Richter: - Fix mismatch between DMA mapping direction (was wrong) and DMA synchronization direction (was correct) of isochronous reception buffers of userspace drivers if vma-mapped for R/W access. For example, libdc1394 was affected. - more consistent retry stategy in device discovery/ rediscovery, and improved failure diagnostics - various small cleanups, e.g. use SCSI layer's DMA mapping API in firewire-sbp2 * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: firewire: sbp2: document the absence of alignment requirements firewire: sbp2: remove superfluous blk_queue_max_segment_size() call firewire: sbp2: use scsi_dma_(un)map firewire: sbp2: give correct DMA device to scsi framework firewire: core: fw_device_refresh(): clean up error handling firewire: core: log config rom reading errors firewire: core: log error in case of failed bus manager lock firewire: move rcode_string() to core firewire: core: improve reread_config_rom() interface firewire: core: wait for inaccessible devices after bus reset firewire: ohci: omit spinlock IRQ flags where possible firewire: ohci: correct signedness of a local variable firewire: core: fix DMA mapping direction firewire: use module_pci_driver
| * firewire: move rcode_string() to coreClemens Ladisch2012-04-173-29/+2
| | | | | | | | | | | | | | | | There is nothing audio-specific about the rcode_string() helper, so move it from snd-firewire-lib into firewire-core to allow other code to use it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (fixed sound/firewire/cmp.c)
* | ALSA: firewire-lib: optimize packet flushingClemens Ladisch2012-05-142-1/+8
| | | | | | | | | | | | | | | | Trying to flush completed packets is pointless when the pointer callback was called from the packet completion callback; avoid it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: firewire-lib: flush completed packets when reading PCM positionClemens Ladisch2012-05-142-12/+15
| | | | | | | | | | | | | | | | | | By flushing all completed but not yet reported packets before reading the PCM hardware position, the granularity of the pointer is improved from the interrupt interval to the packet size. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: firewire-lib: taskletize the snd_pcm_period_elapsed() callClemens Ladisch2012-05-142-13/+31
|/ | | | | | | | | | | | | | | The following patch might introduce this call chain: PCM .pointer callback + fw_iso_context_flush_completions + packet callback + snd_pcm_period_elapsed + PCM .pointer callback Recursive calls to the pointer callback are not possible due to the PCM group locking, so avoid this by moving the period notification into a separate tasklet. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>