Ignore:
Timestamp:
Mar 18, 2021, 8:57:36 PM (4 years ago)
Author:
David Azarewicz
Message:

Merge changes from Paul's uniaud32next branch.

Location:
GPL/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/include/sound/tlv.h

    r598 r679  
     1/* SPDX-License-Identifier: GPL-2.0-or-later */
    12#ifndef __SOUND_TLV_H
    23#define __SOUND_TLV_H
     
    56 *  Advanced Linux Sound Architecture - ALSA - Driver
    67 *  Copyright (c) 2006 by Jaroslav Kysela <perex@perex.cz>
    7  *
    8  *
    9  *   This program is free software; you can redistribute it and/or modify
    10  *   it under the terms of the GNU General Public License as published by
    11  *   the Free Software Foundation; either version 2 of the License, or
    12  *   (at your option) any later version.
    13  *
    14  *   This program is distributed in the hope that it will be useful,
    15  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    16  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    17  *   GNU General Public License for more details.
    18  *
    19  *   You should have received a copy of the GNU General Public License
    20  *   along with this program; if not, write to the Free Software
    21  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    22  *
    238 */
    249
     10#include <uapi/sound/tlv.h>
     11
     12/* For historical reasons, these macros are aliases to the ones in UAPI. */
     13#define TLV_ITEM                        SNDRV_CTL_TLVD_ITEM
     14#define TLV_LENGTH                      SNDRV_CTL_TLVD_LENGTH
     15
     16#define TLV_CONTAINER_ITEM              SNDRV_CTL_TLVD_CONTAINER_ITEM
     17#define DECLARE_TLV_CONTAINER           SNDRV_CTL_TLVD_DECLARE_CONTAINER
     18
     19#define TLV_DB_SCALE_MASK               SNDRV_CTL_TLVD_DB_SCALE_MASK
     20#define TLV_DB_SCALE_MUTE               SNDRV_CTL_TLVD_DB_SCALE_MUTE
     21#define TLV_DB_SCALE_ITEM               SNDRV_CTL_TLVD_DB_SCALE_ITEM
     22#define DECLARE_TLV_DB_SCALE            SNDRV_CTL_TLVD_DECLARE_DB_SCALE
     23
     24#define TLV_DB_MINMAX_ITEM              SNDRV_CTL_TLVD_DB_MINMAX_ITEM
     25#define TLV_DB_MINMAX_MUTE_ITEM         SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM
     26#define DECLARE_TLV_DB_MINMAX           SNDRV_CTL_TLVD_DECLARE_DB_MINMAX
     27#define DECLARE_TLV_DB_MINMAX_MUTE      SNDRV_CTL_TLVD_DECLARE_DB_MINMAX_MUTE
     28
     29#define TLV_DB_LINEAR_ITEM              SNDRV_CTL_TLVD_DB_LINEAR_ITEM
     30#define DECLARE_TLV_DB_LINEAR           SNDRV_CTL_TLVD_DECLARE_DB_LINEAR
     31
     32#define TLV_DB_RANGE_ITEM               SNDRV_CTL_TLVD_DB_RANGE_ITEM
     33#define DECLARE_TLV_DB_RANGE            SNDRV_CTL_TLVD_DECLARE_DB_RANGE
     34
     35#define TLV_DB_GAIN_MUTE                SNDRV_CTL_TLVD_DB_GAIN_MUTE
     36
    2537/*
    26  * TLV structure is right behind the struct snd_ctl_tlv:
    27  *   unsigned int type          - see SNDRV_CTL_TLVT_*
    28  *   unsigned int length
    29  *   .... data aligned to sizeof(unsigned int), use
    30  *        block_length = (length + (sizeof(unsigned int) - 1)) &
    31  *                       ~(sizeof(unsigned int) - 1)) ....
     38 * The below assumes that each item TLV is 4 words like DB_SCALE or LINEAR.
     39 * This is an old fasion and obsoleted by commit bf1d1c9b6179("ALSA: tlv: add
     40 * DECLARE_TLV_DB_RANGE()").
    3241 */
    33 
    34 #define SNDRV_CTL_TLVT_CONTAINER 0      /* one level down - group of TLVs */
    35 #define SNDRV_CTL_TLVT_DB_SCALE 1       /* dB scale */
    36 #define SNDRV_CTL_TLVT_DB_LINEAR 2      /* linear volume */
    37 #define SNDRV_CTL_TLVT_DB_RANGE 3       /* dB range container */
    38 #define SNDRV_CTL_TLVT_DB_MINMAX 4      /* dB scale with min/max */
    39 #define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 /* dB scale with min/max with mute */
    40 
    41 #define TLV_DB_SCALE_MASK       0xffff
    42 #define TLV_DB_SCALE_MUTE       0x10000
    43 #define TLV_DB_SCALE_ITEM(min, step, mute)                      \
    44         SNDRV_CTL_TLVT_DB_SCALE, 2 * sizeof(unsigned int),      \
    45         (min), ((step) & TLV_DB_SCALE_MASK) | ((mute) ? TLV_DB_SCALE_MUTE : 0)
    46 #define DECLARE_TLV_DB_SCALE(name, min, step, mute) \
    47         unsigned int name[] = { TLV_DB_SCALE_ITEM(min, step, mute) }
    48 
    49 /* dB scale specified with min/max values instead of step */
    50 #define TLV_DB_MINMAX_ITEM(min_dB, max_dB)                      \
    51         SNDRV_CTL_TLVT_DB_MINMAX, 2 * sizeof(unsigned int),     \
    52         (min_dB), (max_dB)
    53 #define TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB)                 \
    54         SNDRV_CTL_TLVT_DB_MINMAX_MUTE, 2 * sizeof(unsigned int),        \
    55         (min_dB), (max_dB)
    56 #define DECLARE_TLV_DB_MINMAX(name, min_dB, max_dB) \
    57         unsigned int name[] = { TLV_DB_MINMAX_ITEM(min_dB, max_dB) }
    58 #define DECLARE_TLV_DB_MINMAX_MUTE(name, min_dB, max_dB) \
    59         unsigned int name[] = { TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) }
    60 
    61 /* linear volume between min_dB and max_dB (.01dB unit) */
    62 #define TLV_DB_LINEAR_ITEM(min_dB, max_dB)                  \
    63         SNDRV_CTL_TLVT_DB_LINEAR, 2 * sizeof(unsigned int), \
    64         (min_dB), (max_dB)
    65 #define DECLARE_TLV_DB_LINEAR(name, min_dB, max_dB)     \
    66         unsigned int name[] = { TLV_DB_LINEAR_ITEM(min_dB, max_dB) }
    67 
    68 /* dB range container */
    69 /* Each item is: <min> <max> <TLV> */
    70 /* The below assumes that each item TLV is 4 words like DB_SCALE or LINEAR */
    71 #define TLV_DB_RANGE_HEAD(num)                  \
     42#define TLV_DB_RANGE_HEAD(num) \
    7243        SNDRV_CTL_TLVT_DB_RANGE, 6 * (num) * sizeof(unsigned int)
    7344
    74 #define TLV_DB_GAIN_MUTE        -9999999
    75 
    7645#endif /* __SOUND_TLV_H */
Note: See TracChangeset for help on using the changeset viewer.