- Backport upstream fixes: UCM updates, Broadwell UCM support, namehint fixes, fix faulty assert in PCM plugins, etc: 0001-ucm-document-some-standard-values.patch 0002-conf-ucm-broadwell-rt286-add-ucm-config.patch 0003-conf-ucm-Add-Makefile.am-for-broadwell-rt286-ucm-con.patch 0004-ucm-reformat-snd_use_case_get-doc.patch 0005-ucm-improve-jack-configuration-documentation.patch 0006-USB-audio-Sound-Blaster-HD-iec958-is-on-device-1.patch 0007-Sync-include-sound-asound.h-with-4.1-kernel.patch 0008-conf-ucm-broadwell-rt286-change-to-use-the-correct-j.patch 0009-namehint-Fix-invalid-list-access-in-snd_device_name_.patch 0010-namehint-Fix-the-listing-without-device-number.patch 0011-namehint-Fix-bad-free-with-invalid-iface-name.patch 0012-Allow-hint-for-ctl-hwdep-timer-and-seq.patch 0013-conf-Add-hint-descriptions-to-ctl-hwdep-seq-and-time.patch 0014-conf-ucm-broadwell-rt286-change-to-set-capture-volum.patch 0015-ucm-allow-multiple-devices-in-JackHWMute.patch 0016-pcm-Remove-assert-from-snd_pcm_hw_params_slave.patch OBS-URL: https://build.opensuse.org/request/show/308371 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=181
113 lines
5.5 KiB
Diff
113 lines
5.5 KiB
Diff
From b07de7c26b147a19621e35b33fa772de575fa2b8 Mon Sep 17 00:00:00 2001
|
|
From: Takashi Iwai <tiwai@suse.de>
|
|
Date: Tue, 21 Apr 2015 12:49:29 +0200
|
|
Subject: [PATCH 07/16] Sync include/sound/asound.h with 4.1 kernel
|
|
|
|
This adds the new ABI for timestamp stuff and minor fixes.
|
|
|
|
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
---
|
|
include/sound/asound.h | 42 ++++++++++++++++++++++++++++++++++++------
|
|
1 file changed, 36 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/include/sound/asound.h b/include/sound/asound.h
|
|
index 1f23cd635957..a45be6bdcf5b 100644
|
|
--- a/include/sound/asound.h
|
|
+++ b/include/sound/asound.h
|
|
@@ -25,6 +25,9 @@
|
|
|
|
#include <linux/types.h>
|
|
|
|
+#ifndef __KERNEL__
|
|
+#include <stdlib.h>
|
|
+#endif
|
|
|
|
/*
|
|
* protocol version
|
|
@@ -140,7 +143,7 @@ struct snd_hwdep_dsp_image {
|
|
* *
|
|
*****************************************************************************/
|
|
|
|
-#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 12)
|
|
+#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 13)
|
|
|
|
typedef unsigned long snd_pcm_uframes_t;
|
|
typedef signed long snd_pcm_sframes_t;
|
|
@@ -267,9 +270,17 @@ typedef int __bitwise snd_pcm_subformat_t;
|
|
#define SNDRV_PCM_INFO_JOINT_DUPLEX 0x00200000 /* playback and capture stream are somewhat correlated */
|
|
#define SNDRV_PCM_INFO_SYNC_START 0x00400000 /* pcm support some kind of sync go */
|
|
#define SNDRV_PCM_INFO_NO_PERIOD_WAKEUP 0x00800000 /* period wakeup can be disabled */
|
|
-#define SNDRV_PCM_INFO_HAS_WALL_CLOCK 0x01000000 /* has audio wall clock for audio/system time sync */
|
|
+#define SNDRV_PCM_INFO_HAS_WALL_CLOCK 0x01000000 /* (Deprecated)has audio wall clock for audio/system time sync */
|
|
+#define SNDRV_PCM_INFO_HAS_LINK_ATIME 0x01000000 /* report hardware link audio time, reset on startup */
|
|
+#define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000 /* report absolute hardware link audio time, not reset on startup */
|
|
+#define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000 /* report estimated link audio time */
|
|
+#define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000 /* report synchronized audio/system time */
|
|
+
|
|
+#define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */
|
|
#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
|
|
|
|
+
|
|
+
|
|
typedef int __bitwise snd_pcm_state_t;
|
|
#define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */
|
|
#define SNDRV_PCM_STATE_SETUP ((__force snd_pcm_state_t) 1) /* stream has a setup */
|
|
@@ -407,6 +418,22 @@ struct snd_pcm_channel_info {
|
|
unsigned int step; /* samples distance in bits */
|
|
};
|
|
|
|
+enum {
|
|
+ /*
|
|
+ * first definition for backwards compatibility only,
|
|
+ * maps to wallclock/link time for HDAudio playback and DEFAULT/DMA time for everything else
|
|
+ */
|
|
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_COMPAT = 0,
|
|
+
|
|
+ /* timestamp definitions */
|
|
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT = 1, /* DMA time, reported as per hw_ptr */
|
|
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK = 2, /* link time reported by sample or wallclock counter, reset on startup */
|
|
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE = 3, /* link time reported by sample or wallclock counter, not reset on startup */
|
|
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED = 4, /* link time estimated indirectly */
|
|
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED = 5, /* link time synchronized with system time */
|
|
+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED
|
|
+};
|
|
+
|
|
struct snd_pcm_status {
|
|
snd_pcm_state_t state; /* stream state */
|
|
struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */
|
|
@@ -418,9 +445,11 @@ struct snd_pcm_status {
|
|
snd_pcm_uframes_t avail_max; /* max frames available on hw since last status */
|
|
snd_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */
|
|
snd_pcm_state_t suspended_state; /* suspended stream state */
|
|
- __u32 reserved_alignment; /* must be filled with zero */
|
|
- struct timespec audio_tstamp; /* from sample counter or wall clock */
|
|
- unsigned char reserved[56-sizeof(struct timespec)]; /* must be filled with zero */
|
|
+ __u32 audio_tstamp_data; /* needed for 64-bit alignment, used for configs/report to/from userspace */
|
|
+ struct timespec audio_tstamp; /* sample counter, wall clock, PHC or on-demand sync'ed */
|
|
+ struct timespec driver_tstamp; /* useful in case reference system tstamp is reported with delay */
|
|
+ __u32 audio_tstamp_accuracy; /* in ns units, only valid if indicated in audio_tstamp_data */
|
|
+ unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */
|
|
};
|
|
|
|
struct snd_pcm_mmap_status {
|
|
@@ -533,6 +562,7 @@ enum {
|
|
#define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t)
|
|
#define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22)
|
|
#define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr)
|
|
+#define SNDRV_PCM_IOCTL_STATUS_EXT _IOWR('A', 0x24, struct snd_pcm_status)
|
|
#define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info)
|
|
#define SNDRV_PCM_IOCTL_PREPARE _IO('A', 0x40)
|
|
#define SNDRV_PCM_IOCTL_RESET _IO('A', 0x41)
|
|
@@ -834,7 +864,7 @@ struct snd_ctl_elem_id {
|
|
snd_ctl_elem_iface_t iface; /* interface identifier */
|
|
unsigned int device; /* device/client number */
|
|
unsigned int subdevice; /* subdevice (substream) number */
|
|
- unsigned char name[44]; /* ASCII name of item */
|
|
+ unsigned char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* ASCII name of item */
|
|
unsigned int index; /* index of item */
|
|
};
|
|
|
|
--
|
|
2.4.1
|
|
|