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/jack.h

    r598 r679  
     1/* SPDX-License-Identifier: GPL-2.0-or-later */
    12#ifndef __SOUND_JACK_H
    23#define __SOUND_JACK_H
     
    67 *
    78 *  Copyright 2008 Wolfson Microelectronics plc
    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; either version 2 of the License, or
    13  *   (at your option) any later version.
    14  *
    15  *   This program is distributed in the hope that it will be useful,
    16  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
    17  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    18  *   GNU General Public License for more details.
    19  *
    20  *   You should have received a copy of the GNU General Public License
    21  *   along with this program; if not, write to the Free Software
    22  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    23  *
    249 */
    2510
     
    2914
    3015/**
    31  * Jack types which can be reported.  These values are used as a
    32  * bitmask.
     16 * enum snd_jack_types - Jack types which can be reported
     17 * @SND_JACK_HEADPHONE: Headphone
     18 * @SND_JACK_MICROPHONE: Microphone
     19 * @SND_JACK_HEADSET: Headset
     20 * @SND_JACK_LINEOUT: Line out
     21 * @SND_JACK_MECHANICAL: Mechanical switch
     22 * @SND_JACK_VIDEOOUT: Video out
     23 * @SND_JACK_AVOUT: AV (Audio Video) out
     24 * @SND_JACK_LINEIN:  Line in
     25 * @SND_JACK_BTN_0: Button 0
     26 * @SND_JACK_BTN_1: Button 1
     27 * @SND_JACK_BTN_2: Button 2
     28 * @SND_JACK_BTN_3: Button 3
     29 * @SND_JACK_BTN_4: Button 4
     30 * @SND_JACK_BTN_5: Button 5
     31 *
     32 * These values are used as a bitmask.
    3333 *
    3434 * Note that this must be kept in sync with the lookup table in
     
    4343        SND_JACK_VIDEOOUT       = 0x0010,
    4444        SND_JACK_AVOUT          = SND_JACK_LINEOUT | SND_JACK_VIDEOOUT,
     45        SND_JACK_LINEIN         = 0x0020,
    4546
    4647        /* Kept separate from switches to facilitate implementation */
     
    5354};
    5455
     56/* Keep in sync with definitions above */
     57#define SND_JACK_SWITCH_TYPES 6
     58
    5559struct snd_jack {
     60        struct list_head kctl_list;
     61        struct snd_card *card;
     62        const char *id;
     63#ifdef CONFIG_SND_JACK_INPUT_DEV
    5664        struct input_dev *input_dev;
    5765        int registered;
    5866        int type;
    59         const char *id;
    6067        char name[100];
    6168        unsigned int key[6];   /* Keep in sync with definitions above */
     69#endif /* CONFIG_SND_JACK_INPUT_DEV */
    6270        void *private_data;
    6371        void (*private_free)(struct snd_jack *);
     
    6775
    6876int snd_jack_new(struct snd_card *card, const char *id, int type,
    69                  struct snd_jack **jack);
     77                 struct snd_jack **jack, bool initial_kctl, bool phantom_jack);
     78int snd_jack_add_new_kctl(struct snd_jack *jack, const char * name, int mask);
     79#ifdef CONFIG_SND_JACK_INPUT_DEV
    7080void snd_jack_set_parent(struct snd_jack *jack, struct device *parent);
    7181int snd_jack_set_key(struct snd_jack *jack, enum snd_jack_types type,
    7282                     int keytype);
    73 
     83#endif
    7484void snd_jack_report(struct snd_jack *jack, int status);
    7585
    7686#else
    77 
    7887static inline int snd_jack_new(struct snd_card *card, const char *id, int type,
    79                                struct snd_jack **jack)
     88                               struct snd_jack **jack, bool initial_kctl, bool phantom_jack)
    8089{
    8190        return 0;
    8291}
    8392
    84 static inline void snd_jack_set_parent(struct snd_jack *jack,
    85                                        struct device *parent)
     93static inline int snd_jack_add_new_kctl(struct snd_jack *jack, const char * name, int mask)
    8694{
     95        return 0;
    8796}
    8897
     
    93102#endif
    94103
     104#if !defined(CONFIG_SND_JACK) || !defined(CONFIG_SND_JACK_INPUT_DEV)
     105static inline void snd_jack_set_parent(struct snd_jack *jack,
     106                                       struct device *parent)
     107{
     108}
     109
     110static inline int snd_jack_set_key(struct snd_jack *jack,
     111                                   enum snd_jack_types type,
     112                                   int keytype)
     113{
     114        return 0;
     115}
     116#endif /* !CONFIG_SND_JACK || !CONFIG_SND_JACK_INPUT_DEV */
     117
    95118#endif
Note: See TracChangeset for help on using the changeset viewer.