[alsa-devel] [RFC][PATCH 00/13 v1] Enhancement for Dice driver
Takashi Sakamoto
o-takashi at sakamocchi.jp
Sun May 18 15:36:25 CEST 2014
This patchset is for enhancement of Dice driver.
This patchset is based on this series. (This series is under reviewing.)
[alsa-devel] [PATCH 00/49 v4] Enhancement for support of Firewire devices
http://mailman.alsa-project.org/pipermail/alsa-devel/2014-April/075841.html
If you try this patchset, please apply the series in advance then apply this patchset.
Or just use backport codes in my github repository:
https://github.com/takaswie/snd-firewire-improve
Or if you use Ubuntu 14.04, DKMS package is available from David's PPA.
(Special thanks to David Henningsson.)
https://launchpad.net/~diwic/+archive/snd-firewire-improve
If you have any Dice based devices, please test this patchset because I can't test this driver with actual devices.
== Background
Dice is 'Digital Interface Communications Engine', produced by TC Applied Technologies.
Several vendors produced devices with Dice chipsets.
Currently, ALSA driver for Dice chipset has some restrictions:
- Support playback of PCM samples only
- Support SYT-Match mode for sampling clock source only
This patchset adds more functionality into the driver:
- Support both of capture/playback
- Support both of PCM/MIDI
- Support both of SYT-Match or non SYT-Match mode
== Call for testing
I don't have any Dice based devices.
So I work for this patchset with my experiences for the other drivers and some stub codes. So it may not work fine, perhaps. If you have some Dice based devices, I hope you to test these patches and report the result. If it works badly, please get transaction logs and send it to me.
The way to get transaction logs is:
1. Set debug parameter of 'firewire-ohci' driver. With root privillege:
$ echo 1 > /sys/module/firewire_ohci/parameters/debug
2. Then transaction logs are output to /var/log/syslog
$ tail -n 10 /var/log/syslog
kernel: [ 2376.107790] snd_dice fw1.0: transaction failed: address error
kernel: [ 2376.108015] firewire_core 0000:02:00.0: created device fw1: GUID 00a0de000002e247, S400
kernel: [ 2382.044469] firewire_ohci 0000:02:00.0: AR evt_bus_reset, generation 25
kernel: [ 2384.095868] snd_dice fw1.0: transaction failed: bus reset
kernel: [ 2384.143898] snd_dice fw1.0: transaction failed: bus reset
kernel: [ 2389.517686] firewire_ohci 0000:02:00.0: AR evt_bus_reset, generation 26
kernel: [ 2390.015821] firewire_ohci 0000:02:00.0: AT spd 0 tl 1f, ffc0 -> ffc1, evt_missing_ack, QR req, fffff0000400
kernel: [ 2392.885455] firewire_ohci 0000:02:00.0: AR evt_bus_reset, generation 27
kernel: [ 2392.885504] firewire_core 0000:02:00.0: phy config: new root=ffc1, gap_count=5
kernel: [ 2392.885534] firewire_ohci 0000:02:00.0: AT ack_complete, PHY 01c50000 fe3affff
kernel: [ 2392.885556] firewire_ohci 0000:02:00.0: AR evt_bus_reset, generation 28
kernel: [ 2393.025757] firewire_ohci 0000:02:00.0: AT spd 0 tl 2a, ffc1 -> ffc0, ack_pending , QR req, fffff0000400
kernel: [ 2393.026007] firewire_ohci 0000:02:00.0: AR spd 2 tl 2a, ffc0 -> ffc1, ack_complete, QR resp = 041fa8cb
kernel: [ 2393.026076] firewire_ohci 0000:02:00.0: AT spd 0 tl 2b, ffc1 -> ffc0, ack_pending , QR req, fffff0000404
kernel: [ 2393.026172] firewire_ohci 0000:02:00.0: AR spd 2 tl 2b, ffc0 -> ffc1, ack_complete, QR resp = 31333934
kernel: [ 2393.026251] firewire_ohci 0000:02:00.0: AT spd 0 tl 2c, ffc1 -> ffc0, ack_pending , QR req, fffff0000408
kernel: [ 2393.030558] firewire_ohci 0000:02:00.0: AR spd 2 tl 2c, ffc0 -> ffc1, ack_complete, QR resp = f0646122
3. Please send me the output since you plug-in your device (not whole)
4. And please tell me how you test, which devices you test with and what result you got
== All patches
My work for ALSA firewire drivers are available in my remote repository:
https://github.com/takaswie/sound
It includes 77 patches. I'm always welcome to receive some comments about them.
Takashi Sakamoto (13):
dice: Rename structure and its members
dice: Move file to its own directory
dice: Split transaction functionality into a file
dice: Split stream functionality into a file
dice: Split PCM functionality into a file
dice: Split hwdep functionality into a file
dice: Split proc functionality into a file
dice: Add new functions for limitation of PCM parameters
dice: Change the way to start stream
dice: Add support for duplex streams with synchronization
dice: Support for non SYT-Match sampling clock source mode
dice: Add support for PCM capture
dice: Add support for MIDI capture/playback
sound/firewire/Kconfig | 4 +-
sound/firewire/Makefile | 3 +-
sound/firewire/dice-interface.h | 371 --------
sound/firewire/dice.c | 1500 --------------------------------
sound/firewire/dice/Makefile | 3 +
sound/firewire/dice/dice-interface.h | 371 ++++++++
sound/firewire/dice/dice.c | 374 ++++++++
sound/firewire/dice/dice.h | 189 ++++
sound/firewire/dice/dice_hwdep.c | 190 ++++
sound/firewire/dice/dice_midi.c | 173 ++++
sound/firewire/dice/dice_pcm.c | 389 +++++++++
sound/firewire/dice/dice_proc.c | 252 ++++++
sound/firewire/dice/dice_stream.c | 410 +++++++++
sound/firewire/dice/dice_transaction.c | 359 ++++++++
14 files changed, 2712 insertions(+), 1876 deletions(-)
delete mode 100644 sound/firewire/dice-interface.h
delete mode 100644 sound/firewire/dice.c
create mode 100644 sound/firewire/dice/Makefile
create mode 100644 sound/firewire/dice/dice-interface.h
create mode 100644 sound/firewire/dice/dice.c
create mode 100644 sound/firewire/dice/dice.h
create mode 100644 sound/firewire/dice/dice_hwdep.c
create mode 100644 sound/firewire/dice/dice_midi.c
create mode 100644 sound/firewire/dice/dice_pcm.c
create mode 100644 sound/firewire/dice/dice_proc.c
create mode 100644 sound/firewire/dice/dice_stream.c
create mode 100644 sound/firewire/dice/dice_transaction.c
--
1.8.3.2
More information about the Alsa-devel
mailing list