History

ALSA: add DICE driver

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.

Clemens Ladisch committed 15 years ago

Commit 82fbb4f1 parent 6e466457 files · +1078 −1Browse files

Showing the changes to include/uapi (3 of 7 files). Show all

Unified · Split

3 files
  1. include/uapi/sound/Kbuild +1 −0
  2. include/uapi/sound/asound.h +2 −1
  3. include/uapi/sound/firewire.h +51 −0
include/uapi/sound/Kbuild+1−0
@@ -5,6 +5,7 @@ header-y += asound_fm.h · 4 unmodified lines
55 header-y += compress_offload.h
66 header-y += compress_params.h
77 header-y += emu10k1.h
8+header-y += firewire.h
89 header-y += hdsp.h
910 header-y += hdspm.h
1011 header-y += sb16_csp.h
include/uapi/sound/asound.h+2−1
@@ -93,9 +93,10 @@ enum { · 92 unmodified lines
9393 SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */
9494 SNDRV_HWDEP_IFACE_HDA, /* HD-audio */
9595 SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */
96+ SNDRV_HWDEP_IFACE_FW_DICE, /* TC DICE FireWire device */
9697
9798 /* Don't forget to change the following: */
98− SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_USB_STREAM
99+ SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_DICE
99100 };
100101
101102 struct snd_hwdep_info {
include/uapi/sound/firewire.h+51−0
@@ -0,0 +1,51 @@
1+#ifndef UAPI_SOUND_FIREWIRE_H_INCLUDED
2+#define UAPI_SOUND_FIREWIRE_H_INCLUDED
3+
4+#include <linux/ioctl.h>
5+
6+/* events can be read() from the hwdep device */
7+
8+#define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc
9+#define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e
10+
11+struct snd_firewire_event_common {
12+ unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */
13+};
14+
15+struct snd_firewire_event_lock_status {
16+ unsigned int type;
17+ unsigned int status; /* 0/1 = unlocked/locked */
18+};
19+
20+struct snd_firewire_event_dice_notification {
21+ unsigned int type;
22+ unsigned int notification; /* DICE-specific bits */
23+};
24+
25+union snd_firewire_event {
26+ struct snd_firewire_event_common common;
27+ struct snd_firewire_event_lock_status lock_status;
28+ struct snd_firewire_event_dice_notification dice_notification;
29+};
30+
31+
32+#define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info)
33+#define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9)
34+#define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa)
35+
36+#define SNDRV_FIREWIRE_TYPE_DICE 1
37+/* Fireworks, AV/C, RME, MOTU, ... */
38+
39+struct snd_firewire_get_info {
40+ unsigned int type; /* SNDRV_FIREWIRE_TYPE_xxx */
41+ unsigned int card; /* same as fw_cdev_get_info.card */
42+ unsigned char guid[8];
43+ char device_name[16]; /* device node in /dev */
44+};
45+
46+/*
47+ * SNDRV_FIREWIRE_IOCTL_LOCK prevents the driver from streaming.
48+ * Returns -EBUSY if the driver is already streaming.
49+ */
50+
51+#endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t