diff options
| author | Takashi Iwai <tiwai@suse.de> | 2021-07-01 08:34:15 +0200 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2021-07-01 08:34:15 +0200 | 
| commit | 498386d1c4d98a72db7a2f51473593ad563b45ae (patch) | |
| tree | f94e6b211b9a50106e6e047cd992ae3e209ef007 /include/uapi | |
| parent | 5c6d4f97267f02f47acea8a652265348ec12de51 (diff) | |
| parent | dfc2e8ae4066a95c7f9c2bb2dfa26651feaa6b83 (diff) | |
| download | linux-498386d1c4d98a72db7a2f51473593ad563b45ae.tar.bz2 | |
Merge branch 'for-next' into for-linus
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/sound/asound.h | 30 | 
1 files changed, 28 insertions, 2 deletions
| diff --git a/include/uapi/sound/asound.h b/include/uapi/sound/asound.h index 535a7229e1d9..d17c061950df 100644 --- a/include/uapi/sound/asound.h +++ b/include/uapi/sound/asound.h @@ -710,7 +710,7 @@ enum {   *  Raw MIDI section - /dev/snd/midi??   */ -#define SNDRV_RAWMIDI_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 1) +#define SNDRV_RAWMIDI_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 2)  enum {  	SNDRV_RAWMIDI_STREAM_OUTPUT = 0, @@ -736,12 +736,38 @@ struct snd_rawmidi_info {  	unsigned char reserved[64];	/* reserved for future use */  }; +#define SNDRV_RAWMIDI_MODE_FRAMING_MASK		(7<<0) +#define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT	0 +#define SNDRV_RAWMIDI_MODE_FRAMING_NONE		(0<<0) +#define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP	(1<<0) +#define SNDRV_RAWMIDI_MODE_CLOCK_MASK		(7<<3) +#define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT		3 +#define SNDRV_RAWMIDI_MODE_CLOCK_NONE		(0<<3) +#define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME	(1<<3) +#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC	(2<<3) +#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW	(3<<3) + +#define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16 + +struct snd_rawmidi_framing_tstamp { +	/* For now, frame_type is always 0. Midi 2.0 is expected to add new +	 * types here. Applications are expected to skip unknown frame types. +	 */ +	__u8 frame_type; +	__u8 length; /* number of valid bytes in data field */ +	__u8 reserved[2]; +	__u32 tv_nsec;		/* nanoseconds */ +	__u64 tv_sec;		/* seconds */ +	__u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH]; +} __packed; +  struct snd_rawmidi_params {  	int stream;  	size_t buffer_size;		/* queue size in bytes */  	size_t avail_min;		/* minimum avail bytes for wakeup */  	unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */ -	unsigned char reserved[16];	/* reserved for future use */ +	unsigned int mode;		/* For input data only, frame incoming data */ +	unsigned char reserved[12];	/* reserved for future use */  };  #ifndef __KERNEL__ |