| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Also remove superfluous snd_card_set_dev() calls.
Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Remove a wrong typecast that resulted from a copy-and-paste error.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
| |
For easier debugging, add a proc file to show the device's capabilities
and current status.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
| |
Output a warning if the wait for the clock change notification times
out.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Reorganize the initialization order so that the driver can receive
notifications earlier.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
The pcm field was not actually used.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Instead of reading two consecutive register with two quadlet requests,
use one block read request.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Move the DICE interface symbols into a separate header file, and add
more documentation.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Ensure that misbehaving or aborted userspace programs do not
accidentally keep the lock.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
| |
Implement the hwdep locking and notification mechanisms.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
The notification bits are not of general interest; log them only when
debugging.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
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>
|