]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - sound/firewire/amdtp-am824.h
ALSA: hda - add Lenovo IdeaCentre B550 to the power_save_blacklist
[mirror_ubuntu-bionic-kernel.git] / sound / firewire / amdtp-am824.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
5955815e
TS
2#ifndef SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
3#define SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
4
bc8500da 5#include <sound/pcm.h>
03e2a67e 6#include <sound/rawmidi.h>
bc8500da 7
5955815e
TS
8#include "amdtp-stream.h"
9
df075fee
TS
10#define AM824_IN_PCM_FORMAT_BITS SNDRV_PCM_FMTBIT_S32
11
a02cb8f8 12#define AM824_OUT_PCM_FORMAT_BITS SNDRV_PCM_FMTBIT_S32
df075fee
TS
13
14/*
15 * This module supports maximum 64 PCM channels for one PCM stream
16 * This is for our convenience.
17 */
18#define AM824_MAX_CHANNELS_FOR_PCM 64
19
20/*
21 * AMDTP packet can include channels for MIDI conformant data.
22 * Each MIDI conformant data channel includes 8 MPX-MIDI data stream.
23 * Each MPX-MIDI data stream includes one data stream from/to MIDI ports.
24 *
25 * This module supports maximum 1 MIDI conformant data channels.
26 * Then this AMDTP packets can transfer maximum 8 MIDI data streams.
27 */
28#define AM824_MAX_CHANNELS_FOR_MIDI 1
29
51c29fd2
TS
30int amdtp_am824_set_parameters(struct amdtp_stream *s, unsigned int rate,
31 unsigned int pcm_channels,
32 unsigned int midi_ports,
33 bool double_pcm_frames);
34
f65be911
TS
35void amdtp_am824_set_pcm_position(struct amdtp_stream *s, unsigned int index,
36 unsigned int position);
37
38void amdtp_am824_set_midi_position(struct amdtp_stream *s,
39 unsigned int position);
40
bc8500da
TS
41int amdtp_am824_add_pcm_hw_constraints(struct amdtp_stream *s,
42 struct snd_pcm_runtime *runtime);
43
03e2a67e
TS
44void amdtp_am824_midi_trigger(struct amdtp_stream *s, unsigned int port,
45 struct snd_rawmidi_substream *midi);
46
5955815e
TS
47int amdtp_am824_init(struct amdtp_stream *s, struct fw_unit *unit,
48 enum amdtp_stream_direction dir, enum cip_flags flags);
49#endif