fireworks.h (bde8a8f23bbe6db51fa4e81644273af18fef3d7a) fireworks.h (315fd41fe9d43838ab5afd26c58d908d18313d9a)
1/*
2 * fireworks.h - a part of driver for Fireworks based devices
3 *
4 * Copyright (c) 2009-2010 Clemens Ladisch
5 * Copyright (c) 2013-2014 Takashi Sakamoto
6 *
7 * Licensed under the terms of the GNU General Public License, version 2.
8 */

--- 8 unchanged lines hidden (view full) ---

17#include <linux/mod_devicetable.h>
18#include <linux/delay.h>
19#include <linux/slab.h>
20
21#include <sound/core.h>
22#include <sound/initval.h>
23#include <sound/pcm.h>
24
1/*
2 * fireworks.h - a part of driver for Fireworks based devices
3 *
4 * Copyright (c) 2009-2010 Clemens Ladisch
5 * Copyright (c) 2013-2014 Takashi Sakamoto
6 *
7 * Licensed under the terms of the GNU General Public License, version 2.
8 */

--- 8 unchanged lines hidden (view full) ---

17#include <linux/mod_devicetable.h>
18#include <linux/delay.h>
19#include <linux/slab.h>
20
21#include <sound/core.h>
22#include <sound/initval.h>
23#include <sound/pcm.h>
24
25#include "../packets-buffer.h"
26#include "../iso-resources.h"
27#include "../amdtp.h"
25#include "../cmp.h"
26#include "../lib.h"
27
28#include "../cmp.h"
29#include "../lib.h"
30
31#define SND_EFW_MAX_MIDI_OUT_PORTS 2
32#define SND_EFW_MAX_MIDI_IN_PORTS 2
33
28#define SND_EFW_MULTIPLIER_MODES 3
29#define HWINFO_NAME_SIZE_BYTES 32
30#define HWINFO_MAX_CAPS_GROUPS 8
31
32/*
33 * This should be greater than maximum bytes for EFW response content.
34 * Currently response against command for isochronous channel mapping is
35 * confirmed to be the maximum one. But for flexibility, use maximum data

--- 13 unchanged lines hidden (view full) ---

49 int card_index;
50
51 struct mutex mutex;
52 spinlock_t lock;
53
54 /* for transaction */
55 u32 seqnum;
56 bool resp_addr_changable;
34#define SND_EFW_MULTIPLIER_MODES 3
35#define HWINFO_NAME_SIZE_BYTES 32
36#define HWINFO_MAX_CAPS_GROUPS 8
37
38/*
39 * This should be greater than maximum bytes for EFW response content.
40 * Currently response against command for isochronous channel mapping is
41 * confirmed to be the maximum one. But for flexibility, use maximum data

--- 13 unchanged lines hidden (view full) ---

55 int card_index;
56
57 struct mutex mutex;
58 spinlock_t lock;
59
60 /* for transaction */
61 u32 seqnum;
62 bool resp_addr_changable;
63
64 unsigned int midi_in_ports;
65 unsigned int midi_out_ports;
66
67 unsigned int supported_sampling_rate;
68 unsigned int pcm_capture_channels[SND_EFW_MULTIPLIER_MODES];
69 unsigned int pcm_playback_channels[SND_EFW_MULTIPLIER_MODES];
70
71 struct amdtp_stream *master;
72 struct amdtp_stream tx_stream;
73 struct amdtp_stream rx_stream;
74 struct cmp_connection out_conn;
75 struct cmp_connection in_conn;
76 atomic_t capture_substreams;
77 atomic_t playback_substreams;
57};
58
59struct snd_efw_transaction {
60 __be32 length;
61 __be32 version;
62 __be32 seqnum;
63 __be32 category;
64 __be32 command;

--- 86 unchanged lines hidden (view full) ---

151int snd_efw_command_get_phys_meters(struct snd_efw *efw,
152 struct snd_efw_phys_meters *meters,
153 unsigned int len);
154int snd_efw_command_get_clock_source(struct snd_efw *efw,
155 enum snd_efw_clock_source *source);
156int snd_efw_command_get_sampling_rate(struct snd_efw *efw, unsigned int *rate);
157int snd_efw_command_set_sampling_rate(struct snd_efw *efw, unsigned int rate);
158
78};
79
80struct snd_efw_transaction {
81 __be32 length;
82 __be32 version;
83 __be32 seqnum;
84 __be32 category;
85 __be32 command;

--- 86 unchanged lines hidden (view full) ---

172int snd_efw_command_get_phys_meters(struct snd_efw *efw,
173 struct snd_efw_phys_meters *meters,
174 unsigned int len);
175int snd_efw_command_get_clock_source(struct snd_efw *efw,
176 enum snd_efw_clock_source *source);
177int snd_efw_command_get_sampling_rate(struct snd_efw *efw, unsigned int *rate);
178int snd_efw_command_set_sampling_rate(struct snd_efw *efw, unsigned int rate);
179
180int snd_efw_stream_init_duplex(struct snd_efw *efw);
181int snd_efw_stream_start_duplex(struct snd_efw *efw, int sampling_rate);
182void snd_efw_stream_stop_duplex(struct snd_efw *efw);
183void snd_efw_stream_update_duplex(struct snd_efw *efw);
184void snd_efw_stream_destroy_duplex(struct snd_efw *efw);
185
159#define SND_EFW_DEV_ENTRY(vendor, model) \
160{ \
161 .match_flags = IEEE1394_MATCH_VENDOR_ID | \
162 IEEE1394_MATCH_MODEL_ID, \
163 .vendor_id = vendor,\
164 .model_id = model \
165}
166
167#endif
186#define SND_EFW_DEV_ENTRY(vendor, model) \
187{ \
188 .match_flags = IEEE1394_MATCH_VENDOR_ID | \
189 IEEE1394_MATCH_MODEL_ID, \
190 .vendor_id = vendor,\
191 .model_id = model \
192}
193
194#endif