Ignore:
Timestamp:
Apr 19, 2025, 8:08:37 PM (4 months ago)
Author:
David Azarewicz
Message:

Merge in changes from 6.6-LTS branch.
Fixed additional 25+ problems.

Location:
GPL/trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/include/uapi/sound/asequencer.h

    r615 r772  
    44 *  Copyright (c) 1998-1999 by Frank van de Pol <fvdpol@coil.demon.nl>
    55 *            (c) 1998-1999 by Jaroslav Kysela <perex@perex.cz>
    6  *
    7  *
    8  *   This program is free software; you can redistribute it and/or modify
    9  *   it under the terms of the GNU General Public License as published by
    10  *   the Free Software Foundation; either version 2 of the License, or
    11  *   (at your option) any later version.
    12  *
    13  *   This program is distributed in the hope that it will be useful,
    14  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16  *   GNU General Public License for more details.
    17  *
    18  *   You should have received a copy of the GNU General Public License
    19  *   along with this program; if not, write to the Free Software
    20  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    21  *
    226 */
    237#ifndef _UAPI__SOUND_ASEQUENCER_H
     
    2711
    2812/** version of the sequencer */
    29 #define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 2)
     13#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 3)
    3014
    3115/**
     
    191175#define SNDRV_SEQ_PRIORITY_MASK         (1<<4)
    192176
     177#define SNDRV_SEQ_EVENT_UMP             (1<<5)  /* event holds a UMP packet */
    193178
    194179        /* note event */
     
    288273#endif
    289274
     275union snd_seq_event_data { /* event data... */
     276        struct snd_seq_ev_note note;
     277        struct snd_seq_ev_ctrl control;
     278        struct snd_seq_ev_raw8 raw8;
     279        struct snd_seq_ev_raw32 raw32;
     280        struct snd_seq_ev_ext ext;
     281        struct snd_seq_ev_queue_control queue;
     282        union snd_seq_timestamp time;
     283        struct snd_seq_addr addr;
     284        struct snd_seq_connect connect;
     285        struct snd_seq_result result;
     286        struct snd_seq_ev_quote quote;
     287};
    290288
    291289        /* sequencer event */
     
    298296        union snd_seq_timestamp time;   /* schedule time */
    299297
    300 
    301298        struct snd_seq_addr source;     /* source address */
    302299        struct snd_seq_addr dest;       /* destination address */
    303300
    304         union {                         /* event data... */
    305                 struct snd_seq_ev_note note;
    306                 struct snd_seq_ev_ctrl control;
    307                 struct snd_seq_ev_raw8 raw8;
    308                 struct snd_seq_ev_raw32 raw32;
    309                 struct snd_seq_ev_ext ext;
    310                 struct snd_seq_ev_queue_control queue;
    311                 union snd_seq_timestamp time;
    312                 struct snd_seq_addr addr;
    313                 struct snd_seq_connect connect;
    314                 struct snd_seq_result result;
    315                 struct snd_seq_ev_quote quote;
    316         } data;
    317 };
    318 
     301        union snd_seq_event_data data;
     302};
     303
     304        /* (compatible) event for UMP-capable clients */
     305struct snd_seq_ump_event {
     306        snd_seq_event_type_t type;      /* event type */
     307        unsigned char flags;            /* event flags */
     308        char tag;
     309        unsigned char queue;            /* schedule queue */
     310        union snd_seq_timestamp time;   /* schedule time */
     311        struct snd_seq_addr source;     /* source address */
     312        struct snd_seq_addr dest;       /* destination address */
     313
     314        union {
     315                union snd_seq_event_data data;
     316                unsigned int ump[4];
     317        };
     318};
    319319
    320320/*
     
    364364                       
    365365        /* event filter flags */
    366 #define SNDRV_SEQ_FILTER_BROADCAST      (1<<0)  /* accept broadcast messages */
    367 #define SNDRV_SEQ_FILTER_MULTICAST      (1<<1)  /* accept multicast messages */
    368 #define SNDRV_SEQ_FILTER_BOUNCE         (1<<2)  /* accept bounce event in error */
    369 #define SNDRV_SEQ_FILTER_USE_EVENT      (1<<31) /* use event filter */
     366#define SNDRV_SEQ_FILTER_BROADCAST      (1U<<0) /* accept broadcast messages */
     367#define SNDRV_SEQ_FILTER_MULTICAST      (1U<<1) /* accept multicast messages */
     368#define SNDRV_SEQ_FILTER_BOUNCE         (1U<<2) /* accept bounce event in error */
     369#define SNDRV_SEQ_FILTER_NO_CONVERT     (1U<<30) /* don't convert UMP events */
     370#define SNDRV_SEQ_FILTER_USE_EVENT      (1U<<31)        /* use event filter */
    370371
    371372struct snd_seq_client_info {
     
    380381        int card;                       /* RO: card number[kernel] */
    381382        int pid;                        /* RO: pid[user] */
    382         char reserved[56];              /* for future use */
    383 };
    384 
     383        unsigned int midi_version;      /* MIDI version */
     384        unsigned int group_filter;      /* UMP group filter bitmap
     385                                         * (bit 0 = groupless messages,
     386                                         *  bit 1-16 = messages for groups 1-16)
     387                                         */
     388        char reserved[48];              /* for future use */
     389};
     390
     391/* MIDI version numbers in client info */
     392#define SNDRV_SEQ_CLIENT_LEGACY_MIDI            0       /* Legacy client */
     393#define SNDRV_SEQ_CLIENT_UMP_MIDI_1_0           1       /* UMP MIDI 1.0 */
     394#define SNDRV_SEQ_CLIENT_UMP_MIDI_2_0           2       /* UMP MIDI 2.0 */
    385395
    386396/* client pool size */
     
    442452#define SNDRV_SEQ_PORT_CAP_SUBS_WRITE   (1<<6)  /* allow write subscription */
    443453#define SNDRV_SEQ_PORT_CAP_NO_EXPORT    (1<<7)  /* routing not allowed */
     454#define SNDRV_SEQ_PORT_CAP_INACTIVE     (1<<8)  /* inactive port */
     455#define SNDRV_SEQ_PORT_CAP_UMP_ENDPOINT (1<<9)  /* MIDI 2.0 UMP Endpoint port */
    444456
    445457        /* port type */
     
    451463#define SNDRV_SEQ_PORT_TYPE_MIDI_MT32   (1<<5)  /* MT-32 compatible device */
    452464#define SNDRV_SEQ_PORT_TYPE_MIDI_GM2    (1<<6)  /* General MIDI 2 compatible device */
     465#define SNDRV_SEQ_PORT_TYPE_MIDI_UMP    (1<<7)  /* UMP */
    453466
    454467/* other standards...*/
     
    468481#define SNDRV_SEQ_PORT_FLG_TIME_REAL    (1<<2)
    469482
     483/* port direction */
     484#define SNDRV_SEQ_PORT_DIR_UNKNOWN      0
     485#define SNDRV_SEQ_PORT_DIR_INPUT        1
     486#define SNDRV_SEQ_PORT_DIR_OUTPUT       2
     487#define SNDRV_SEQ_PORT_DIR_BIDIRECTION  3
     488
    470489struct snd_seq_port_info {
    471490        struct snd_seq_addr addr;       /* client/port numbers */
     
    484503        unsigned int flags;             /* misc. conditioning */
    485504        unsigned char time_queue;       /* queue # for timestamping */
    486         char reserved[59];              /* for future use */
     505        unsigned char direction;        /* port usage direction (r/w/bidir) */
     506        unsigned char ump_group;        /* 0 = UMP EP (no conversion), 1-16 = UMP group number */
     507        char reserved[57];              /* for future use */
    487508};
    488509
     
    588609};
    589610
     611/*
     612 * UMP-specific information
     613 */
     614/* type of UMP info query */
     615#define SNDRV_SEQ_CLIENT_UMP_INFO_ENDPOINT      0
     616#define SNDRV_SEQ_CLIENT_UMP_INFO_BLOCK         1
     617
     618struct snd_seq_client_ump_info {
     619        int client;                     /* client number to inquire/set */
     620        int type;                       /* type to inquire/set */
     621        unsigned char info[512];        /* info (either UMP ep or block info) */
     622} __packed;
    590623
    591624/*
     
    597630#define SNDRV_SEQ_IOCTL_SYSTEM_INFO     _IOWR('S', 0x02, struct snd_seq_system_info)
    598631#define SNDRV_SEQ_IOCTL_RUNNING_MODE    _IOWR('S', 0x03, struct snd_seq_running_info)
     632#define SNDRV_SEQ_IOCTL_USER_PVERSION   _IOW('S', 0x04, int)
    599633
    600634#define SNDRV_SEQ_IOCTL_GET_CLIENT_INFO _IOWR('S', 0x10, struct snd_seq_client_info)
    601635#define SNDRV_SEQ_IOCTL_SET_CLIENT_INFO _IOW ('S', 0x11, struct snd_seq_client_info)
     636#define SNDRV_SEQ_IOCTL_GET_CLIENT_UMP_INFO     _IOWR('S', 0x12, struct snd_seq_client_ump_info)
     637#define SNDRV_SEQ_IOCTL_SET_CLIENT_UMP_INFO     _IOWR('S', 0x13, struct snd_seq_client_ump_info)
    602638
    603639#define SNDRV_SEQ_IOCTL_CREATE_PORT     _IOWR('S', 0x20, struct snd_seq_port_info)
  • GPL/trunk/alsa-kernel/include/uapi/sound/asoc.h

    r695 r772  
    55 * Copyright (C) 2012 Texas Instruments Inc.
    66 * Copyright (C) 2015 Intel Corporation.
    7  *
    8  * This program is free software; you can redistribute it and/or modify
    9  * it under the terms of the GNU General Public License version 2 as
    10  * published by the Free Software Foundation.
    117 *
    128 * Simple file API to load FW that includes mixers, coefficients, DAPM graphs,
     
    227223        __le32 num_elems;       /* number of elements in array */
    228224        union {
    229                 struct snd_soc_tplg_vendor_uuid_elem uuid[0];
    230                 struct snd_soc_tplg_vendor_value_elem value[0];
    231                 struct snd_soc_tplg_vendor_string_elem string[0];
     225                __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_uuid_elem, uuid);
     226                __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_value_elem, value);
     227                __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_string_elem, string);
    232228        };
    233229} __attribute__((packed));
     
    241237        __le32 size;    /* in bytes of private data */
    242238        union {
    243                 char data[0];
    244                 struct snd_soc_tplg_vendor_array array[0];
     239                __DECLARE_FLEX_ARRAY(char, data);
     240                __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array);
    245241        };
    246242} __attribute__((packed));
  • GPL/trunk/alsa-kernel/include/uapi/sound/asound.h

    r717 r772  
    44 *  Copyright (c) 1994-2003 by Jaroslav Kysela <perex@perex.cz>,
    55 *                             Abramo Bagnara <abramo@alsa-project.org>
    6  *
    7  *
    8  *   This program is free software; you can redistribute it and/or modify
    9  *   it under the terms of the GNU General Public License as published by
    10  *   the Free Software Foundation; either version 2 of the License, or
    11  *   (at your option) any later version.
    12  *
    13  *   This program is distributed in the hope that it will be useful,
    14  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16  *   GNU General Public License for more details.
    17  *
    18  *   You should have received a copy of the GNU General Public License
    19  *   along with this program; if not, write to the Free Software
    20  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    21  *
    226 */
    237
     
    4428#ifndef __bitwise
    4529#define __bitwise
     30#endif
     31
     32#ifndef __packed
     33#define __packed
    4634#endif
    4735
     
    229217#define SNDRV_PCM_FORMAT_U24_LE ((__force snd_pcm_format_t) 8) /* low three bytes */
    230218#define SNDRV_PCM_FORMAT_U24_BE ((__force snd_pcm_format_t) 9) /* low three bytes */
     219/*
     220 * For S32/U32 formats, 'msbits' hardware parameter is often used to deliver information about the
     221 * available bit count in most significant bit. It's for the case of so-called 'left-justified' or
     222 * `right-padding` sample which has less width than 32 bit.
     223 */
    231224#define SNDRV_PCM_FORMAT_S32_LE ((__force snd_pcm_format_t) 10)
    232225#define SNDRV_PCM_FORMAT_S32_BE ((__force snd_pcm_format_t) 11)
     
    310303#define SNDRV_PCM_INFO_BATCH            0x00000010      /* double buffering */
    311304#define SNDRV_PCM_INFO_SYNC_APPLPTR     0x00000020      /* need the explicit sync of appl_ptr update */
     305#define SNDRV_PCM_INFO_PERFECT_DRAIN    0x00000040      /* silencing at the end of stream is not required */
    312306#define SNDRV_PCM_INFO_INTERLEAVED      0x00000100      /* channels are interleaved */
    313307#define SNDRV_PCM_INFO_NONINTERLEAVED   0x00000200      /* channels are not interleaved */
     
    327321#define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000  /* report synchronized audio/system time */
    328322#define SNDRV_PCM_INFO_EXPLICIT_SYNC    0x10000000      /* needs explicit sync of pointers and data */
    329 
     323#define SNDRV_PCM_INFO_NO_REWINDS       0x20000000      /* hardware can only support monotonic changes of appl_ptr */
    330324#define SNDRV_PCM_INFO_DRAIN_TRIGGER    0x40000000              /* internal kernel flag - trigger in drain */
    331325#define SNDRV_PCM_INFO_FIFO_IN_FRAMES   0x80000000      /* internal kernel flag - FIFO size is in frames */
     
    422416#define SNDRV_PCM_HW_PARAMS_EXPORT_BUFFER       (1<<1)  /* export buffer */
    423417#define SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP    (1<<2)  /* disable period wakeups */
     418#define SNDRV_PCM_HW_PARAMS_NO_DRAIN_SILENCE    (1<<3)  /* suppress drain with the filling
     419                                                         * of the silence samples
     420                                                         */
    424421
    425422struct snd_interval {
     
    468465        snd_pcm_uframes_t xfer_align;           /* obsolete: xfer size need to be a multiple */
    469466        snd_pcm_uframes_t start_threshold;      /* min hw_avail frames for automatic start */
    470         snd_pcm_uframes_t stop_threshold;       /* min avail frames for automatic stop */
    471         snd_pcm_uframes_t silence_threshold;    /* min distance from noise for silence filling */
    472         snd_pcm_uframes_t silence_size;         /* silence block size */
     467        /*
     468         * The following two thresholds alleviate playback buffer underruns; when
     469         * hw_avail drops below the threshold, the respective action is triggered:
     470         */
     471        snd_pcm_uframes_t stop_threshold;       /* - stop playback */
     472        snd_pcm_uframes_t silence_threshold;    /* - pre-fill buffer with silence */
     473        snd_pcm_uframes_t silence_size;         /* max size of silence pre-fill; when >= boundary,
     474                                                 * fill played area with silence immediately */
    473475        snd_pcm_uframes_t boundary;             /* pointers wrap point */
    474476        unsigned int proto;                     /* protocol version */
     
    619621        __pad_before_uframe __pad1;
    620622        snd_pcm_uframes_t appl_ptr;      /* RW: appl ptr (0...boundary-1) */
    621         __pad_before_uframe __pad2;
     623        __pad_before_uframe __pad2;      // This should be __pad_after_uframe, but binary
     624                                         // backwards compatibility constraints prevent a fix.
    622625
    623626        __pad_before_uframe __pad3;
     
    751754 */
    752755
    753 #define SNDRV_RAWMIDI_VERSION           SNDRV_PROTOCOL_VERSION(2, 0, 2)
     756#define SNDRV_RAWMIDI_VERSION           SNDRV_PROTOCOL_VERSION(2, 0, 4)
    754757
    755758enum {
     
    762765#define SNDRV_RAWMIDI_INFO_INPUT                0x00000002
    763766#define SNDRV_RAWMIDI_INFO_DUPLEX               0x00000004
     767#define SNDRV_RAWMIDI_INFO_UMP                  0x00000008
    764768
    765769struct snd_rawmidi_info {
     
    826830#endif
    827831
     832/* UMP EP info flags */
     833#define SNDRV_UMP_EP_INFO_STATIC_BLOCKS         0x01
     834
     835/* UMP EP Protocol / JRTS capability bits */
     836#define SNDRV_UMP_EP_INFO_PROTO_MIDI_MASK       0x0300
     837#define SNDRV_UMP_EP_INFO_PROTO_MIDI1           0x0100 /* MIDI 1.0 */
     838#define SNDRV_UMP_EP_INFO_PROTO_MIDI2           0x0200 /* MIDI 2.0 */
     839#define SNDRV_UMP_EP_INFO_PROTO_JRTS_MASK       0x0003
     840#define SNDRV_UMP_EP_INFO_PROTO_JRTS_TX         0x0001 /* JRTS Transmit */
     841#define SNDRV_UMP_EP_INFO_PROTO_JRTS_RX         0x0002 /* JRTS Receive */
     842
     843/* UMP Endpoint information */
     844struct snd_ump_endpoint_info {
     845        int card;                       /* card number */
     846        int device;                     /* device number */
     847        unsigned int flags;             /* additional info */
     848        unsigned int protocol_caps;     /* protocol capabilities */
     849        unsigned int protocol;          /* current protocol */
     850        unsigned int num_blocks;        /* # of function blocks */
     851        unsigned short version;         /* UMP major/minor version */
     852        unsigned short family_id;       /* MIDI device family ID */
     853        unsigned short model_id;        /* MIDI family model ID */
     854        unsigned int manufacturer_id;   /* MIDI manufacturer ID */
     855        unsigned char sw_revision[4];   /* software revision */
     856        unsigned short padding;
     857        unsigned char name[128];        /* endpoint name string */
     858        unsigned char product_id[128];  /* unique product id string */
     859        unsigned char reserved[32];
     860} __packed;
     861
     862/* UMP direction */
     863#define SNDRV_UMP_DIR_INPUT             0x01
     864#define SNDRV_UMP_DIR_OUTPUT            0x02
     865#define SNDRV_UMP_DIR_BIDIRECTION       0x03
     866
     867/* UMP block info flags */
     868#define SNDRV_UMP_BLOCK_IS_MIDI1        (1U << 0) /* MIDI 1.0 port w/o restrict */
     869#define SNDRV_UMP_BLOCK_IS_LOWSPEED     (1U << 1) /* 31.25Kbps B/W MIDI1 port */
     870
     871/* UMP block user-interface hint */
     872#define SNDRV_UMP_BLOCK_UI_HINT_UNKNOWN         0x00
     873#define SNDRV_UMP_BLOCK_UI_HINT_RECEIVER        0x01
     874#define SNDRV_UMP_BLOCK_UI_HINT_SENDER          0x02
     875#define SNDRV_UMP_BLOCK_UI_HINT_BOTH            0x03
     876
     877/* UMP groups and blocks */
     878#define SNDRV_UMP_MAX_GROUPS            16
     879#define SNDRV_UMP_MAX_BLOCKS            32
     880
     881/* UMP Block information */
     882struct snd_ump_block_info {
     883        int card;                       /* card number */
     884        int device;                     /* device number */
     885        unsigned char block_id;         /* block ID (R/W) */
     886        unsigned char direction;        /* UMP direction */
     887        unsigned char active;           /* Activeness */
     888        unsigned char first_group;      /* first group ID */
     889        unsigned char num_groups;       /* number of groups */
     890        unsigned char midi_ci_version;  /* MIDI-CI support version */
     891        unsigned char sysex8_streams;   /* max number of sysex8 streams */
     892        unsigned char ui_hint;          /* user interface hint */
     893        unsigned int flags;             /* various info flags */
     894        unsigned char name[128];        /* block name string */
     895        unsigned char reserved[32];
     896} __packed;
     897
    828898#define SNDRV_RAWMIDI_IOCTL_PVERSION    _IOR('W', 0x00, int)
    829899#define SNDRV_RAWMIDI_IOCTL_INFO        _IOR('W', 0x01, struct snd_rawmidi_info)
     
    833903#define SNDRV_RAWMIDI_IOCTL_DROP        _IOW('W', 0x30, int)
    834904#define SNDRV_RAWMIDI_IOCTL_DRAIN       _IOW('W', 0x31, int)
     905/* Additional ioctls for UMP rawmidi devices */
     906#define SNDRV_UMP_IOCTL_ENDPOINT_INFO   _IOR('W', 0x40, struct snd_ump_endpoint_info)
     907#define SNDRV_UMP_IOCTL_BLOCK_INFO      _IOR('W', 0x41, struct snd_ump_block_info)
    835908
    836909/*
     
    10081081 ****************************************************************************/
    10091082
    1010 #define SNDRV_CTL_VERSION               SNDRV_PROTOCOL_VERSION(2, 0, 8)
     1083#define SNDRV_CTL_VERSION               SNDRV_PROTOCOL_VERSION(2, 0, 9)
    10111084
    10121085/******************** This section used in uniaud.dll interface *********************/
     
    10471120#define SNDRV_CTL_ELEM_ACCESS_READWRITE         (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
    10481121#define SNDRV_CTL_ELEM_ACCESS_VOLATILE          (1<<2)  /* control value may be changed without a notification */
    1049 // (1 << 3) is unused.
     1122/* (1 << 3) is unused. */
    10501123#define SNDRV_CTL_ELEM_ACCESS_TLV_READ          (1<<4)  /* TLV read is possible */
    10511124#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE         (1<<5)  /* TLV write is possible */
     
    11451218        unsigned int length;    /* in bytes aligned to 4 */
    11461219#ifndef TARGET_OS2
    1147         unsigned int tlv[0];    /* first TLV */
     1220        unsigned int tlv[];     /* first TLV */
    11481221#else
    11491222        unsigned int tlv[1];    /* first TLV */
     
    11741247#define SNDRV_CTL_IOCTL_RAWMIDI_INFO    _IOWR('U', 0x41, struct snd_rawmidi_info)
    11751248#define SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE _IOW('U', 0x42, int)
     1249#define SNDRV_CTL_IOCTL_UMP_NEXT_DEVICE _IOWR('U', 0x43, int)
     1250#define SNDRV_CTL_IOCTL_UMP_ENDPOINT_INFO _IOWR('U', 0x44, struct snd_ump_endpoint_info)
     1251#define SNDRV_CTL_IOCTL_UMP_BLOCK_INFO  _IOWR('U', 0x45, struct snd_ump_block_info)
    11761252#define SNDRV_CTL_IOCTL_POWER           _IOWR('U', 0xd0, int)
    11771253#define SNDRV_CTL_IOCTL_POWER_STATE     _IOR('U', 0xd1, int)
  • GPL/trunk/alsa-kernel/include/uapi/sound/asound_fm.h

    r615 r772  
    1111 *
    1212 *  Direct FM control
    13  *
    14  *   This program is free software; you can redistribute it and/or modify
    15  *   it under the terms of the GNU General Public License as published by
    16  *   the Free Software Foundation; either version 2 of the License, or
    17  *   (at your option) any later version.
    18  *
    19  *   This program is distributed in the hope that it will be useful,
    20  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    21  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    22  *   GNU General Public License for more details.
    23  *
    24  *   You should have received a copy of the GNU General Public License
    25  *   along with this program; if not, write to the Free Software
    26  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    27  *
    2813 */
    2914
  • GPL/trunk/alsa-kernel/include/uapi/sound/compress_offload.h

    r629 r772  
    66 *  Authors:    Vinod Koul <vinod.koul@linux.intel.com>
    77 *              Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    8  *  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9  *
    10  *  This program is free software; you can redistribute it and/or modify
    11  *  it under the terms of the GNU General Public License as published by
    12  *  the Free Software Foundation; version 2 of the License.
    13  *
    14  *  This program is distributed in the hope that it will be useful, but
    15  *  WITHOUT ANY WARRANTY; without even the implied warranty of
    16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    17  *  General Public License for more details.
    18  *
    19  *  You should have received a copy of the GNU General Public License along
    20  *  with this program; if not, write to the Free Software Foundation, Inc.,
    21  *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
    22  *
    23  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    24  *
    258 */
    269#ifndef __COMPRESS_OFFLOAD_H
     
    124107
    125108/**
    126  * enum sndrv_compress_encoder
     109 * enum sndrv_compress_encoder - encoder metadata key
    127110 * @SNDRV_COMPRESS_ENCODER_PADDING: no of samples appended by the encoder at the
    128111 * end of the track
  • GPL/trunk/alsa-kernel/include/uapi/sound/compress_params.h

    r629 r772  
    88 *              Vinod Koul <vinod.koul@linux.intel.com>
    99 *
    10  *  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    11  *
    12  *  This program is free software; you can redistribute it and/or modify
    13  *  it under the terms of the GNU General Public License as published by
    14  *  the Free Software Foundation; version 2 of the License.
    15  *
    16  *  This program is distributed in the hope that it will be useful, but
    17  *  WITHOUT ANY WARRANTY; without even the implied warranty of
    18  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    19  *  General Public License for more details.
    20  *
    21  *  You should have received a copy of the GNU General Public License along
    22  *  with this program; if not, write to the Free Software Foundation, Inc.,
    23  *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
    24  *
    2510 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    2611 *
    2712 * The definitions in this file are derived from the OpenMAX AL version 1.1
    28  * and OpenMAX IL v 1.1.2 header files which contain the copyright notice below.
     13 * and OpenMAX IL v 1.1.2 header files which contain the copyright notice below
     14 * and are licensed under the MIT license.
    2915 *
    3016 * Copyright (c) 2007-2010 The Khronos Group Inc.
    31  *
    32  * Permission is hereby granted, free of charge, to any person obtaining
    33  * a copy of this software and/or associated documentation files (the
    34  * "Materials "), to deal in the Materials without restriction, including
    35  * without limitation the rights to use, copy, modify, merge, publish,
    36  * distribute, sublicense, and/or sell copies of the Materials, and to
    37  * permit persons to whom the Materials are furnished to do so, subject to
    38  * the following conditions:
    39  *
    40  * The above copyright notice and this permission notice shall be included
    41  * in all copies or substantial portions of the Materials.
    42  *
    43  * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    44  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    45  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    46  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    47  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    48  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    49  * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
    50  *
    5117 */
    5218#ifndef __SND_COMPRESS_PARAMS_H
     
    251217
    252218/**
    253  * struct snd_enc_vorbis
     219 * struct snd_enc_vorbis - Vorbis encoder parameters
    254220 * @quality: Sets encoding quality to n, between -1 (low) and 10 (high).
    255221 * In the default mode of operation, the quality level is 3.
     
    280246
    281247/**
    282  * struct snd_enc_real
     248 * struct snd_enc_real - RealAudio encoder parameters
    283249 * @quant_bits: number of coupling quantization bits in the stream
    284250 * @start_region: coupling start region in the stream
     
    295261
    296262/**
    297  * struct snd_enc_flac
     263 * struct snd_enc_flac - FLAC encoder parameters
    298264 * @num: serial number, valid only for OGG formats
    299265 *      needs to be set by application
  • GPL/trunk/alsa-kernel/include/uapi/sound/emu10k1.h

    r629 r772  
    44 *                   Creative Labs, Inc.
    55 *  Definitions for EMU10K1 (SB Live!) chips
    6  *
    7  *
    8  *   This program is free software; you can redistribute it and/or modify
    9  *   it under the terms of the GNU General Public License as published by
    10  *   the Free Software Foundation; either version 2 of the License, or
    11  *   (at your option) any later version.
    12  *
    13  *   This program is distributed in the hope that it will be useful,
    14  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16  *   GNU General Public License for more details.
    17  *
    18  *   You should have received a copy of the GNU General Public License
    19  *   along with this program; if not, write to the Free Software
    20  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    21  *
    226 */
    237#ifndef _UAPI__SOUND_EMU10K1_H
     
    3115 * ---- FX8010 ----
    3216 */
    33 
    34 #define EMU10K1_CARD_CREATIVE                   0x00000000
    35 #define EMU10K1_CARD_EMUAPS                     0x00000001
    3617
    3718#define EMU10K1_FX8010_PCM_COUNT                8
     
    6344#define iSKIP    0x0f   /* R = A (cc_reg), X (count), Y (cc_test) */
    6445
     46#define LOWORD_OPX_MASK         0x000ffc00      /* Instruction operand X                        */
     47#define LOWORD_OPY_MASK         0x000003ff      /* Instruction operand Y                        */
     48#define HIWORD_OPCODE_MASK      0x00f00000      /* Instruction opcode                           */
     49#define HIWORD_RESULT_MASK      0x000ffc00      /* Instruction result                           */
     50#define HIWORD_OPA_MASK         0x000003ff      /* Instruction operand A                        */
     51
     52/* Audigy Soundcards have a different instruction format */
     53#define A_LOWORD_OPX_MASK       0x007ff000
     54#define A_LOWORD_OPY_MASK       0x000007ff
     55#define A_HIWORD_OPCODE_MASK    0x0f000000
     56#define A_HIWORD_RESULT_MASK    0x007ff000
     57#define A_HIWORD_OPA_MASK       0x000007ff
     58
    6559/* GPRs */
    6660#define FXBUS(x)        (0x00 + (x))    /* x = 0x00 - 0x0f */
     
    6963#define FXBUS2(x)       (0x30 + (x))    /* x = 0x00 - 0x0f copies of fx buses for capture -> FXWC high 16 bits */
    7064                                        /* NB: 0x31 and 0x32 are shared with Center/LFE on SB live 5.1 */
     65
     66#define A_FXBUS(x)      (0x00 + (x))    /* x = 0x00 - 0x3f FX buses */
     67#define A_EXTIN(x)      (0x40 + (x))    /* x = 0x00 - 0x0f physical ins */
     68#define A_P16VIN(x)     (0x50 + (x))    /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */
     69#define A_EXTOUT(x)     (0x60 + (x))    /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown   */
     70#define A_FXBUS2(x)     (0x80 + (x))    /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */
     71#define A_EMU32OUTH(x)  (0xa0 + (x))    /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" */
     72#define A_EMU32OUTL(x)  (0xb0 + (x))    /* x = 0x00 - 0x0f "EMU32_OUT_01 - _0F" */
     73#define A3_EMU32IN(x)   (0x160 + (x))   /* x = 0x00 - 0x1f "EMU32_IN_00 - _1F" - Only when .device = 0x0008 */
     74#define A3_EMU32OUT(x)  (0x1E0 + (x))   /* x = 0x00 - 0x1f "EMU32_OUT_00 - _1F" - Only when .device = 0x0008 */
    7175
    7276#define C_00000000      0x40
     
    98102#define GPR_IRQ         0x5a            /* IRQ register */
    99103#define GPR_DBAC        0x5b            /* TRAM Delay Base Address Counter */
    100 #define GPR(x)          (FXGPREGBASE + (x)) /* free GPRs: x = 0x00 - 0xff */
    101 #define ITRAM_DATA(x)   (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
    102 #define ETRAM_DATA(x)   (TANKMEMDATAREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
    103 #define ITRAM_ADDR(x)   (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
    104 #define ETRAM_ADDR(x)   (TANKMEMADDRREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
    105 
    106 #define A_ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
    107 #define A_ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
    108 #define A_ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
    109 #define A_ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
    110 #define A_ITRAM_CTL(x)  (A_TANKMEMCTLREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
    111 #define A_ETRAM_CTL(x)  (A_TANKMEMCTLREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
    112 
    113 #define A_FXBUS(x)      (0x00 + (x))    /* x = 0x00 - 0x3f FX buses */
    114 #define A_EXTIN(x)      (0x40 + (x))    /* x = 0x00 - 0x0f physical ins */
    115 #define A_P16VIN(x)     (0x50 + (x))    /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */
    116 #define A_EXTOUT(x)     (0x60 + (x))    /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown   */
    117 #define A_FXBUS2(x)     (0x80 + (x))    /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */
    118 #define A_EMU32OUTH(x)  (0xa0 + (x))    /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" - ??? */
    119 #define A_EMU32OUTL(x)  (0xb0 + (x))    /* x = 0x00 - 0x0f "EMU32_OUT_1 - _F" - ??? */
    120 #define A3_EMU32IN(x)   (0x160 + (x))   /* x = 0x00 - 0x3f "EMU32_IN_00 - _3F" - Only when .device = 0x0008 */
    121 #define A3_EMU32OUT(x)  (0x1E0 + (x))   /* x = 0x00 - 0x0f "EMU32_OUT_00 - _3F" - Only when .device = 0x0008 */
    122 #define A_GPR(x)        (A_FXGPREGBASE + (x))
    123 
    124 /* cc_reg constants */
    125 #define CC_REG_NORMALIZED C_00000001
    126 #define CC_REG_BORROW   C_00000002
    127 #define CC_REG_MINUS    C_00000004
    128 #define CC_REG_ZERO     C_00000008
    129 #define CC_REG_SATURATE C_00000010
    130 #define CC_REG_NONZERO  C_00000100
    131 
    132 /* FX buses */
    133 #define FXBUS_PCM_LEFT          0x00
    134 #define FXBUS_PCM_RIGHT         0x01
    135 #define FXBUS_PCM_LEFT_REAR     0x02
    136 #define FXBUS_PCM_RIGHT_REAR    0x03
    137 #define FXBUS_MIDI_LEFT         0x04
    138 #define FXBUS_MIDI_RIGHT        0x05
    139 #define FXBUS_PCM_CENTER        0x06
    140 #define FXBUS_PCM_LFE           0x07
    141 #define FXBUS_PCM_LEFT_FRONT    0x08
    142 #define FXBUS_PCM_RIGHT_FRONT   0x09
    143 #define FXBUS_MIDI_REVERB       0x0c
    144 #define FXBUS_MIDI_CHORUS       0x0d
    145 #define FXBUS_PCM_LEFT_SIDE     0x0e
    146 #define FXBUS_PCM_RIGHT_SIDE    0x0f
    147 #define FXBUS_PT_LEFT           0x14
    148 #define FXBUS_PT_RIGHT          0x15
    149 
    150 /* Inputs */
    151 #define EXTIN_AC97_L       0x00 /* AC'97 capture channel - left */
    152 #define EXTIN_AC97_R       0x01 /* AC'97 capture channel - right */
    153 #define EXTIN_SPDIF_CD_L   0x02 /* internal S/PDIF CD - onboard - left */
    154 #define EXTIN_SPDIF_CD_R   0x03 /* internal S/PDIF CD - onboard - right */
    155 #define EXTIN_ZOOM_L       0x04 /* Zoom Video I2S - left */
    156 #define EXTIN_ZOOM_R       0x05 /* Zoom Video I2S - right */
    157 #define EXTIN_TOSLINK_L    0x06 /* LiveDrive - TOSLink Optical - left */
    158 #define EXTIN_TOSLINK_R    0x07 /* LiveDrive - TOSLink Optical - right */
    159 #define EXTIN_LINE1_L      0x08 /* LiveDrive - Line/Mic 1 - left */
    160 #define EXTIN_LINE1_R      0x09 /* LiveDrive - Line/Mic 1 - right */
    161 #define EXTIN_COAX_SPDIF_L 0x0a /* LiveDrive - Coaxial S/PDIF - left */
    162 #define EXTIN_COAX_SPDIF_R 0x0b /* LiveDrive - Coaxial S/PDIF - right */
    163 #define EXTIN_LINE2_L      0x0c /* LiveDrive - Line/Mic 2 - left */
    164 #define EXTIN_LINE2_R      0x0d /* LiveDrive - Line/Mic 2 - right */
    165 
    166 /* Outputs */
    167 #define EXTOUT_AC97_L      0x00 /* AC'97 playback channel - left */
    168 #define EXTOUT_AC97_R      0x01 /* AC'97 playback channel - right */
    169 #define EXTOUT_TOSLINK_L   0x02 /* LiveDrive - TOSLink Optical - left */
    170 #define EXTOUT_TOSLINK_R   0x03 /* LiveDrive - TOSLink Optical - right */
    171 #define EXTOUT_AC97_CENTER 0x04 /* SB Live 5.1 - center */
    172 #define EXTOUT_AC97_LFE    0x05 /* SB Live 5.1 - LFE */
    173 #define EXTOUT_HEADPHONE_L 0x06 /* LiveDrive - Headphone - left */
    174 #define EXTOUT_HEADPHONE_R 0x07 /* LiveDrive - Headphone - right */
    175 #define EXTOUT_REAR_L      0x08 /* Rear channel - left */
    176 #define EXTOUT_REAR_R      0x09 /* Rear channel - right */
    177 #define EXTOUT_ADC_CAP_L   0x0a /* ADC Capture buffer - left */
    178 #define EXTOUT_ADC_CAP_R   0x0b /* ADC Capture buffer - right */
    179 #define EXTOUT_MIC_CAP     0x0c /* MIC Capture buffer */
    180 #define EXTOUT_AC97_REAR_L 0x0d /* SB Live 5.1 (c) 2003 - Rear Left */
    181 #define EXTOUT_AC97_REAR_R 0x0e /* SB Live 5.1 (c) 2003 - Rear Right */
    182 #define EXTOUT_ACENTER     0x11 /* Analog Center */
    183 #define EXTOUT_ALFE        0x12 /* Analog LFE */
    184 
    185 /* Audigy Inputs */
    186 #define A_EXTIN_AC97_L          0x00    /* AC'97 capture channel - left */
    187 #define A_EXTIN_AC97_R          0x01    /* AC'97 capture channel - right */
    188 #define A_EXTIN_SPDIF_CD_L      0x02    /* digital CD left */
    189 #define A_EXTIN_SPDIF_CD_R      0x03    /* digital CD left */
    190 #define A_EXTIN_OPT_SPDIF_L     0x04    /* audigy drive Optical SPDIF - left */
    191 #define A_EXTIN_OPT_SPDIF_R     0x05    /*                              right */
    192 #define A_EXTIN_LINE2_L         0x08    /* audigy drive line2/mic2 - left */
    193 #define A_EXTIN_LINE2_R         0x09    /*                           right */
    194 #define A_EXTIN_ADC_L           0x0a    /* Philips ADC - left */
    195 #define A_EXTIN_ADC_R           0x0b    /*               right */
    196 #define A_EXTIN_AUX2_L          0x0c    /* audigy drive aux2 - left */
    197 #define A_EXTIN_AUX2_R          0x0d    /*                   - right */
    198 
    199 /* Audigiy Outputs */
    200 #define A_EXTOUT_FRONT_L        0x00    /* digital front left */
    201 #define A_EXTOUT_FRONT_R        0x01    /*               right */
    202 #define A_EXTOUT_CENTER         0x02    /* digital front center */
    203 #define A_EXTOUT_LFE            0x03    /* digital front lfe */
    204 #define A_EXTOUT_HEADPHONE_L    0x04    /* headphone audigy drive left */
    205 #define A_EXTOUT_HEADPHONE_R    0x05    /*                        right */
    206 #define A_EXTOUT_REAR_L         0x06    /* digital rear left */
    207 #define A_EXTOUT_REAR_R         0x07    /*              right */
    208 #define A_EXTOUT_AFRONT_L       0x08    /* analog front left */
    209 #define A_EXTOUT_AFRONT_R       0x09    /*              right */
    210 #define A_EXTOUT_ACENTER        0x0a    /* analog center */
    211 #define A_EXTOUT_ALFE           0x0b    /* analog LFE */
    212 #define A_EXTOUT_ASIDE_L        0x0c    /* analog side left  - Audigy 2 ZS */
    213 #define A_EXTOUT_ASIDE_R        0x0d    /*             right - Audigy 2 ZS */
    214 #define A_EXTOUT_AREAR_L        0x0e    /* analog rear left */
    215 #define A_EXTOUT_AREAR_R        0x0f    /*             right */
    216 #define A_EXTOUT_AC97_L         0x10    /* AC97 left (front) */
    217 #define A_EXTOUT_AC97_R         0x11    /*      right */
    218 #define A_EXTOUT_ADC_CAP_L      0x16    /* ADC capture buffer left */
    219 #define A_EXTOUT_ADC_CAP_R      0x17    /*                    right */
    220 #define A_EXTOUT_MIC_CAP        0x18    /* Mic capture buffer */
    221104
    222105/* Audigy constants */
     
    251134#define A_GPR_DBACE     0xde            /* TRAM Delay Base Address Counter - external */
    252135
    253 /* definitions for debug register */
     136/* Each FX general purpose register is 32 bits in length, all bits are used                     */
     137#define FXGPREGBASE             0x100           /* FX general purpose registers base            */
     138#define A_FXGPREGBASE           0x400           /* Audigy GPRs, 0x400 to 0x5ff                  */
     139
     140#define A_TANKMEMCTLREGBASE     0x100           /* Tank memory control registers base - only for Audigy */
     141#define A_TANKMEMCTLREG_MASK    0x1f            /* only 5 bits used - only for Audigy */
     142
     143/* Tank audio data is logarithmically compressed down to 16 bits before writing to TRAM and is  */
     144/* decompressed back to 20 bits on a read.  There are a total of 160 locations, the last 32     */
     145/* locations are for external TRAM.                                                             */
     146#define TANKMEMDATAREGBASE      0x200           /* Tank memory data registers base              */
     147#define TANKMEMDATAREG_MASK     0x000fffff      /* 20 bit tank audio data field                 */
     148
     149/* Combined address field and memory opcode or flag field.  160 locations, last 32 are external */
     150#define TANKMEMADDRREGBASE      0x300           /* Tank memory address registers base           */
     151#define TANKMEMADDRREG_ADDR_MASK 0x000fffff     /* 20 bit tank address field                    */
     152#define TANKMEMADDRREG_CLEAR    0x00800000      /* Clear tank memory                            */
     153#define TANKMEMADDRREG_ALIGN    0x00400000      /* Align read or write relative to tank access  */
     154#define TANKMEMADDRREG_WRITE    0x00200000      /* Write to tank memory                         */
     155#define TANKMEMADDRREG_READ     0x00100000      /* Read from tank memory                        */
     156
     157#define GPR(x)          (FXGPREGBASE + (x)) /* free GPRs: x = 0x00 - 0xff */
     158#define ITRAM_DATA(x)   (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
     159#define ETRAM_DATA(x)   (TANKMEMDATAREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
     160#define ITRAM_ADDR(x)   (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
     161#define ETRAM_ADDR(x)   (TANKMEMADDRREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
     162
     163#define A_GPR(x)        (A_FXGPREGBASE + (x))
     164#define A_ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
     165#define A_ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
     166#define A_ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
     167#define A_ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
     168#define A_ITRAM_CTL(x)  (A_TANKMEMCTLREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
     169#define A_ETRAM_CTL(x)  (A_TANKMEMCTLREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
     170
     171/* cc_reg constants */
     172#define CC_REG_NORMALIZED C_00000001
     173#define CC_REG_BORROW   C_00000002
     174#define CC_REG_MINUS    C_00000004
     175#define CC_REG_ZERO     C_00000008
     176#define CC_REG_SATURATE C_00000010
     177#define CC_REG_NONZERO  C_00000100
     178
     179#define A_CC_REG_NORMALIZED     A_C_00000001
     180#define A_CC_REG_BORROW         A_C_00000002
     181#define A_CC_REG_MINUS          A_C_00000004
     182#define A_CC_REG_ZERO           A_C_00000008
     183#define A_CC_REG_SATURATE       A_C_00000010
     184#define A_CC_REG_NONZERO        A_C_00000100
     185
     186/* FX buses */
     187// These are arbitrary mappings; our DSP code simply expects
     188// the config files to route the channels this way.
     189// The numbers are documented in {audigy,sb-live}-mixer.rst.
     190#define FXBUS_PCM_LEFT          0x00
     191#define FXBUS_PCM_RIGHT         0x01
     192#define FXBUS_PCM_LEFT_REAR     0x02
     193#define FXBUS_PCM_RIGHT_REAR    0x03
     194#define FXBUS_MIDI_LEFT         0x04
     195#define FXBUS_MIDI_RIGHT        0x05
     196#define FXBUS_PCM_CENTER        0x06
     197#define FXBUS_PCM_LFE           0x07
     198#define FXBUS_PCM_LEFT_FRONT    0x08
     199#define FXBUS_PCM_RIGHT_FRONT   0x09
     200#define FXBUS_MIDI_REVERB       0x0c
     201#define FXBUS_MIDI_CHORUS       0x0d
     202#define FXBUS_PCM_LEFT_SIDE     0x0e
     203#define FXBUS_PCM_RIGHT_SIDE    0x0f
     204#define FXBUS_PT_LEFT           0x14
     205#define FXBUS_PT_RIGHT          0x15
     206
     207/* Inputs */
     208#define EXTIN_AC97_L       0x00 /* AC'97 capture channel - left */
     209#define EXTIN_AC97_R       0x01 /* AC'97 capture channel - right */
     210#define EXTIN_SPDIF_CD_L   0x02 /* internal S/PDIF CD - onboard - left */
     211#define EXTIN_SPDIF_CD_R   0x03 /* internal S/PDIF CD - onboard - right */
     212#define EXTIN_ZOOM_L       0x04 /* Zoom Video I2S - left */
     213#define EXTIN_ZOOM_R       0x05 /* Zoom Video I2S - right */
     214#define EXTIN_TOSLINK_L    0x06 /* LiveDrive - TOSLink Optical - left */
     215#define EXTIN_TOSLINK_R    0x07 /* LiveDrive - TOSLink Optical - right */
     216#define EXTIN_LINE1_L      0x08 /* LiveDrive - Line/Mic 1 - left */
     217#define EXTIN_LINE1_R      0x09 /* LiveDrive - Line/Mic 1 - right */
     218#define EXTIN_COAX_SPDIF_L 0x0a /* LiveDrive - Coaxial S/PDIF - left */
     219#define EXTIN_COAX_SPDIF_R 0x0b /* LiveDrive - Coaxial S/PDIF - right */
     220#define EXTIN_LINE2_L      0x0c /* LiveDrive - Line/Mic 2 - left */
     221#define EXTIN_LINE2_R      0x0d /* LiveDrive - Line/Mic 2 - right */
     222
     223/* Outputs */
     224#define EXTOUT_AC97_L      0x00 /* AC'97 playback channel - left */
     225#define EXTOUT_AC97_R      0x01 /* AC'97 playback channel - right */
     226#define EXTOUT_TOSLINK_L   0x02 /* LiveDrive - TOSLink Optical - left */
     227#define EXTOUT_TOSLINK_R   0x03 /* LiveDrive - TOSLink Optical - right */
     228#define EXTOUT_AC97_CENTER 0x04 /* SB Live 5.1 - center */
     229#define EXTOUT_AC97_LFE    0x05 /* SB Live 5.1 - LFE */
     230#define EXTOUT_HEADPHONE_L 0x06 /* LiveDrive - Headphone - left */
     231#define EXTOUT_HEADPHONE_R 0x07 /* LiveDrive - Headphone - right */
     232#define EXTOUT_REAR_L      0x08 /* Rear channel - left */
     233#define EXTOUT_REAR_R      0x09 /* Rear channel - right */
     234#define EXTOUT_ADC_CAP_L   0x0a /* ADC Capture buffer - left */
     235#define EXTOUT_ADC_CAP_R   0x0b /* ADC Capture buffer - right */
     236#define EXTOUT_MIC_CAP     0x0c /* MIC Capture buffer */
     237#define EXTOUT_AC97_REAR_L 0x0d /* SB Live 5.1 (c) 2003 - Rear Left */
     238#define EXTOUT_AC97_REAR_R 0x0e /* SB Live 5.1 (c) 2003 - Rear Right */
     239#define EXTOUT_ACENTER     0x11 /* Analog Center */
     240#define EXTOUT_ALFE        0x12 /* Analog LFE */
     241
     242/* Audigy Inputs */
     243#define A_EXTIN_AC97_L          0x00    /* AC'97 capture channel - left */
     244#define A_EXTIN_AC97_R          0x01    /* AC'97 capture channel - right */
     245#define A_EXTIN_SPDIF_CD_L      0x02    /* digital CD left */
     246#define A_EXTIN_SPDIF_CD_R      0x03    /* digital CD left */
     247#define A_EXTIN_OPT_SPDIF_L     0x04    /* audigy drive Optical SPDIF - left */
     248#define A_EXTIN_OPT_SPDIF_R     0x05    /*                              right */
     249#define A_EXTIN_LINE2_L         0x08    /* audigy drive line2/mic2 - left */
     250#define A_EXTIN_LINE2_R         0x09    /*                           right */
     251#define A_EXTIN_ADC_L           0x0a    /* Philips ADC - left */
     252#define A_EXTIN_ADC_R           0x0b    /*               right */
     253#define A_EXTIN_AUX2_L          0x0c    /* audigy drive aux2 - left */
     254#define A_EXTIN_AUX2_R          0x0d    /*                   - right */
     255
     256/* Audigiy Outputs */
     257#define A_EXTOUT_FRONT_L        0x00    /* digital front left */
     258#define A_EXTOUT_FRONT_R        0x01    /*               right */
     259#define A_EXTOUT_CENTER         0x02    /* digital front center */
     260#define A_EXTOUT_LFE            0x03    /* digital front lfe */
     261#define A_EXTOUT_HEADPHONE_L    0x04    /* headphone audigy drive left */
     262#define A_EXTOUT_HEADPHONE_R    0x05    /*                        right */
     263#define A_EXTOUT_REAR_L         0x06    /* digital rear left */
     264#define A_EXTOUT_REAR_R         0x07    /*              right */
     265#define A_EXTOUT_AFRONT_L       0x08    /* analog front left */
     266#define A_EXTOUT_AFRONT_R       0x09    /*              right */
     267#define A_EXTOUT_ACENTER        0x0a    /* analog center */
     268#define A_EXTOUT_ALFE           0x0b    /* analog LFE */
     269#define A_EXTOUT_ASIDE_L        0x0c    /* analog side left  - Audigy 2 ZS */
     270#define A_EXTOUT_ASIDE_R        0x0d    /*             right - Audigy 2 ZS */
     271#define A_EXTOUT_AREAR_L        0x0e    /* analog rear left */
     272#define A_EXTOUT_AREAR_R        0x0f    /*             right */
     273#define A_EXTOUT_AC97_L         0x10    /* AC97 left (front) */
     274#define A_EXTOUT_AC97_R         0x11    /*      right */
     275#define A_EXTOUT_ADC_CAP_L      0x16    /* ADC capture buffer left */
     276#define A_EXTOUT_ADC_CAP_R      0x17    /*                    right */
     277#define A_EXTOUT_MIC_CAP        0x18    /* Mic capture buffer */
     278
     279/* Definitions for debug register. Note that these are for emu10k1 ONLY. */
    254280#define EMU10K1_DBG_ZC                  0x80000000      /* zero tram counter */
    255281#define EMU10K1_DBG_SATURATION_OCCURED  0x02000000      /* saturation control */
     
    260286#define EMU10K1_DBG_SINGLE_STEP_ADDR    0x000001ff      /* single step address */
    261287
    262 /* tank memory address line */
    263 #ifndef __KERNEL__
    264 #define TANKMEMADDRREG_ADDR_MASK 0x000fffff     /* 20 bit tank address field                    */
    265 #define TANKMEMADDRREG_CLEAR     0x00800000     /* Clear tank memory                            */
    266 #define TANKMEMADDRREG_ALIGN     0x00400000     /* Align read or write relative to tank access  */
    267 #define TANKMEMADDRREG_WRITE     0x00200000     /* Write to tank memory                         */
    268 #define TANKMEMADDRREG_READ      0x00100000     /* Read from tank memory                        */
    269 #endif
     288/* Definitions for emu10k2 debug register. */
     289#define A_DBG_ZC                        0x40000000      /* zero tram counter */
     290#define A_DBG_SATURATION_OCCURED        0x20000000
     291#define A_DBG_SATURATION_ADDR           0x0ffc0000
     292#define A_DBG_SINGLE_STEP               0x00020000      /* Set to zero to start dsp */
     293#define A_DBG_STEP                      0x00010000
     294#define A_DBG_CONDITION_CODE            0x0000f800
     295#define A_DBG_STEP_ADDR                 0x000003ff
    270296
    271297struct snd_emu10k1_fx8010_info {
     
    283309#define EMU10K1_GPR_TRANSLATION_TREBLE          3
    284310#define EMU10K1_GPR_TRANSLATION_ONOFF           4
     311#define EMU10K1_GPR_TRANSLATION_NEGATE          5
     312#define EMU10K1_GPR_TRANSLATION_NEG_TABLE100    6
    285313
    286314enum emu10k1_ctl_elem_iface {
     
    303331        unsigned int count;             /* count of GPR (1..16) */
    304332        unsigned short gpr[32];         /* GPR number(s) */
    305         unsigned int value[32];         /* initial values */
    306         unsigned int min;               /* minimum range */
    307         unsigned int max;               /* maximum range */
     333        int value[32];                  /* initial values */
     334        int min;                        /* minimum range */
     335        int max;                        /* maximum range */
    308336        unsigned int translation;       /* translation type (EMU10K1_GPR_TRANSLATION*) */
    309337        const unsigned int *tlv;
  • GPL/trunk/alsa-kernel/include/uapi/sound/tlv.h

    r615 r772  
    11/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
    2 /*
    3  *   This program is free software; you can redistribute it and/or modify
    4  *   it under the terms of the GNU General Public License as published by
    5  *   the Free Software Foundation; either version 2 of the License, or
    6  *   (at your option) any later version.
    7  *
    8  *   This program is distributed in the hope that it will be useful,
    9  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  *   GNU General Public License for more details.
    12  */
    132
    143#ifndef __UAPI_SOUND_TLV_H
Note: See TracChangeset for help on using the changeset viewer.