- 30 11月, 2014 7 次提交
-
-
由 Takashi Sakamoto 提交于
This commit adds a file and move some codes related to hwdep functionality. This interface is designed for mixer/control application. By using hwdep interface, the application can get information about firewire node, can lock/unlock kernel streaming and can get notification at starting/stopping kernel streaming. Additionally, this interface give a way to read Dice notification. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
This commit adds a file and move some codes related to PCM functionality. Currently PCM playback is supported. PCM capture will be supported in followed commits. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
This commit adds a file with some helper functions for streaming, and move some codes into the file with some arrangements. Well-known CMP is not used to start/stop streams for Dice chipset. It's achieved by writing to specific address. We call this way as 'enable'. When devices are 'enabled', streaming starts in registered isochronous channel. Some helper functions are already implemented in previous commit. Basically, the stream is compliant to IEC 61883-6, so-called as AMDTP. But Dice has a specific quirk, so called-as 'Dual Wire'. This quirk is applied at 176.4/192.0kHz. In this mode, each packet includes double number of events than number in the specification, and stream runs at a half of sampling rate. There is another quirk at bus reset. Dice chipset handles drivers' request but don't re-enable streaming. So stream should be stopped. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
This commit adds a file with some helper functions for transaction, and move some codes into the file with some arrangements. For Dice chipset, well-known FCP or AV/C commands are not used to control devices. It's achieved by read/write transactions into specific addresses. Dice's address area is split into 5 areas. Each area has its own role. The offset for each area can be got by reading head of the address area. By reading these areas, drivers can get to know device status. By writing these areas, drivers can change device status. Dice has a specific mechanism called as 'notification'. When device status is changed, Dice devices tells the event by sending transaction. This notification is sent to an address which drivers register in advance. But this causes an issue to drivers. To handle the notification, drivers need to allocate its own callback function to the address region in host controller. This region is exclusive. For the other applications, drivers must give a mechanism to read the received notification. For this purpose, Dice driver already implements hwdep interface. Dice chipset doesn't allow drivers to register several addresses. In this reason, when this driver is applied to a device, the other drivers should _not_ try to register its own address to the device. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
In followed commits, dice driver is split into several files. For easily managing these files, this commit adds subdirectory and move file into the directory. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
Currently, dice driver supports AMDTP out-stream. In followed commits, AMDTP in-stream will be supported but current name of members in dice structure are not propper. This commit renames these members to proper name. Additionally, for easily distinguishing local symbols from structure tag, rename dice tag into snd_dice. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
The checkpatch.pl generates some warnings due to: - C99 comment - a line over 80 characters - min() for parameters with different types Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 29 8月, 2014 2 次提交
-
-
由 Takashi Sakamoto 提交于
In IEC 61883-6, one data block transfers one event. In ALSA, the event equals one PCM frame, hence one data block transfers one PCM frame. But Dice has a quirk at higher sampling rate (176.4/192.0 kHz) that one data block transfers two PCM frames. Commit 10550bea ("ALSA: dice/firewire-lib: Keep dualwire mode but obsolete CIP_HI_DUALWIRE") moved some codes related to this quirk into Dice driver. But the commit forgot to add arrangements for PCM period interrupts and DMA pointer updates. As a result, Dice driver cannot work correctly at higher sampling rate. This commit adds 'double_pcm_frames' parameter to amdtp structure for this quirk. When this parameter is set, PCM period interrupts and DMA pointer updates occur at double speed than in IEC 61883-6. Reported-by: NDaniel Robbins <drobbins@funtoo.org> Fixes: 10550bea ("ALSA: dice/firewire-lib: Keep dualwire mode but obsolete CIP_HI_DUALWIRE") Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Cc: <stable@vger.kernel.org> # 3.16 Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
The channel mapping is initialized by amdtp_stream_set_parameters(), however Dice driver set it before calling this function. Furthermore, the setting is wrong because the index is the value of array, and vice versa. This commit moves codes for channel mapping after the function and set it correctly. Reported-by: NDaniel Robbins <drobbins@funtoo.org> Fixes: 10550bea ("ALSA: dice/firewire-lib: Keep dualwire mode but obsolete CIP_HI_DUALWIRE") Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Cc: <stable@vger.kernel.org> # 3.16 Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 26 5月, 2014 4 次提交
-
-
由 Takashi Sakamoto 提交于
This commit adds common PCM constraints according to current firewire-lib implementation. 1.Maximum width for each sample is limited by 24. AM824 in IEC 61883-6 can deliver 24bit data. 2. Minimum time for period is 5msec. Apply the old value. For shorter latency, further works are needed. 3. In blocking mode, frames per period/buffer is aligned to 32. Each packet can include some frames depending on its sampling rate. In blocking mode, the number equals to SYT_INTERVAL. Currently firewire-lib can schedule snd_pcm_period_elapsed() for each packet. So, for accurate PCM interrupt, the number of frames per period/buffer should be aligned to SYT_INTERVAL. Currently firewire-lib is lack of better rules to achieve this. So LCM of each value of SYT_INTERVALs (=32) is applied. This can be improved for further work. [Fixed the compile error due to the missing "&" by tiwai] Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
In previous commit, AMDTP functionality in firewire-lib supports mapping for PCM data channels. With this mapping, firewire-lib can obsolete a flag, CIP_HI_DUALWIRE, but Dice driver still keeps dual wire mode. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
This patch adds 'direction' member to amdtp_stream structure to indicate its direction. This patch also adds 'direction' argument to amdtp_stream_init() function to determine its direction. The amdtp_stream_init() function is exported and used by firewire-speakers and dice so this patch also affects them. This patch just add them. Actual implementation will be done by followed patches. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Sakamoto 提交于
This patch renames some functions, a structure and its member to reuse them in both AMDTP in/out stream. Signed-off-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 14 2月, 2014 1 次提交
-
-
由 Takashi Iwai 提交于
Also remove superfluous snd_card_set_dev() calls. Reviewed-by: NTakashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 29 11月, 2013 1 次提交
-
-
由 Dan Carpenter 提交于
The array limits are supposed to be in units of u32 instead of in bytes. The current code has a potential array overflow. Fixes: c614475b ('ALSA: dice: add a proc file to show device information') Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Acked-by: NClemens Ladisch <clemens@ladisch.de> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 15 11月, 2013 1 次提交
-
-
由 Wolfram Sang 提交于
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: NWolfram 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: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 21 10月, 2013 24 次提交
-
-
由 Clemens Ladisch 提交于
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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
While most DICE devices keep TCAT's default category ID of 0x04, Weiss devices identify themselves with 0x00. Reported-by: NRolf Anderegg <rolf.anderegg@weiss.ch> Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Remove a wrong typecast that resulted from a copy-and-paste error. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
For easier debugging, add a proc file to show the device's capabilities and current status. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Output a warning if the wait for the clock change notification times out. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Instead of relying of some control panel application to configure some fixed sample rate, allow applications to set it automatically. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
In preparation for sample rate selection support, read the stream parameters that might change when running at different sample rates. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Reorganize the initialization order so that the driver can receive notifications earlier. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
In preparation for sample rate selection support, ensure that the driver knows about the device's clock capabilities. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Stefan Richter 提交于
Avoid a lock inversion between dice->mutex and pcm->open_mutex. Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
The pcm field was not actually used. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Since commit f2b3614c (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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Instead of reading two consecutive register with two quadlet requests, use one block read request. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Move the DICE interface symbols into a separate header file, and add more documentation. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Ensure that misbehaving or aborted userspace programs do not accidentally keep the lock. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
Implement the hwdep locking and notification mechanisms. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
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: NClemens Ladisch <clemens@ladisch.de>
-
由 Clemens Ladisch 提交于
The notification bits are not of general interest; log them only when debugging. Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
-