Ignore:
Timestamp:
Aug 21, 2021, 3:35:34 AM (4 years ago)
Author:
David Azarewicz
Message:

Merge changes from next branch.

Location:
GPL/trunk
Files:
27 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

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

    r679 r695  
    6868 * @next_track: has userspace signal next track transition, true when set
    6969 * @partial_drain: undergoing partial_drain for stream, true when set
     70 * @pause_in_draining: paused during draining state, true when set
    7071 * @private_data: pointer to DSP private data
    7172 * @dma_buffer: allocated buffer if any
     
    8182        bool next_track;
    8283        bool partial_drain;
     84        bool pause_in_draining;
    8385        void *private_data;
    8486        struct snd_dma_buffer dma_buffer;
     
    143145 * @lock: device lock
    144146 * @device: device id
     147 * @use_pause_in_draining: allow pause in draining, true when set
    145148 */
    146149struct snd_compr {
     
    153156        struct mutex lock;
    154157        int device;
     158        bool use_pause_in_draining;
    155159#ifdef CONFIG_SND_VERBOSE_PROCFS
    156160        /* private: */
     
    166170int snd_compress_new(struct snd_card *card, int device,
    167171                        int type, const char *id, struct snd_compr *compr);
     172
     173/**
     174 * snd_compr_use_pause_in_draining - Allow pause and resume in draining state
     175 * @substream: compress substream to set
     176 *
     177 * Allow pause and resume in draining state.
     178 * Only HW driver supports this transition can call this API.
     179 */
     180static inline void snd_compr_use_pause_in_draining(struct snd_compr_stream *substream)
     181{
     182        substream->device->use_pause_in_draining = true;
     183}
    168184
    169185/* dsp driver callback apis
  • GPL/trunk/alsa-kernel/include/sound/control.h

    r679 r695  
    2525/* internal flag for skipping validations */
    2626#ifdef CONFIG_SND_CTL_VALIDATION
    27 #define SNDRV_CTL_ELEM_ACCESS_SKIP_CHECK        (1 << 27)
     27#define SNDRV_CTL_ELEM_ACCESS_SKIP_CHECK        (1 << 24)
    2828#define snd_ctl_skip_validation(info) \
    2929        ((info)->access & SNDRV_CTL_ELEM_ACCESS_SKIP_CHECK)
     
    3232#define snd_ctl_skip_validation(info)           true
    3333#endif
     34
     35/* kernel only - LED bits */
     36#define SNDRV_CTL_ELEM_ACCESS_LED_SHIFT         25
     37#define SNDRV_CTL_ELEM_ACCESS_LED_MASK          (7<<25) /* kernel three bits - LED group */
     38#define SNDRV_CTL_ELEM_ACCESS_SPK_LED           (1<<25) /* kernel speaker (output) LED flag */
     39#define SNDRV_CTL_ELEM_ACCESS_MIC_LED           (2<<25) /* kernel microphone (input) LED flag */
    3440
    3541enum {
     
    109115};
    110116
     117struct snd_ctl_layer_ops {
     118        struct snd_ctl_layer_ops *next;
     119        const char *module_name;
     120        void (*lregister)(struct snd_card *card);
     121        void (*ldisconnect)(struct snd_card *card);
     122        void (*lnotify)(struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff);
     123};
     124
    111125#define snd_ctl_file(n) list_entry(n, struct snd_ctl_file, list)
    112126
     
    116130
    117131void snd_ctl_notify(struct snd_card * card, unsigned int mask, struct snd_ctl_elem_id * id);
     132void snd_ctl_notify_one(struct snd_card * card, unsigned int mask, struct snd_kcontrol * kctl, unsigned int ioff);
    118133
    119134struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new * kcontrolnew, void * private_data);
     
    124139int snd_ctl_remove_id(struct snd_card * card, struct snd_ctl_elem_id *id);
    125140int snd_ctl_rename_id(struct snd_card * card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id);
    126 int snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id,
    127                         int active);
     141int snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id, int active);
    128142struct snd_kcontrol *snd_ctl_find_numid(struct snd_card * card, unsigned int numid);
    129143struct snd_kcontrol *snd_ctl_find_id(struct snd_card * card, struct snd_ctl_elem_id *id);
     
    140154#define snd_ctl_unregister_ioctl_compat(fcn)
    141155#endif
     156
     157int snd_ctl_request_layer(const char *module_name);
     158void snd_ctl_register_layer(struct snd_ctl_layer_ops *lops);
     159void snd_ctl_disconnect_layer(struct snd_ctl_layer_ops *lops);
    142160
    143161int snd_ctl_get_preferred_subdevice(struct snd_card *card, int type);
     
    255273
    256274/*
     275 * Control LED trigger layer
     276 */
     277#define SND_CTL_LAYER_MODULE_LED        "snd-ctl-led"
     278
     279#if IS_MODULE(CONFIG_SND_CTL_LED)
     280static inline int snd_ctl_led_request(void) { return snd_ctl_request_layer(SND_CTL_LAYER_MODULE_LED); }
     281#else
     282static inline int snd_ctl_led_request(void) { return 0; }
     283#endif
     284
     285/*
    257286 * Helper functions for jack-detection controls
    258287 */
  • GPL/trunk/alsa-kernel/include/sound/core.h

    r679 r695  
    104104        rwlock_t ctl_files_rwlock;      /* ctl_files list lock */
    105105        int controls_count;             /* count of all controls */
    106         int user_ctl_count;             /* count of all user controls */
     106        size_t user_ctl_alloc_size;     // current memory allocation by user controls.
    107107        struct list_head controls;      /* all controls for this card */
    108108        struct list_head ctl_files;     /* active control files */
     
    126126        size_t total_pcm_alloc_bytes;   /* total amount of allocated buffers */
    127127        struct mutex memory_mutex;      /* protection for the above */
     128#ifdef CONFIG_SND_DEBUG
     129        struct dentry *debugfs_root;    /* debugfs root for card */
     130#endif
    128131
    129132#ifdef CONFIG_PM
     
    184187extern int snd_ecards_limit;
    185188extern struct class *sound_class;
     189#ifdef CONFIG_SND_DEBUG
     190extern struct dentry *sound_debugfs_root;
     191#endif
    186192
    187193void snd_request_card(int card);
  • GPL/trunk/alsa-kernel/include/sound/dmaengine_pcm.h

    r679 r695  
    6767 * @fifo_size: FIFO size of the DAI controller in bytes
    6868 * @flags: PCM_DAI flags, only SND_DMAENGINE_PCM_DAI_FLAG_PACK for now
     69 * @peripheral_config: peripheral configuration for programming peripheral
     70 * for dmaengine transfer
     71 * @peripheral_size: peripheral configuration buffer size
    6972 */
    7073struct snd_dmaengine_dai_dma_data {
     
    7780        unsigned int fifo_size;
    7881        unsigned int flags;
     82        void *peripheral_config;
     83        size_t peripheral_size;
    7984};
    8085
  • GPL/trunk/alsa-kernel/include/sound/hda_codec.h

    r679 r695  
    345345        snd_hdac_get_connections(&(codec)->core, nid, list, max_conns)
    346346#define snd_hda_get_num_raw_conns(codec, nid) \
    347         snd_hdac_get_connections(&(codec)->core, nid, NULL, 0);
     347        snd_hdac_get_connections(&(codec)->core, nid, NULL, 0)
    348348
    349349int snd_hda_get_conn_list(struct hda_codec *codec, hda_nid_t nid,
  • GPL/trunk/alsa-kernel/include/sound/hda_register.h

    r679 r695  
    141141#define AZX_MAX_BDL_ENTRIES     (BDL_SIZE / 16)
    142142#define AZX_MAX_FRAG            32
    143 /* max buffer size - no h/w limit, you can increase as you like */
    144 #define AZX_MAX_BUF_SIZE        (1024*1024*1024)
     143/*
     144 * max buffer size - artificial 4MB limit per stream to avoid big allocations
     145 * In theory it can be really big, but as it is per stream on systems with many streams memory could
     146 * be quickly saturated if userspace requests maximum buffer size for each of them.
     147 */
     148#define AZX_MAX_BUF_SIZE        (4*1024*1024)
    145149
    146150/* RIRB int mask: overrun[2], response[0] */
  • GPL/trunk/alsa-kernel/include/sound/hdaudio.h

    r679 r695  
    242242        int (*get_response)(struct hdac_bus *bus, unsigned int addr,
    243243                            unsigned int *res);
     244        /* notify of codec link power-up/down */
     245        void (*link_power)(struct hdac_device *hdev, bool enable);
    244246};
    245247
     
    390392                                    unsigned int cmd, unsigned int *res);
    391393
    392 static inline void snd_hdac_codec_link_up(struct hdac_device *codec)
    393 {
    394         set_bit(codec->addr, &codec->bus->codec_powered);
    395 }
    396 
    397 static inline void snd_hdac_codec_link_down(struct hdac_device *codec)
    398 {
    399         clear_bit(codec->addr, &codec->bus->codec_powered);
    400 }
     394void snd_hdac_codec_link_up(struct hdac_device *codec);
     395void snd_hdac_codec_link_down(struct hdac_device *codec);
    401396
    402397int snd_hdac_bus_send_cmd(struct hdac_bus *bus, unsigned int val);
     
    412407void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus);
    413408int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset);
     409void snd_hdac_bus_link_power(struct hdac_device *hdev, bool enable);
    414410
    415411void snd_hdac_bus_update_rirb(struct hdac_bus *bus);
  • GPL/trunk/alsa-kernel/include/sound/hdaudio_ext.h

    r679 r695  
    132132int snd_hdac_ext_bus_link_put(struct hdac_bus *bus, struct hdac_ext_link *link);
    133133
     134void snd_hdac_ext_bus_link_power(struct hdac_device *codec, bool enable);
     135
    134136/* update register macro */
    135137#define snd_hdac_updatel(addr, reg, mask, val)          \
  • GPL/trunk/alsa-kernel/include/sound/hdmi-codec.h

    r679 r695  
    3535        unsigned int bit_clk_master:1;
    3636        unsigned int frame_clk_master:1;
     37        /* bit_fmt could be standard PCM format or
     38         * IEC958 encoded format. ALSA IEC958 plugin will pass
     39         * IEC958_SUBFRAME format to the underneath driver.
     40         */
     41        snd_pcm_format_t bit_fmt;
    3742};
    3843
  • GPL/trunk/alsa-kernel/include/sound/intel-dsp-config.h

    r679 r695  
    2222
    2323int snd_intel_dsp_driver_probe(struct pci_dev *pci);
     24int snd_intel_acpi_dsp_driver_probe(struct device *dev, const u8 acpi_hid[ACPI_ID_LEN]);
    2425
    2526#else
     
    3031}
    3132
     33static inline
     34int snd_intel_acpi_dsp_driver_probe(struct device *dev, const u8 acpi_hid[ACPI_ID_LEN])
     35{
     36        return SND_INTEL_DSP_DRIVER_ANY;
     37}
     38
    3239#endif
    3340
  • GPL/trunk/alsa-kernel/include/sound/jack.h

    r679 r695  
    6868        unsigned int key[6];   /* Keep in sync with definitions above */
    6969#endif /* CONFIG_SND_JACK_INPUT_DEV */
     70        int hw_status_cache;
    7071        void *private_data;
    7172        void (*private_free)(struct snd_jack *);
  • GPL/trunk/alsa-kernel/include/sound/pcm.h

    r679 r695  
    230230        unsigned int cond;
    231231        int var;
    232         int deps[4];
     232        int deps[5];
    233233
    234234        snd_pcm_hw_rule_func_t func;
  • GPL/trunk/alsa-kernel/include/sound/rt5645.h

    r679 r695  
    2323        /* Invert JD1_1 status polarity */
    2424        bool inv_jd1_1;
     25        /* Invert HP detect status polarity */
     26        bool inv_hp_pol;
    2527
    2628        /* Value to asign to snd_soc_card.long_name */
  • GPL/trunk/alsa-kernel/include/sound/rt5682.h

    r679 r695  
    4141        unsigned int dmic_clk_rate;
    4242        unsigned int dmic_delay;
     43        bool dmic_clk_driving_high;
    4344
    4445        const char *dai_clk_names[RT5682_DAI_NUM_CLKS];
  • GPL/trunk/alsa-kernel/include/sound/simple_card_utils.h

    r679 r695  
    3939};
    4040
     41struct prop_nums {
     42        int cpus;
     43        int codecs;
     44        int platforms;
     45};
     46
    4147struct asoc_simple_priv {
    4248        struct snd_soc_card snd_card;
     
    4450                struct asoc_simple_dai *cpu_dai;
    4551                struct asoc_simple_dai *codec_dai;
    46                 struct snd_soc_dai_link_component cpus;   /* single cpu */
    47                 struct snd_soc_dai_link_component codecs; /* single codec */
    48                 struct snd_soc_dai_link_component platforms;
     52                struct snd_soc_dai_link_component *cpus;
     53                struct snd_soc_dai_link_component *codecs;
     54                struct snd_soc_dai_link_component *platforms;
    4955                struct asoc_simple_data adata;
    5056                struct snd_soc_codec_conf *codec_conf;
     57                struct prop_nums num;
    5158                unsigned int mclk_fs;
    5259        } *dai_props;
     
    5562        struct snd_soc_dai_link *dai_link;
    5663        struct asoc_simple_dai *dais;
     64        struct snd_soc_dai_link_component *dlcs;
     65        struct snd_soc_dai_link_component dummy;
    5766        struct snd_soc_codec_conf *codec_conf;
    5867        struct gpio_desc *pa_gpio;
     68        const struct snd_soc_ops *ops;
     69        unsigned int dpcm_selectable:1;
     70        unsigned int force_dpcm:1;
    5971};
    6072#define simple_priv_to_card(priv)       (&(priv)->snd_card)
     
    6375#define simple_priv_to_link(priv, i)    (simple_priv_to_card(priv)->dai_link + (i))
    6476
     77#define simple_props_to_dlc_cpu(props, i)       ((props)->cpus + i)
     78#define simple_props_to_dlc_codec(props, i)     ((props)->codecs + i)
     79#define simple_props_to_dlc_platform(props, i)  ((props)->platforms + i)
     80
     81#define simple_props_to_dai_cpu(props, i)       ((props)->cpu_dai + i)
     82#define simple_props_to_dai_codec(props, i)     ((props)->codec_dai + i)
     83#define simple_props_to_codec_conf(props, i)    ((props)->codec_conf + i)
     84
     85#define for_each_prop_dlc_cpus(props, i, cpu)                           \
     86        for ((i) = 0;                                                   \
     87             ((i) < (props)->num.cpus) &&                               \
     88                     ((cpu) = simple_props_to_dlc_cpu(props, i));       \
     89             (i)++)
     90#define for_each_prop_dlc_codecs(props, i, codec)                       \
     91        for ((i) = 0;                                                   \
     92             ((i) < (props)->num.codecs) &&                             \
     93                     ((codec) = simple_props_to_dlc_codec(props, i));   \
     94             (i)++)
     95#define for_each_prop_dlc_platforms(props, i, platform)                 \
     96        for ((i) = 0;                                                   \
     97             ((i) < (props)->num.platforms) &&                          \
     98                     ((platform) = simple_props_to_dlc_platform(props, i)); \
     99             (i)++)
     100#define for_each_prop_codec_conf(props, i, conf)                        \
     101        for ((i) = 0;                                                   \
     102             ((i) < (props)->num.codecs) &&                             \
     103                     (props)->codec_conf &&                             \
     104                     ((conf) = simple_props_to_codec_conf(props, i));   \
     105             (i)++)
     106
     107#define for_each_prop_dai_cpu(props, i, cpu)                            \
     108        for ((i) = 0;                                                   \
     109             ((i) < (props)->num.cpus) &&                               \
     110                     ((cpu) = simple_props_to_dai_cpu(props, i));       \
     111             (i)++)
     112#define for_each_prop_dai_codec(props, i, codec)                        \
     113        for ((i) = 0;                                                   \
     114             ((i) < (props)->num.codecs) &&                             \
     115                     ((codec) = simple_props_to_dai_codec(props, i));   \
     116             (i)++)
     117
     118#define SNDRV_MAX_LINKS 128
     119
    65120struct link_info {
    66         int dais; /* number of dai  */
    67121        int link; /* number of link */
    68         int conf; /* number of codec_conf */
    69122        int cpu;  /* turn for CPU / Codec */
     123        struct prop_nums num[SNDRV_MAX_LINKS];
    70124};
    71125
     
    82136                                char *prefix);
    83137
    84 #define asoc_simple_parse_clk_cpu(dev, node, dai_link, simple_dai)              \
    85         asoc_simple_parse_clk(dev, node, simple_dai, dai_link->cpus)
    86 #define asoc_simple_parse_clk_codec(dev, node, dai_link, simple_dai)    \
    87         asoc_simple_parse_clk(dev, node, simple_dai, dai_link->codecs)
    88138int asoc_simple_parse_clk(struct device *dev,
    89139                          struct device_node *node,
     
    98148                                   struct snd_pcm_hw_params *params);
    99149
    100 #define asoc_simple_parse_cpu(node, dai_link, is_single_link)   \
    101         asoc_simple_parse_dai(node, dai_link->cpus, is_single_link)
    102 #define asoc_simple_parse_codec(node, dai_link) \
    103         asoc_simple_parse_dai(node, dai_link->codecs, NULL)
    104 #define asoc_simple_parse_platform(node, dai_link)      \
    105         asoc_simple_parse_dai(node, dai_link->platforms, NULL)
    106 
    107150#define asoc_simple_parse_tdm(np, dai)                  \
    108151        snd_soc_of_parse_tdm_slot(np,   &(dai)->tx_slot_mask,   \
     
    111154                                        &(dai)->slot_width);
    112155
    113 void asoc_simple_canonicalize_platform(struct snd_soc_dai_link *dai_link);
    114 void asoc_simple_canonicalize_cpu(struct snd_soc_dai_link *dai_link,
    115                                       int is_single_links);
     156void asoc_simple_canonicalize_platform(struct snd_soc_dai_link_component *platforms,
     157                                       struct snd_soc_dai_link_component *cpus);
     158void asoc_simple_canonicalize_cpu(struct snd_soc_dai_link_component *cpus,
     159                                  int is_single_links);
    116160
    117161int asoc_simple_clean_reference(struct snd_soc_card *card);
     
    119163void asoc_simple_convert_fixup(struct asoc_simple_data *data,
    120164                                      struct snd_pcm_hw_params *params);
    121 void asoc_simple_parse_convert(struct device *dev,
    122                                struct device_node *np, char *prefix,
     165void asoc_simple_parse_convert(struct device_node *np, char *prefix,
    123166                               struct asoc_simple_data *data);
    124167
     
    135178int asoc_simple_init_priv(struct asoc_simple_priv *priv,
    136179                               struct link_info *li);
     180int asoc_simple_remove(struct platform_device *pdev);
     181
     182int asoc_graph_card_probe(struct snd_soc_card *card);
    137183
    138184#ifdef DEBUG
     
    150196                dev_dbg(dev, "%s dai name = %s\n",
    151197                        name, dai->name);
    152         if (dai->sysclk)
    153                 dev_dbg(dev, "%s sysclk = %d\n",
    154                         name, dai->sysclk);
    155 
    156         dev_dbg(dev, "%s direction = %s\n",
    157                 name, dai->clk_direction ? "OUT" : "IN");
    158198
    159199        if (dai->slots)
     
    167207        if (dai->clk)
    168208                dev_dbg(dev, "%s clk %luHz\n", name, clk_get_rate(dai->clk));
     209        if (dai->sysclk)
     210                dev_dbg(dev, "%s sysclk = %dHz\n",
     211                        name, dai->sysclk);
     212        if (dai->clk || dai->sysclk)
     213                dev_dbg(dev, "%s direction = %s\n",
     214                        name, dai->clk_direction ? "OUT" : "IN");
    169215}
    170216
     
    182228                struct simple_dai_props *props = simple_priv_to_props(priv, i);
    183229                struct snd_soc_dai_link *link = simple_priv_to_link(priv, i);
     230                struct asoc_simple_dai *dai;
     231                struct snd_soc_codec_conf *cnf;
     232                int j;
    184233
    185234                dev_dbg(dev, "DAI%d\n", i);
    186235
    187                 asoc_simple_debug_dai(priv, "cpu", props->cpu_dai);
    188                 asoc_simple_debug_dai(priv, "codec", props->codec_dai);
     236                dev_dbg(dev, "cpu num = %d\n", link->num_cpus);
     237                for_each_prop_dai_cpu(props, j, dai)
     238                        asoc_simple_debug_dai(priv, "cpu", dai);
     239                dev_dbg(dev, "codec num = %d\n", link->num_codecs);
     240                for_each_prop_dai_codec(props, j, dai)
     241                        asoc_simple_debug_dai(priv, "codec", dai);
    189242
    190243                if (link->name)
    191244                        dev_dbg(dev, "dai name = %s\n", link->name);
    192 
    193                 dev_dbg(dev, "dai format = %04x\n", link->dai_fmt);
    194 
     245                if (link->dai_fmt)
     246                        dev_dbg(dev, "dai format = %04x\n", link->dai_fmt);
    195247                if (props->adata.convert_rate)
    196                         dev_dbg(dev, "convert_rate = %d\n",
    197                                 props->adata.convert_rate);
     248                        dev_dbg(dev, "convert_rate = %d\n", props->adata.convert_rate);
    198249                if (props->adata.convert_channels)
    199                         dev_dbg(dev, "convert_channels = %d\n",
    200                                 props->adata.convert_channels);
    201                 if (props->codec_conf && props->codec_conf->name_prefix)
    202                         dev_dbg(dev, "name prefix = %s\n",
    203                                 props->codec_conf->name_prefix);
     250                        dev_dbg(dev, "convert_channels = %d\n", props->adata.convert_channels);
     251                for_each_prop_codec_conf(props, j, cnf)
     252                        if (cnf->name_prefix)
     253                                dev_dbg(dev, "name prefix = %s\n", cnf->name_prefix);
    204254                if (props->mclk_fs)
    205                         dev_dbg(dev, "mclk-fs = %d\n",
    206                                 props->mclk_fs);
     255                        dev_dbg(dev, "mclk-fs = %d\n", props->mclk_fs);
    207256        }
    208257}
  • GPL/trunk/alsa-kernel/include/sound/soc-acpi-intel-match.h

    r679 r695  
    3030extern struct snd_soc_acpi_mach snd_soc_acpi_intel_ehl_machines[];
    3131extern struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[];
     32extern struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[];
    3233
    3334extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_sdw_machines[];
     
    3637extern struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_sdw_machines[];
    3738extern struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_sdw_machines[];
     39extern struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[];
    3840
    3941/*
  • GPL/trunk/alsa-kernel/include/sound/soc-acpi.h

    r679 r695  
    6464 * @link_mask: links enabled on the board
    6565 * @links: array of link _ADR descriptors, null terminated
     66 * @num_dai_drivers: number of elements in @dai_drivers
     67 * @dai_drivers: pointer to dai_drivers, used e.g. in nocodec mode
    6668 */
    6769struct snd_soc_acpi_mach_params {
     
    7375        u32 link_mask;
    7476        const struct snd_soc_acpi_link_adr *links;
     77        u32 num_dai_drivers;
     78        struct snd_soc_dai_driver *dai_drivers;
    7579};
    7680
     
    172176};
    173177
     178static inline bool snd_soc_acpi_sof_parent(struct device *dev)
     179{
     180        return dev->parent && dev->parent->driver && dev->parent->driver->name &&
     181                !strncmp(dev->parent->driver->name, "sof-audio-acpi", strlen("sof-audio-acpi"));
     182}
     183
    174184#endif
  • GPL/trunk/alsa-kernel/include/sound/soc-component.h

    r679 r695  
    102102        /* DT */
    103103        int (*of_xlate_dai_name)(struct snd_soc_component *component,
    104                                  struct of_phandle_args *args,
     104                                 const struct of_phandle_args *args,
    105105                                 const char **dai_name);
    106106        int (*of_xlate_dai_id)(struct snd_soc_component *comment,
     
    147147                    struct snd_pcm_substream *substream,
    148148                    struct vm_area_struct *vma);
     149        int (*ack)(struct snd_soc_component *component,
     150                   struct snd_pcm_substream *substream);
    149151
    150152        const struct snd_compress_ops *compress_ops;
     
    221223        struct snd_pcm_substream *mark_module;
    222224        struct snd_pcm_substream *mark_open;
     225        struct snd_pcm_substream *mark_hw_params;
     226        struct snd_pcm_substream *mark_trigger;
     227        struct snd_compr_stream  *mark_compr_open;
    223228        void *mark_pm;
    224229
     
    334339                               struct snd_soc_aux_dev *aux);
    335340int snd_soc_component_init(struct snd_soc_component *component);
     341int snd_soc_component_is_dummy(struct snd_soc_component *component);
    336342
    337343/* component IO */
     
    350356                                unsigned int reg, unsigned int mask,
    351357                                unsigned int value);
     358
     359unsigned int snd_soc_component_read_field(struct snd_soc_component *component,
     360                                          unsigned int reg, unsigned int mask);
     361int snd_soc_component_write_field(struct snd_soc_component *component,
     362                                  unsigned int reg, unsigned int mask,
     363                                  unsigned int val);
    352364
    353365/* component wide operations */
     
    442454                                      struct device_node *ep);
    443455int snd_soc_component_of_xlate_dai_name(struct snd_soc_component *component,
    444                                         struct of_phandle_args *args,
     456                                        const struct of_phandle_args *args,
    445457                                        const char **dai_name);
     458int snd_soc_component_compr_open(struct snd_compr_stream *cstream);
     459void snd_soc_component_compr_free(struct snd_compr_stream *cstream,
     460                                  int rollback);
     461int snd_soc_component_compr_trigger(struct snd_compr_stream *cstream, int cmd);
     462int snd_soc_component_compr_set_params(struct snd_compr_stream *cstream,
     463                                       struct snd_compr_params *params);
     464int snd_soc_component_compr_get_params(struct snd_compr_stream *cstream,
     465                                       struct snd_codec *params);
     466int snd_soc_component_compr_get_caps(struct snd_compr_stream *cstream,
     467                                     struct snd_compr_caps *caps);
     468int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream *cstream,
     469                                           struct snd_compr_codec_caps *codec);
     470int snd_soc_component_compr_ack(struct snd_compr_stream *cstream, size_t bytes);
     471int snd_soc_component_compr_pointer(struct snd_compr_stream *cstream,
     472                                    struct snd_compr_tstamp *tstamp);
     473int snd_soc_component_compr_copy(struct snd_compr_stream *cstream,
     474                                 char __user *buf, size_t count);
     475int snd_soc_component_compr_set_metadata(struct snd_compr_stream *cstream,
     476                                         struct snd_compr_metadata *metadata);
     477int snd_soc_component_compr_get_metadata(struct snd_compr_stream *cstream,
     478                                         struct snd_compr_metadata *metadata);
    446479
    447480int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream);
     
    460493int snd_soc_pcm_component_prepare(struct snd_pcm_substream *substream);
    461494int snd_soc_pcm_component_hw_params(struct snd_pcm_substream *substream,
    462                                     struct snd_pcm_hw_params *params,
    463                                     struct snd_soc_component **last);
     495                                    struct snd_pcm_hw_params *params);
    464496void snd_soc_pcm_component_hw_free(struct snd_pcm_substream *substream,
    465                                    struct snd_soc_component *last);
     497                                   int rollback);
    466498int snd_soc_pcm_component_trigger(struct snd_pcm_substream *substream,
    467                                   int cmd);
     499                                  int cmd, int rollback);
    468500int snd_soc_pcm_component_pm_runtime_get(struct snd_soc_pcm_runtime *rtd,
    469501                                         void *stream);
    470502void snd_soc_pcm_component_pm_runtime_put(struct snd_soc_pcm_runtime *rtd,
    471503                                          void *stream, int rollback);
     504int snd_soc_pcm_component_ack(struct snd_pcm_substream *substream);
    472505
    473506#endif /* __SOC_COMPONENT_H */
  • GPL/trunk/alsa-kernel/include/sound/soc-dai.h

    r679 r695  
    7373
    7474/*
    75  * DAI hardware clock masters.
     75 * DAI hardware clock providers/consumers
    7676 *
    7777 * This is wrt the codec, the inverse is true for the interface
    78  * i.e. if the codec is clk and FRM master then the interface is
    79  * clk and frame secondary.
    80  */
    81 #define SND_SOC_DAIFMT_CBM_CFM          (1 << 12) /* codec clk & FRM master */
    82 #define SND_SOC_DAIFMT_CBS_CFM          (2 << 12) /* codec clk secondary & FRM master */
    83 #define SND_SOC_DAIFMT_CBM_CFS          (3 << 12) /* codec clk master & frame secondary */
    84 #define SND_SOC_DAIFMT_CBS_CFS          (4 << 12) /* codec clk & FRM secondary */
    85 
    86 #define SND_SOC_DAIFMT_FORMAT_MASK      0x000f
    87 #define SND_SOC_DAIFMT_CLOCK_MASK       0x00f0
    88 #define SND_SOC_DAIFMT_INV_MASK         0x0f00
    89 #define SND_SOC_DAIFMT_MASTER_MASK      0xf000
     78 * i.e. if the codec is clk and FRM provider then the interface is
     79 * clk and frame consumer.
     80 */
     81#define SND_SOC_DAIFMT_CBP_CFP          (1 << 12) /* codec clk provider & frame provider */
     82#define SND_SOC_DAIFMT_CBC_CFP          (2 << 12) /* codec clk consumer & frame provider */
     83#define SND_SOC_DAIFMT_CBP_CFC          (3 << 12) /* codec clk provider & frame consumer */
     84#define SND_SOC_DAIFMT_CBC_CFC          (4 << 12) /* codec clk consumer & frame consumer */
     85
     86/* previous definitions kept for backwards-compatibility, do not use in new contributions */
     87#define SND_SOC_DAIFMT_CBM_CFM          SND_SOC_DAIFMT_CBP_CFP
     88#define SND_SOC_DAIFMT_CBS_CFM          SND_SOC_DAIFMT_CBC_CFP
     89#define SND_SOC_DAIFMT_CBM_CFS          SND_SOC_DAIFMT_CBP_CFC
     90#define SND_SOC_DAIFMT_CBS_CFS          SND_SOC_DAIFMT_CBC_CFC
     91
     92#define SND_SOC_DAIFMT_FORMAT_MASK              0x000f
     93#define SND_SOC_DAIFMT_CLOCK_MASK               0x00f0
     94#define SND_SOC_DAIFMT_INV_MASK                 0x0f00
     95#define SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK      0xf000
     96
     97#define SND_SOC_DAIFMT_MASTER_MASK      SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK
    9098
    9199/*
     
    150158                          struct snd_pcm_hw_params *params);
    151159void snd_soc_dai_hw_free(struct snd_soc_dai *dai,
    152                          struct snd_pcm_substream *substream);
     160                         struct snd_pcm_substream *substream,
     161                         int rollback);
    153162int snd_soc_dai_startup(struct snd_soc_dai *dai,
    154163                        struct snd_pcm_substream *substream);
     
    181190int snd_soc_pcm_dai_new(struct snd_soc_pcm_runtime *rtd);
    182191int snd_soc_pcm_dai_prepare(struct snd_pcm_substream *substream);
    183 int snd_soc_pcm_dai_trigger(struct snd_pcm_substream *substream, int cmd);
     192int snd_soc_pcm_dai_trigger(struct snd_pcm_substream *substream, int cmd,
     193                            int rollback);
    184194int snd_soc_pcm_dai_bespoke_trigger(struct snd_pcm_substream *substream,
    185195                                    int cmd);
     
    188198                              struct snd_compr_stream *cstream);
    189199void snd_soc_dai_compr_shutdown(struct snd_soc_dai *dai,
    190                                 struct snd_compr_stream *cstream);
     200                                struct snd_compr_stream *cstream,
     201                                int rollback);
    191202int snd_soc_dai_compr_trigger(struct snd_soc_dai *dai,
    192203                              struct snd_compr_stream *cstream, int cmd);
     
    343354        struct snd_soc_pcm_stream capture;
    344355        struct snd_soc_pcm_stream playback;
    345         unsigned int symmetric_rates:1;
     356        unsigned int symmetric_rate:1;
    346357        unsigned int symmetric_channels:1;
    347         unsigned int symmetric_samplebits:1;
     358        unsigned int symmetric_sample_bits:1;
    348359
    349360        /* probe ordering - for components with runtime dependencies */
     
    391402        /* function mark */
    392403        struct snd_pcm_substream *mark_startup;
     404        struct snd_pcm_substream *mark_hw_params;
     405        struct snd_pcm_substream *mark_trigger;
     406        struct snd_compr_stream  *mark_compr_startup;
    393407
    394408        /* bit field */
  • GPL/trunk/alsa-kernel/include/sound/soc-dpcm.h

    r679 r695  
    150150        int stream, struct snd_soc_dapm_widget_list **list, int new);
    151151int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream);
    152 int dpcm_be_dai_shutdown(struct snd_soc_pcm_runtime *fe, int stream);
     152void dpcm_be_dai_stop(struct snd_soc_pcm_runtime *fe, int stream,
     153                      int do_hw_free, struct snd_soc_dpcm *last);
    153154void dpcm_be_disconnect(struct snd_soc_pcm_runtime *fe, int stream);
    154155void dpcm_clear_pending_state(struct snd_soc_pcm_runtime *fe, int stream);
    155 int dpcm_be_dai_hw_free(struct snd_soc_pcm_runtime *fe, int stream);
     156void dpcm_be_dai_hw_free(struct snd_soc_pcm_runtime *fe, int stream);
    156157int dpcm_be_dai_hw_params(struct snd_soc_pcm_runtime *fe, int tream);
    157158int dpcm_be_dai_trigger(struct snd_soc_pcm_runtime *fe, int stream, int cmd);
     
    160161        int event);
    161162
     163#define dpcm_be_dai_startup_rollback(fe, stream, last)  \
     164                                                dpcm_be_dai_stop(fe, stream, 0, last)
     165#define dpcm_be_dai_startup_unwind(fe, stream)  dpcm_be_dai_stop(fe, stream, 0, NULL)
     166#define dpcm_be_dai_shutdown(fe, stream)        dpcm_be_dai_stop(fe, stream, 1, NULL)
     167
    162168#endif
  • GPL/trunk/alsa-kernel/include/sound/soc-topology.h

    r679 r695  
    3131struct snd_soc_dai;
    3232struct snd_soc_dapm_route;
    33 
    34 /* object scan be loaded and unloaded in groups with identfying indexes */
    35 #define SND_SOC_TPLG_INDEX_ALL  0       /* ID that matches all FW objects */
    3633
    3734/* dynamic object type */
     
    182179/* Dynamic Object loading and removal for component drivers */
    183180int snd_soc_tplg_component_load(struct snd_soc_component *comp,
    184         struct snd_soc_tplg_ops *ops, const struct firmware *fw,
    185         u32 index);
    186 int snd_soc_tplg_component_remove(struct snd_soc_component *comp, u32 index);
    187 
    188 /* Widget removal - widgets also removed wth component API */
    189 void snd_soc_tplg_widget_remove(struct snd_soc_dapm_widget *w);
    190 void snd_soc_tplg_widget_remove_all(struct snd_soc_dapm_context *dapm,
    191         u32 index);
     181        struct snd_soc_tplg_ops *ops, const struct firmware *fw);
     182int snd_soc_tplg_component_remove(struct snd_soc_component *comp);
    192183
    193184/* Binds event handlers to dynamic widgets */
  • GPL/trunk/alsa-kernel/include/sound/soc.h

    r679 r695  
    491491        const struct snd_pcm_hardware *hw);
    492492
    493 /* Jack reporting */
    494 void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask);
    495 int snd_soc_jack_add_pins(struct snd_soc_jack *jack, int count,
    496                           struct snd_soc_jack_pin *pins);
    497 void snd_soc_jack_notifier_register(struct snd_soc_jack *jack,
    498                                     struct notifier_block *nb);
    499 void snd_soc_jack_notifier_unregister(struct snd_soc_jack *jack,
    500                                       struct notifier_block *nb);
    501 int snd_soc_jack_add_zones(struct snd_soc_jack *jack, int count,
    502                           struct snd_soc_jack_zone *zones);
    503 int snd_soc_jack_get_type(struct snd_soc_jack *jack, int micbias_voltage);
    504 #ifdef CONFIG_GPIOLIB
    505 int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
    506                         struct snd_soc_jack_gpio *gpios);
    507 int snd_soc_jack_add_gpiods(struct device *gpiod_dev,
    508                             struct snd_soc_jack *jack,
    509                             int count, struct snd_soc_jack_gpio *gpios);
    510 void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,
    511                         struct snd_soc_jack_gpio *gpios);
    512 #else
    513 static inline int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
    514                                          struct snd_soc_jack_gpio *gpios)
    515 {
    516         return 0;
    517 }
    518 
    519 static inline int snd_soc_jack_add_gpiods(struct device *gpiod_dev,
    520                                           struct snd_soc_jack *jack,
    521                                           int count,
    522                                           struct snd_soc_jack_gpio *gpios)
    523 {
    524         return 0;
    525 }
    526 
    527 static inline void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,
    528                                            struct snd_soc_jack_gpio *gpios)
    529 {
    530 }
    531 #endif
    532 
    533493struct snd_ac97 *snd_soc_alloc_ac97_component(struct snd_soc_component *component);
    534494struct snd_ac97 *snd_soc_new_ac97_component(struct snd_soc_component *component,
     
    617577        struct snd_ctl_elem_value *ucontrol);
    618578
    619 /**
    620  * struct snd_soc_jack_pin - Describes a pin to update based on jack detection
    621  *
    622  * @pin:    name of the pin to update
    623  * @mask:   bits to check for in reported jack status
    624  * @invert: if non-zero then pin is enabled when status is not reported
    625  * @list:   internal list entry
    626  */
    627 struct snd_soc_jack_pin {
    628         struct list_head list;
    629         const char *pin;
    630         int mask;
    631         bool invert;
    632 };
    633 
    634 /**
    635  * struct snd_soc_jack_zone - Describes voltage zones of jack detection
    636  *
    637  * @min_mv: start voltage in mv
    638  * @max_mv: end voltage in mv
    639  * @jack_type: type of jack that is expected for this voltage
    640  * @debounce_time: debounce_time for jack, codec driver should wait for this
    641  *              duration before reading the adc for voltages
    642  * @list:   internal list entry
    643  */
    644 struct snd_soc_jack_zone {
    645         unsigned int min_mv;
    646         unsigned int max_mv;
    647         unsigned int jack_type;
    648         unsigned int debounce_time;
    649         struct list_head list;
    650 };
    651 
    652 /**
    653  * struct snd_soc_jack_gpio - Describes a gpio pin for jack detection
    654  *
    655  * @gpio:         legacy gpio number
    656  * @idx:          gpio descriptor index within the function of the GPIO
    657  *                consumer device
    658  * @gpiod_dev:    GPIO consumer device
    659  * @name:         gpio name. Also as connection ID for the GPIO consumer
    660  *                device function name lookup
    661  * @report:       value to report when jack detected
    662  * @invert:       report presence in low state
    663  * @debounce_time: debounce time in ms
    664  * @wake:         enable as wake source
    665  * @jack_status_check: callback function which overrides the detection
    666  *                     to provide more complex checks (eg, reading an
    667  *                     ADC).
    668  */
    669 struct snd_soc_jack_gpio {
    670         unsigned int gpio;
    671         unsigned int idx;
    672         struct device *gpiod_dev;
    673         const char *name;
    674         int report;
    675         int invert;
    676         int debounce_time;
    677         bool wake;
    678 
    679         /* private: */
    680         struct snd_soc_jack *jack;
    681         struct delayed_work work;
    682         struct notifier_block pm_notifier;
    683         struct gpio_desc *desc;
    684 
    685         void *data;
    686         /* public: */
    687         int (*jack_status_check)(void *data);
    688 };
    689 
    690 struct snd_soc_jack {
    691         struct mutex mutex;
    692         struct snd_jack *jack;
    693         struct snd_soc_card *card;
    694         struct list_head pins;
    695         int status;
    696         struct blocking_notifier_head notifier;
    697         struct list_head jack_zones;
    698 };
    699 
    700579/* SoC PCM stream information */
    701580struct snd_soc_pcm_stream {
     
    807686
    808687        /* Symmetry requirements */
    809         unsigned int symmetric_rates:1;
     688        unsigned int symmetric_rate:1;
    810689        unsigned int symmetric_channels:1;
    811         unsigned int symmetric_samplebits:1;
     690        unsigned int symmetric_sample_bits:1;
    812691
    813692        /* Do not create a PCM for this DAI link (Backend link) */
     
    834713        unsigned int ignore:1;
    835714
     715        /* This flag will reorder stop sequence. By enabling this flag
     716         * DMA controller stop sequence will be invoked first followed by
     717         * CPU DAI driver stop sequence
     718         */
     719        unsigned int stop_dma_first:1;
     720
    836721#ifdef CONFIG_SND_SOC_TOPOLOGY
    837722        struct snd_soc_dobj dobj; /* For topology */
    838723#endif
    839724};
     725
     726static inline struct snd_soc_dai_link_component*
     727asoc_link_to_cpu(struct snd_soc_dai_link *link, int n) {
     728        return &(link)->cpus[n];
     729}
     730
     731static inline struct snd_soc_dai_link_component*
     732asoc_link_to_codec(struct snd_soc_dai_link *link, int n) {
     733        return &(link)->codecs[n];
     734}
     735
     736static inline struct snd_soc_dai_link_component*
     737asoc_link_to_platform(struct snd_soc_dai_link *link, int n) {
     738        return &(link)->platforms[n];
     739}
     740
    840741#define for_each_link_codecs(link, i, codec)                            \
    841742        for ((i) = 0;                                                   \
    842              ((i) < link->num_codecs) && ((codec) = &link->codecs[i]);  \
     743             ((i) < link->num_codecs) &&                                \
     744                     ((codec) = asoc_link_to_codec(link, i));           \
    843745             (i)++)
    844746
     
    846748        for ((i) = 0;                                                   \
    847749             ((i) < link->num_platforms) &&                             \
    848              ((platform) = &link->platforms[i]);                        \
     750                     ((platform) = asoc_link_to_platform(link, i));     \
    849751             (i)++)
    850752
    851753#define for_each_link_cpus(link, i, cpu)                                \
    852754        for ((i) = 0;                                                   \
    853              ((i) < link->num_cpus) && ((cpu) = &link->cpus[i]);        \
     755             ((i) < link->num_cpus) &&                                  \
     756                     ((cpu) = asoc_link_to_cpu(link, i));               \
    854757             (i)++)
    855758
     
    1085988        unsigned int disable_route_checks:1;
    1086989        unsigned int probed:1;
     990        unsigned int component_chaining:1;
    1087991
    1088992        void *drvdata;
     
    11621066        /* function mark */
    11631067        struct snd_pcm_substream *mark_startup;
     1068        struct snd_pcm_substream *mark_hw_params;
     1069        struct snd_pcm_substream *mark_trigger;
     1070        struct snd_compr_stream  *mark_compr_startup;
    11641071
    11651072        /* bit field */
     
    11841091             ((i) < rtd->num_cpus) && ((dai) = asoc_rtd_to_cpu(rtd, i)); \
    11851092             (i)++)
    1186 #define for_each_rtd_cpu_dais_rollback(rtd, i, dai)             \
    1187         for (; (--(i) >= 0) && ((dai) = asoc_rtd_to_cpu(rtd, i));)
    11881093#define for_each_rtd_codec_dais(rtd, i, dai)                            \
    11891094        for ((i) = 0;                                                   \
    11901095             ((i) < rtd->num_codecs) && ((dai) = asoc_rtd_to_codec(rtd, i)); \
    11911096             (i)++)
    1192 #define for_each_rtd_codec_dais_rollback(rtd, i, dai)           \
    1193         for (; (--(i) >= 0) && ((dai) = asoc_rtd_to_codec(rtd, i));)
    11941097#define for_each_rtd_dais(rtd, i, dai)                                  \
    11951098        for ((i) = 0;                                                   \
     
    11971100                     ((dai) = (rtd)->dais[i]);                          \
    11981101             (i)++)
    1199 #define for_each_rtd_dais_rollback(rtd, i, dai)         \
    1200         for (; (--(i) >= 0) && ((dai) = (rtd)->dais[i]);)
    12011102
    12021103void snd_soc_close_delayed_work(struct snd_soc_pcm_runtime *rtd);
     
    13431244                                     struct device_node **framemaster);
    13441245int snd_soc_get_dai_id(struct device_node *ep);
    1345 int snd_soc_get_dai_name(struct of_phandle_args *args,
     1246int snd_soc_get_dai_name(const struct of_phandle_args *args,
    13461247                         const char **dai_name);
    13471248int snd_soc_of_get_dai_name(struct device_node *of_node,
     
    13861287        /* set platform name for each dailink */
    13871288        for_each_card_prelinks(card, i, dai_link) {
     1289                /* only single platform is supported for now */
     1290                if (dai_link->num_platforms != 1)
     1291                        return -EINVAL;
     1292
     1293                if (!dai_link->platforms)
     1294                        return -EINVAL;
     1295
    13881296                name = devm_kstrdup(card->dev, platform_name, GFP_KERNEL);
    13891297                if (!name)
    13901298                        return -ENOMEM;
    13911299
    1392                 if (!dai_link->platforms)
    1393                         return -EINVAL;
    1394 
    13951300                /* only single platform is supported for now */
    13961301                dai_link->platforms->name = name;
     
    14191324#include <sound/soc-component.h>
    14201325#include <sound/soc-card.h>
     1326#include <sound/soc-jack.h>
    14211327
    14221328#endif
  • GPL/trunk/alsa-kernel/include/sound/sof.h

    r679 r695  
    101101};
    102102
    103 int sof_nocodec_setup(struct device *dev,
    104                       const struct snd_sof_dsp_ops *ops);
     103int sof_dai_get_mclk(struct snd_soc_pcm_runtime *rtd);
     104
    105105#endif
  • GPL/trunk/alsa-kernel/include/sound/version.h

    r689 r695  
    11/* include/version.h */
    2 #define CONFIG_SND_VERSION "5.10.50"
     2#define CONFIG_SND_VERSION "5.13.10"
    33#define CONFIG_SND_DATE ""
  • GPL/trunk/alsa-kernel/include/uapi/sound/asoc.h

    r615 r695  
    171171
    172172/* DAI topology BCLK parameter
    173  * For the backwards capability, by default codec is bclk master
    174  */
    175 #define SND_SOC_TPLG_BCLK_CM         0 /* codec is bclk master */
    176 #define SND_SOC_TPLG_BCLK_CS         1 /* codec is bclk slave */
     173 * For the backwards capability, by default codec is bclk provider
     174 */
     175#define SND_SOC_TPLG_BCLK_CP         0 /* codec is bclk provider */
     176#define SND_SOC_TPLG_BCLK_CC         1 /* codec is bclk consumer */
     177/* keep previous definitions for compatibility */
     178#define SND_SOC_TPLG_BCLK_CM         SND_SOC_TPLG_BCLK_CP
     179#define SND_SOC_TPLG_BCLK_CS         SND_SOC_TPLG_BCLK_CC
    177180
    178181/* DAI topology FSYNC parameter
    179  * For the backwards capability, by default codec is fsync master
    180  */
    181 #define SND_SOC_TPLG_FSYNC_CM         0 /* codec is fsync master */
    182 #define SND_SOC_TPLG_FSYNC_CS         1 /* codec is fsync slave */
     182 * For the backwards capability, by default codec is fsync provider
     183 */
     184#define SND_SOC_TPLG_FSYNC_CP         0 /* codec is fsync provider */
     185#define SND_SOC_TPLG_FSYNC_CC         1 /* codec is fsync consumer */
     186/* keep previous definitions for compatibility */
     187#define SND_SOC_TPLG_FSYNC_CM         SND_SOC_TPLG_FSYNC_CP
     188#define SND_SOC_TPLG_FSYNC_CS         SND_SOC_TPLG_FSYNC_CC
    183189
    184190/*
     
    337343        __u8 invert_bclk;       /* 1 for inverted BCLK, 0 for normal */
    338344        __u8 invert_fsync;      /* 1 for inverted frame clock, 0 for normal */
    339         __u8 bclk_master;       /* SND_SOC_TPLG_BCLK_ value */
    340         __u8 fsync_master;      /* SND_SOC_TPLG_FSYNC_ value */
     345        __u8 bclk_provider;     /* SND_SOC_TPLG_BCLK_ value */
     346        __u8 fsync_provider;    /* SND_SOC_TPLG_FSYNC_ value */
    341347        __u8 mclk_direction;    /* SND_SOC_TPLG_MCLK_ value */
    342348        __le16 reserved;        /* for 32bit alignment */
  • GPL/trunk/alsa-kernel/include/uapi/sound/sof/abi.h

    r629 r695  
    2727/* SOF ABI version major, minor and patch numbers */
    2828#define SOF_ABI_MAJOR 3
    29 #define SOF_ABI_MINOR 17
     29#define SOF_ABI_MINOR 18
    3030#define SOF_ABI_PATCH 0
    3131
Note: See TracChangeset for help on using the changeset viewer.