History

Merge tag 'sound-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound updates from Takashi Iwai: "As the diffstat shows we've had again a lot of works done for this cycle: the majority of changes are the continued componentization and code refactoring in ASoC, the tree-wide PCM API updates and cleanups and SOF updates while a few ASoC driver updates are seen, too. Here we go, some highlights: Core: - Finally y2038 support landed to ALSA ABI; some ioctls have been extended and lots of tricks were applied - Applying the new managed PCM buffer API to all drivers; the API itself was already merged in 5.5 - The already deprecated dimension support in ALSA control API is dropped completely now - Verification of ALSA control elements to catch API misuses ASoC: - Further code refactorings and moving things to the component level - Lots of updates and improvements on SOF / Intel drivers; now including common HDMI driver and SoundWire support - New driver support for Ingenic JZ4770, Mediatek MT6660, Qualcomm WCD934x and WSA881x, and Realtek RT700, RT711, RT715, RT1011, RT1015 and RT1308 HD-audio: - Improved ring-buffer communications using waitqueue - Drop the superfluous buffer preallocation on x86 Others: - Many code cleanups, mostly constifications over the whole tree - USB-audio: quirks for MOTU, Corsair Virtuoso, Line6 Helix - FireWire: code refactoring for oxfw and dice drivers" * tag 'sound-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (638 commits) ALSA: usb-audio: add quirks for Line6 Helix devices fw>=2.82 ALSA: hda: Add Clevo W65_67SB the power_save blacklist ASoC: soc-core: remove null_snd_soc_ops ASoC: soc-pcm: add soc_rtd_trigger() ASoC: soc-pcm: add soc_rtd_hw_free() ASoC: soc-pcm: add soc_rtd_hw_params() ASoC: soc-pcm: add soc_rtd_prepare() ASoC: soc-pcm: add soc_rtd_shutdown() ASoC: soc-pcm: add soc_rtd_startup() ASoC: rt1015: add rt1015 amplifier driver ASoC: madera: Correct some kernel doc ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization order ASoC: Intel: skl_hda_dsp_common: Fix global-out-of-bounds bug ASoC: madera: Correct DMIC only input hook ups ALSA: cs46xx: fix spelling mistake "to" -> "too" ALSA: hda - Add docking station support for Lenovo Thinkpad T420s ASoC: Add MediaTek MT6660 Speaker Amp Driver ASoC: dt-bindings: rt5645: add suppliers ASoC: max98090: fix deadlock in max98090_dapm_put_enum_double() ASoC: dapm: add snd_soc_dapm_put_enum_double_locked ...

Linus Torvalds committed 6 years ago

Commit fb95aae2 parents bd2463a 90fb04f617 files · +27603 −8124Browse files

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

Unified · Split

7 files
  1. include/uapi/sound/asoc.h +0 −1
  2. include/uapi/sound/asound.h +132 −23
  3. include/uapi/sound/emu10k1.h +25 −17
  4. include/uapi/sound/hdsp.h +3 −10
  5. include/uapi/sound/hdspm.h +2 −8
  6. include/uapi/sound/sof/abi.h +1 −1
  7. include/uapi/sound/sof/tokens.h +7 −2
include/uapi/sound/asoc.h+0−1
@@ -17,7 +17,6 @@ · 16 unmodified lines
17#define __LINUX_UAPI_SND_ASOC_H17#define __LINUX_UAPI_SND_ASOC_H
18 18
19#include <linux/types.h>19#include <linux/types.h>
20#include <sound/asound.h>
21 20
22/*21/*
23 * Maximum number of channels topology kcontrol can represent.22 * Maximum number of channels topology kcontrol can represent.
include/uapi/sound/asound.h+132−23
@@ -26,7 +26,9 @@ · 25 unmodified lines
26 26
27#if defined(__KERNEL__) || defined(__linux__)27#if defined(__KERNEL__) || defined(__linux__)
28#include <linux/types.h>28#include <linux/types.h>
29#include <asm/byteorder.h>
29#else30#else
31#include <endian.h>
30#include <sys/ioctl.h>32#include <sys/ioctl.h>
31#endif33#endif
32 34
@@ -154,7 +156,7 @@ struct snd_hwdep_dsp_image { · 121 unmodified lines
154 * *156 * *
155 *****************************************************************************/157 *****************************************************************************/
156 158
157#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 14)159#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 15)
158 160
159typedef unsigned long snd_pcm_uframes_t;161typedef unsigned long snd_pcm_uframes_t;
160typedef signed long snd_pcm_sframes_t;162typedef signed long snd_pcm_sframes_t;
@@ -301,7 +303,9 @@ typedef int __bitwise snd_pcm_subformat_t; · 140 unmodified lines
301#define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */303#define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */
302#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */304#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
303 305
304 306#if (__BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64)) || defined __KERNEL__
307#define __SND_STRUCT_TIME64
308#endif
305 309
306typedef int __bitwise snd_pcm_state_t;310typedef int __bitwise snd_pcm_state_t;
307#define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */311#define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */
@@ -317,8 +321,17 @@ typedef int __bitwise snd_pcm_state_t; · 9 unmodified lines
317 321
318enum {322enum {
319 SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000,323 SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000,
320 SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000,324 SNDRV_PCM_MMAP_OFFSET_STATUS_OLD = 0x80000000,
321 SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000,325 SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD = 0x81000000,
326 SNDRV_PCM_MMAP_OFFSET_STATUS_NEW = 0x82000000,
327 SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW = 0x83000000,
328#ifdef __SND_STRUCT_TIME64
329 SNDRV_PCM_MMAP_OFFSET_STATUS = SNDRV_PCM_MMAP_OFFSET_STATUS_NEW,
330 SNDRV_PCM_MMAP_OFFSET_CONTROL = SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW,
331#else
332 SNDRV_PCM_MMAP_OFFSET_STATUS = SNDRV_PCM_MMAP_OFFSET_STATUS_OLD,
333 SNDRV_PCM_MMAP_OFFSET_CONTROL = SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD,
334#endif
322};335};
323 336
324union snd_pcm_sync_id {337union snd_pcm_sync_id {
@@ -456,8 +469,13 @@ enum { · 131 unmodified lines
456 SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED469 SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED
457};470};
458 471
472#ifndef __KERNEL__
473/* explicit padding avoids incompatibility between i386 and x86-64 */
474typedef struct { unsigned char pad[sizeof(time_t) - sizeof(int)]; } __time_pad;
475
459struct snd_pcm_status {476struct snd_pcm_status {
460 snd_pcm_state_t state; /* stream state */477 snd_pcm_state_t state; /* stream state */
478 __time_pad pad1; /* align to timespec */
461 struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */479 struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */
462 struct timespec tstamp; /* reference timestamp */480 struct timespec tstamp; /* reference timestamp */
463 snd_pcm_uframes_t appl_ptr; /* appl ptr */481 snd_pcm_uframes_t appl_ptr; /* appl ptr */
@@ -473,17 +491,48 @@ struct snd_pcm_status { · 9 unmodified lines
473 __u32 audio_tstamp_accuracy; /* in ns units, only valid if indicated in audio_tstamp_data */491 __u32 audio_tstamp_accuracy; /* in ns units, only valid if indicated in audio_tstamp_data */
474 unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */492 unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */
475};493};
494#endif
495
496/*
497 * For mmap operations, we need the 64-bit layout, both for compat mode,
498 * and for y2038 compatibility. For 64-bit applications, the two definitions
499 * are identical, so we keep the traditional version.
500 */
501#ifdef __SND_STRUCT_TIME64
502#define __snd_pcm_mmap_status64 snd_pcm_mmap_status
503#define __snd_pcm_mmap_control64 snd_pcm_mmap_control
504#define __snd_pcm_sync_ptr64 snd_pcm_sync_ptr
505#ifdef __KERNEL__
506#define __snd_timespec64 __kernel_timespec
507#else
508#define __snd_timespec64 timespec
509#endif
510struct __snd_timespec {
511 __s32 tv_sec;
512 __s32 tv_nsec;
513};
514#else
515#define __snd_pcm_mmap_status snd_pcm_mmap_status
516#define __snd_pcm_mmap_control snd_pcm_mmap_control
517#define __snd_pcm_sync_ptr snd_pcm_sync_ptr
518#define __snd_timespec timespec
519struct __snd_timespec64 {
520 __s64 tv_sec;
521 __s64 tv_nsec;
522};
476 523
477struct snd_pcm_mmap_status {524#endif
525
526struct __snd_pcm_mmap_status {
478 snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */527 snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */
479 int pad1; /* Needed for 64 bit alignment */528 int pad1; /* Needed for 64 bit alignment */
480 snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */529 snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
481 struct timespec tstamp; /* Timestamp */530 struct __snd_timespec tstamp; /* Timestamp */
482 snd_pcm_state_t suspended_state; /* RO: suspended stream state */531 snd_pcm_state_t suspended_state; /* RO: suspended stream state */
483 struct timespec audio_tstamp; /* from sample counter or wall clock */532 struct __snd_timespec audio_tstamp; /* from sample counter or wall clock */
484};533};
485 534
486struct snd_pcm_mmap_control {535struct __snd_pcm_mmap_control {
487 snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */536 snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
488 snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */537 snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */
489};538};
@@ -492,14 +541,59 @@ struct snd_pcm_mmap_control { · 2 unmodified lines
492#define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */541#define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */
493#define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */542#define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */
494 543
495struct snd_pcm_sync_ptr {544struct __snd_pcm_sync_ptr {
496 unsigned int flags;545 unsigned int flags;
497 union {546 union {
498 struct snd_pcm_mmap_status status;547 struct __snd_pcm_mmap_status status;
499 unsigned char reserved[64];548 unsigned char reserved[64];
500 } s;549 } s;
501 union {550 union {
502 struct snd_pcm_mmap_control control;551 struct __snd_pcm_mmap_control control;
552 unsigned char reserved[64];
553 } c;
554};
555
556#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
557typedef char __pad_before_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
558typedef char __pad_after_uframe[0];
559#endif
560
561#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
562typedef char __pad_before_uframe[0];
563typedef char __pad_after_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
564#endif
565
566struct __snd_pcm_mmap_status64 {
567 __s32 state; /* RO: state - SNDRV_PCM_STATE_XXXX */
568 __u32 pad1; /* Needed for 64 bit alignment */
569 __pad_before_uframe __pad1;
570 snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
571 __pad_after_uframe __pad2;
572 struct __snd_timespec64 tstamp; /* Timestamp */
573 __s32 suspended_state; /* RO: suspended stream state */
574 __u32 pad3; /* Needed for 64 bit alignment */
575 struct __snd_timespec64 audio_tstamp; /* sample counter or wall clock */
576};
577
578struct __snd_pcm_mmap_control64 {
579 __pad_before_uframe __pad1;
580 snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
581 __pad_before_uframe __pad2;
582
583 __pad_before_uframe __pad3;
584 snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */
585 __pad_after_uframe __pad4;
586};
587
588struct __snd_pcm_sync_ptr64 {
589 __u32 flags;
590 __u32 pad1;
591 union {
592 struct __snd_pcm_mmap_status64 status;
593 unsigned char reserved[64];
594 } s;
595 union {
596 struct __snd_pcm_mmap_control64 control;
503 unsigned char reserved[64];597 unsigned char reserved[64];
504 } c;598 } c;
505};599};
@@ -584,6 +678,8 @@ enum { · 78 unmodified lines
584#define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status)678#define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status)
585#define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t)679#define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t)
586#define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22)680#define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22)
681#define __SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct __snd_pcm_sync_ptr)
682#define __SNDRV_PCM_IOCTL_SYNC_PTR64 _IOWR('A', 0x23, struct __snd_pcm_sync_ptr64)
587#define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr)683#define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr)
588#define SNDRV_PCM_IOCTL_STATUS_EXT _IOWR('A', 0x24, struct snd_pcm_status)684#define SNDRV_PCM_IOCTL_STATUS_EXT _IOWR('A', 0x24, struct snd_pcm_status)
589#define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info)685#define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info)
@@ -614,7 +710,7 @@ enum { · 24 unmodified lines
614 * Raw MIDI section - /dev/snd/midi??710 * Raw MIDI section - /dev/snd/midi??
615 */711 */
616 712
617#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 0)713#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1)
618 714
619enum {715enum {
620 SNDRV_RAWMIDI_STREAM_OUTPUT = 0,716 SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
@@ -648,13 +744,16 @@ struct snd_rawmidi_params { · 27 unmodified lines
648 unsigned char reserved[16]; /* reserved for future use */744 unsigned char reserved[16]; /* reserved for future use */
649};745};
650 746
747#ifndef __KERNEL__
651struct snd_rawmidi_status {748struct snd_rawmidi_status {
652 int stream;749 int stream;
750 __time_pad pad1;
653 struct timespec tstamp; /* Timestamp */751 struct timespec tstamp; /* Timestamp */
654 size_t avail; /* available bytes */752 size_t avail; /* available bytes */
655 size_t xruns; /* count of overruns since last status (in bytes) */753 size_t xruns; /* count of overruns since last status (in bytes) */
656 unsigned char reserved[16]; /* reserved for future use */754 unsigned char reserved[16]; /* reserved for future use */
657};755};
756#endif
658 757
659#define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)758#define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
660#define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)759#define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
@@ -667,7 +766,7 @@ struct snd_rawmidi_status { · 6 unmodified lines
667 * Timer section - /dev/snd/timer766 * Timer section - /dev/snd/timer
668 */767 */
669 768
670#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6)769#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7)
671 770
672enum {771enum {
673 SNDRV_TIMER_CLASS_NONE = -1,772 SNDRV_TIMER_CLASS_NONE = -1,
@@ -761,6 +860,7 @@ struct snd_timer_params { · 87 unmodified lines
761 unsigned char reserved[60]; /* reserved */860 unsigned char reserved[60]; /* reserved */
762};861};
763 862
863#ifndef __KERNEL__
764struct snd_timer_status {864struct snd_timer_status {
765 struct timespec tstamp; /* Timestamp - last update */865 struct timespec tstamp; /* Timestamp - last update */
766 unsigned int resolution; /* current period resolution in ns */866 unsigned int resolution; /* current period resolution in ns */
@@ -769,10 +869,11 @@ struct snd_timer_status { · 2 unmodified lines
769 unsigned int queue; /* used queue size */869 unsigned int queue; /* used queue size */
770 unsigned char reserved[64]; /* reserved */870 unsigned char reserved[64]; /* reserved */
771};871};
872#endif
772 873
773#define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int)874#define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int)
774#define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id)875#define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id)
775#define SNDRV_TIMER_IOCTL_TREAD _IOW('T', 0x02, int)876#define SNDRV_TIMER_IOCTL_TREAD_OLD _IOW('T', 0x02, int)
776#define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo)877#define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo)
777#define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams)878#define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams)
778#define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus)879#define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus)
@@ -785,6 +886,15 @@ struct snd_timer_status { · 6 unmodified lines
785#define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1)886#define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1)
786#define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2)887#define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2)
787#define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3)888#define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3)
889#define SNDRV_TIMER_IOCTL_TREAD64 _IOW('T', 0xa4, int)
890
891#if __BITS_PER_LONG == 64
892#define SNDRV_TIMER_IOCTL_TREAD SNDRV_TIMER_IOCTL_TREAD_OLD
893#else
894#define SNDRV_TIMER_IOCTL_TREAD ((sizeof(__kernel_long_t) >= sizeof(time_t)) ? \
895 SNDRV_TIMER_IOCTL_TREAD_OLD : \
896 SNDRV_TIMER_IOCTL_TREAD64)
897#endif
788 898
789struct snd_timer_read {899struct snd_timer_read {
790 unsigned int resolution;900 unsigned int resolution;
@@ -810,11 +920,15 @@ enum { · 19 unmodified lines
810 SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10,920 SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10,
811};921};
812 922
923#ifndef __KERNEL__
813struct snd_timer_tread {924struct snd_timer_tread {
814 int event;925 int event;
926 __time_pad pad1;
815 struct timespec tstamp;927 struct timespec tstamp;
816 unsigned int val;928 unsigned int val;
929 __time_pad pad2;
817};930};
931#endif
818 932
819/****************************************************************************933/****************************************************************************
820 * *934 * *
@@ -822,7 +936,7 @@ struct snd_timer_tread { · 1 unmodified line
822 * *936 * *
823 ****************************************************************************/937 ****************************************************************************/
824 938
825#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7)939#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 8)
826 940
827struct snd_ctl_card_info {941struct snd_ctl_card_info {
828 int card; /* card number */942 int card; /* card number */
@@ -860,7 +974,7 @@ typedef int __bitwise snd_ctl_elem_iface_t; · 31 unmodified lines
860#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1)974#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1)
861#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)975#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
862#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */976#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */
863#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */977// (1 << 3) is unused.
864#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */978#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */
865#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */979#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */
866#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)980#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)
@@ -926,11 +1040,7 @@ struct snd_ctl_elem_info { · 59 unmodified lines
926 } enumerated;1040 } enumerated;
927 unsigned char reserved[128];1041 unsigned char reserved[128];
928 } value;1042 } value;
929 union {1043 unsigned char reserved[64];
930 unsigned short d[4]; /* dimensions */
931 unsigned short *d_ptr; /* indirect - obsoleted */
932 } dimen;
933 unsigned char reserved[64-4*sizeof(unsigned short)];
934};1044};
935 1045
936struct snd_ctl_elem_value {1046struct snd_ctl_elem_value {
@@ -955,8 +1065,7 @@ struct snd_ctl_elem_value { · 18 unmodified lines
955 } bytes;1065 } bytes;
956 struct snd_aes_iec958 iec958;1066 struct snd_aes_iec958 iec958;
957 } value; /* RO */1067 } value; /* RO */
958 struct timespec tstamp;1068 unsigned char reserved[128];
959 unsigned char reserved[128-sizeof(struct timespec)];
960};1069};
961 1070
962struct snd_ctl_tlv {1071struct snd_ctl_tlv {
include/uapi/sound/emu10k1.h+25−17
@@ -23,8 +23,9 @@ · 22 unmodified lines
23#ifndef _UAPI__SOUND_EMU10K1_H23#ifndef _UAPI__SOUND_EMU10K1_H
24#define _UAPI__SOUND_EMU10K1_H24#define _UAPI__SOUND_EMU10K1_H
25 25
26#ifdef __linux__
26#include <linux/types.h>27#include <linux/types.h>
27#include <sound/asound.h>28#endif
28 29
29/*30/*
30 * ---- FX8010 ----31 * ---- FX8010 ----
@@ -282,8 +283,22 @@ struct snd_emu10k1_fx8010_info { · 251 unmodified lines
282#define EMU10K1_GPR_TRANSLATION_TREBLE 3283#define EMU10K1_GPR_TRANSLATION_TREBLE 3
283#define EMU10K1_GPR_TRANSLATION_ONOFF 4284#define EMU10K1_GPR_TRANSLATION_ONOFF 4
284 285
286enum emu10k1_ctl_elem_iface {
287 EMU10K1_CTL_ELEM_IFACE_MIXER = 2, /* virtual mixer device */
288 EMU10K1_CTL_ELEM_IFACE_PCM = 3, /* PCM device */
289};
290
291struct emu10k1_ctl_elem_id {
292 unsigned int pad; /* don't use */
293 int iface; /* interface identifier */
294 unsigned int device; /* device/client number */
295 unsigned int subdevice; /* subdevice (substream) number */
296 unsigned char name[44]; /* ASCII name of item */
297 unsigned int index; /* index of item */
298};
299
285struct snd_emu10k1_fx8010_control_gpr {300struct snd_emu10k1_fx8010_control_gpr {
286 struct snd_ctl_elem_id id; /* full control ID definition */301 struct emu10k1_ctl_elem_id id; /* full control ID definition */
287 unsigned int vcount; /* visible count */302 unsigned int vcount; /* visible count */
288 unsigned int count; /* count of GPR (1..16) */303 unsigned int count; /* count of GPR (1..16) */
289 unsigned short gpr[32]; /* GPR number(s) */304 unsigned short gpr[32]; /* GPR number(s) */
@@ -296,7 +311,7 @@ struct snd_emu10k1_fx8010_control_gpr { · 6 unmodified lines
296 311
297/* old ABI without TLV support */312/* old ABI without TLV support */
298struct snd_emu10k1_fx8010_control_old_gpr {313struct snd_emu10k1_fx8010_control_old_gpr {
299 struct snd_ctl_elem_id id;314 struct emu10k1_ctl_elem_id id;
300 unsigned int vcount;315 unsigned int vcount;
301 unsigned int count;316 unsigned int count;
302 unsigned short gpr[32];317 unsigned short gpr[32];
@@ -310,24 +325,24 @@ struct snd_emu10k1_fx8010_code { · 7 unmodified lines
310 char name[128];325 char name[128];
311 326
312 __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */327 __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
313 __u32 __user *gpr_map; /* initializers */328 __u32 *gpr_map; /* initializers */
314 329
315 unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */330 unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
316 struct snd_emu10k1_fx8010_control_gpr __user *gpr_add_controls; /* GPR controls to add/replace */331 struct snd_emu10k1_fx8010_control_gpr *gpr_add_controls; /* GPR controls to add/replace */
317 332
318 unsigned int gpr_del_control_count; /* count of GPR controls to remove */333 unsigned int gpr_del_control_count; /* count of GPR controls to remove */
319 struct snd_ctl_elem_id __user *gpr_del_controls; /* IDs of GPR controls to remove */334 struct emu10k1_ctl_elem_id *gpr_del_controls; /* IDs of GPR controls to remove */
320 335
321 unsigned int gpr_list_control_count; /* count of GPR controls to list */336 unsigned int gpr_list_control_count; /* count of GPR controls to list */
322 unsigned int gpr_list_control_total; /* total count of GPR controls */337 unsigned int gpr_list_control_total; /* total count of GPR controls */
323 struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */338 struct snd_emu10k1_fx8010_control_gpr *gpr_list_controls; /* listed GPR controls */
324 339
325 __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */340 __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
326 __u32 __user *tram_data_map; /* data initializers */341 __u32 *tram_data_map; /* data initializers */
327 __u32 __user *tram_addr_map; /* map initializers */342 __u32 *tram_addr_map; /* map initializers */
328 343
329 __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */344 __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
330 __u32 __user *code; /* one instruction - 64 bits */345 __u32 *code; /* one instruction - 64 bits */
331};346};
332 347
333struct snd_emu10k1_fx8010_tram {348struct snd_emu10k1_fx8010_tram {
@@ -371,11 +386,4 @@ struct snd_emu10k1_fx8010_pcm_rec { · 37 unmodified lines
371#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)386#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)
372#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)387#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)
373 388
374/* typedefs for compatibility to user-space */
375typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
376typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
377typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
378typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
379typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
380
381#endif /* _UAPI__SOUND_EMU10K1_H */389#endif /* _UAPI__SOUND_EMU10K1_H */
include/uapi/sound/hdsp.h+3−10
@@ -20,7 +20,9 @@ · 19 unmodified lines
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */21 */
22 22
23#ifdef __linux__
23#include <linux/types.h>24#include <linux/types.h>
25#endif
24 26
25#define HDSP_MATRIX_MIXER_SIZE 204827#define HDSP_MATRIX_MIXER_SIZE 2048
26 28
@@ -74,7 +76,7 @@ struct hdsp_config_info { · 47 unmodified lines
74#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info)76#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info)
75 77
76struct hdsp_firmware {78struct hdsp_firmware {
77 void __user *firmware_data; /* 24413 x 4 bytes */79 void *firmware_data; /* 24413 x 4 bytes */
78};80};
79 81
80#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware)82#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware)
@@ -99,13 +101,4 @@ struct hdsp_9632_aeb { · 18 unmodified lines
99 101
100#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)102#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)
101 103
102/* typedefs for compatibility to user-space */
103typedef enum HDSP_IO_Type HDSP_IO_Type;
104typedef struct hdsp_peak_rms hdsp_peak_rms_t;
105typedef struct hdsp_config_info hdsp_config_info_t;
106typedef struct hdsp_firmware hdsp_firmware_t;
107typedef struct hdsp_version hdsp_version_t;
108typedef struct hdsp_mixer hdsp_mixer_t;
109typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
110
111#endif /* __SOUND_HDSP_H */104#endif /* __SOUND_HDSP_H */
include/uapi/sound/hdspm.h+2−8
@@ -21,7 +21,9 @@ · 20 unmodified lines
21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.21 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 */22 */
23 23
24#ifdef __linux__
24#include <linux/types.h>25#include <linux/types.h>
26#endif
25 27
26/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */28/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
27#define HDSPM_MAX_CHANNELS 6429#define HDSPM_MAX_CHANNELS 64
@@ -221,12 +223,4 @@ struct hdspm_mixer_ioctl { · 193 unmodified lines
221/* use indirect access due to the limit of ioctl bit size */223/* use indirect access due to the limit of ioctl bit size */
222#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)224#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
223 225
224/* typedefs for compatibility to user-space */
225typedef struct hdspm_peak_rms hdspm_peak_rms_t;
226typedef struct hdspm_config_info hdspm_config_info_t;
227typedef struct hdspm_version hdspm_version_t;
228typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
229typedef struct hdspm_mixer hdspm_mixer_t;
230
231
232#endif226#endif
include/uapi/sound/sof/abi.h+1−1
@@ -26,7 +26,7 @@ · 25 unmodified lines
26 26
27/* SOF ABI version major, minor and patch numbers */27/* SOF ABI version major, minor and patch numbers */
28#define SOF_ABI_MAJOR 328#define SOF_ABI_MAJOR 3
29#define SOF_ABI_MINOR 1129#define SOF_ABI_MINOR 12
30#define SOF_ABI_PATCH 030#define SOF_ABI_PATCH 0
31 31
32/* SOF ABI version number. Format within 32bit word is MMmmmppp */32/* SOF ABI version number. Format within 32bit word is MMmmmppp */
include/uapi/sound/sof/tokens.h+7−2
@@ -57,6 +57,12 @@ · 56 unmodified lines
57#define SOF_TKN_SRC_RATE_IN 30057#define SOF_TKN_SRC_RATE_IN 300
58#define SOF_TKN_SRC_RATE_OUT 30158#define SOF_TKN_SRC_RATE_OUT 301
59 59
60/* ASRC */
61#define SOF_TKN_ASRC_RATE_IN 320
62#define SOF_TKN_ASRC_RATE_OUT 321
63#define SOF_TKN_ASRC_ASYNCHRONOUS_MODE 322
64#define SOF_TKN_ASRC_OPERATION_MODE 323
65
60/* PCM */66/* PCM */
61#define SOF_TKN_PCM_DMAC_CONFIG 35367#define SOF_TKN_PCM_DMAC_CONFIG 353
62 68
@@ -107,8 +113,7 @@ · 44 unmodified lines
107#define SOF_TKN_EFFECT_TYPE SOF_TKN_PROCESS_TYPE113#define SOF_TKN_EFFECT_TYPE SOF_TKN_PROCESS_TYPE
108 114
109/* SAI */115/* SAI */
110#define SOF_TKN_IMX_SAI_FIRST_TOKEN 1000116#define SOF_TKN_IMX_SAI_MCLK_ID 1000
111/* TODO: Add SAI tokens */
112 117
113/* ESAI */118/* ESAI */
114#define SOF_TKN_IMX_ESAI_MCLK_ID 1100119#define SOF_TKN_IMX_ESAI_MCLK_ID 1100

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