Changeset 695 for GPL/trunk/alsa-kernel/include
- Timestamp:
- Aug 21, 2021, 3:35:34 AM (4 years ago)
- Location:
- GPL/trunk
- Files:
-
- 27 edited
-
. (modified) (1 prop)
-
alsa-kernel/include/sound/compress_driver.h (modified) (5 diffs)
-
alsa-kernel/include/sound/control.h (modified) (7 diffs)
-
alsa-kernel/include/sound/core.h (modified) (3 diffs)
-
alsa-kernel/include/sound/dmaengine_pcm.h (modified) (2 diffs)
-
alsa-kernel/include/sound/hda_codec.h (modified) (1 diff)
-
alsa-kernel/include/sound/hda_register.h (modified) (1 diff)
-
alsa-kernel/include/sound/hdaudio.h (modified) (3 diffs)
-
alsa-kernel/include/sound/hdaudio_ext.h (modified) (1 diff)
-
alsa-kernel/include/sound/hdmi-codec.h (modified) (1 diff)
-
alsa-kernel/include/sound/intel-dsp-config.h (modified) (2 diffs)
-
alsa-kernel/include/sound/jack.h (modified) (1 diff)
-
alsa-kernel/include/sound/pcm.h (modified) (1 diff)
-
alsa-kernel/include/sound/rt5645.h (modified) (1 diff)
-
alsa-kernel/include/sound/rt5682.h (modified) (1 diff)
-
alsa-kernel/include/sound/simple_card_utils.h (modified) (12 diffs)
-
alsa-kernel/include/sound/soc-acpi-intel-match.h (modified) (2 diffs)
-
alsa-kernel/include/sound/soc-acpi.h (modified) (3 diffs)
-
alsa-kernel/include/sound/soc-component.h (modified) (7 diffs)
-
alsa-kernel/include/sound/soc-dai.h (modified) (6 diffs)
-
alsa-kernel/include/sound/soc-dpcm.h (modified) (2 diffs)
-
alsa-kernel/include/sound/soc-topology.h (modified) (2 diffs)
-
alsa-kernel/include/sound/soc.h (modified) (12 diffs)
-
alsa-kernel/include/sound/sof.h (modified) (1 diff)
-
alsa-kernel/include/sound/version.h (modified) (1 diff)
-
alsa-kernel/include/uapi/sound/asoc.h (modified) (2 diffs)
-
alsa-kernel/include/uapi/sound/sof/abi.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
GPL/trunk
- Property svn:mergeinfo changed
/GPL/branches/uniaud32-next merged: 691-694
- Property svn:mergeinfo changed
-
GPL/trunk/alsa-kernel/include/sound/compress_driver.h
r679 r695 68 68 * @next_track: has userspace signal next track transition, true when set 69 69 * @partial_drain: undergoing partial_drain for stream, true when set 70 * @pause_in_draining: paused during draining state, true when set 70 71 * @private_data: pointer to DSP private data 71 72 * @dma_buffer: allocated buffer if any … … 81 82 bool next_track; 82 83 bool partial_drain; 84 bool pause_in_draining; 83 85 void *private_data; 84 86 struct snd_dma_buffer dma_buffer; … … 143 145 * @lock: device lock 144 146 * @device: device id 147 * @use_pause_in_draining: allow pause in draining, true when set 145 148 */ 146 149 struct snd_compr { … … 153 156 struct mutex lock; 154 157 int device; 158 bool use_pause_in_draining; 155 159 #ifdef CONFIG_SND_VERBOSE_PROCFS 156 160 /* private: */ … … 166 170 int snd_compress_new(struct snd_card *card, int device, 167 171 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 */ 180 static inline void snd_compr_use_pause_in_draining(struct snd_compr_stream *substream) 181 { 182 substream->device->use_pause_in_draining = true; 183 } 168 184 169 185 /* dsp driver callback apis -
GPL/trunk/alsa-kernel/include/sound/control.h
r679 r695 25 25 /* internal flag for skipping validations */ 26 26 #ifdef CONFIG_SND_CTL_VALIDATION 27 #define SNDRV_CTL_ELEM_ACCESS_SKIP_CHECK (1 << 2 7)27 #define SNDRV_CTL_ELEM_ACCESS_SKIP_CHECK (1 << 24) 28 28 #define snd_ctl_skip_validation(info) \ 29 29 ((info)->access & SNDRV_CTL_ELEM_ACCESS_SKIP_CHECK) … … 32 32 #define snd_ctl_skip_validation(info) true 33 33 #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 */ 34 40 35 41 enum { … … 109 115 }; 110 116 117 struct 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 111 125 #define snd_ctl_file(n) list_entry(n, struct snd_ctl_file, list) 112 126 … … 116 130 117 131 void snd_ctl_notify(struct snd_card * card, unsigned int mask, struct snd_ctl_elem_id * id); 132 void snd_ctl_notify_one(struct snd_card * card, unsigned int mask, struct snd_kcontrol * kctl, unsigned int ioff); 118 133 119 134 struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new * kcontrolnew, void * private_data); … … 124 139 int snd_ctl_remove_id(struct snd_card * card, struct snd_ctl_elem_id *id); 125 140 int 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); 141 int snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id, int active); 128 142 struct snd_kcontrol *snd_ctl_find_numid(struct snd_card * card, unsigned int numid); 129 143 struct snd_kcontrol *snd_ctl_find_id(struct snd_card * card, struct snd_ctl_elem_id *id); … … 140 154 #define snd_ctl_unregister_ioctl_compat(fcn) 141 155 #endif 156 157 int snd_ctl_request_layer(const char *module_name); 158 void snd_ctl_register_layer(struct snd_ctl_layer_ops *lops); 159 void snd_ctl_disconnect_layer(struct snd_ctl_layer_ops *lops); 142 160 143 161 int snd_ctl_get_preferred_subdevice(struct snd_card *card, int type); … … 255 273 256 274 /* 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) 280 static inline int snd_ctl_led_request(void) { return snd_ctl_request_layer(SND_CTL_LAYER_MODULE_LED); } 281 #else 282 static inline int snd_ctl_led_request(void) { return 0; } 283 #endif 284 285 /* 257 286 * Helper functions for jack-detection controls 258 287 */ -
GPL/trunk/alsa-kernel/include/sound/core.h
r679 r695 104 104 rwlock_t ctl_files_rwlock; /* ctl_files list lock */ 105 105 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. 107 107 struct list_head controls; /* all controls for this card */ 108 108 struct list_head ctl_files; /* active control files */ … … 126 126 size_t total_pcm_alloc_bytes; /* total amount of allocated buffers */ 127 127 struct mutex memory_mutex; /* protection for the above */ 128 #ifdef CONFIG_SND_DEBUG 129 struct dentry *debugfs_root; /* debugfs root for card */ 130 #endif 128 131 129 132 #ifdef CONFIG_PM … … 184 187 extern int snd_ecards_limit; 185 188 extern struct class *sound_class; 189 #ifdef CONFIG_SND_DEBUG 190 extern struct dentry *sound_debugfs_root; 191 #endif 186 192 187 193 void snd_request_card(int card); -
GPL/trunk/alsa-kernel/include/sound/dmaengine_pcm.h
r679 r695 67 67 * @fifo_size: FIFO size of the DAI controller in bytes 68 68 * @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 69 72 */ 70 73 struct snd_dmaengine_dai_dma_data { … … 77 80 unsigned int fifo_size; 78 81 unsigned int flags; 82 void *peripheral_config; 83 size_t peripheral_size; 79 84 }; 80 85 -
GPL/trunk/alsa-kernel/include/sound/hda_codec.h
r679 r695 345 345 snd_hdac_get_connections(&(codec)->core, nid, list, max_conns) 346 346 #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) 348 348 349 349 int snd_hda_get_conn_list(struct hda_codec *codec, hda_nid_t nid, -
GPL/trunk/alsa-kernel/include/sound/hda_register.h
r679 r695 141 141 #define AZX_MAX_BDL_ENTRIES (BDL_SIZE / 16) 142 142 #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) 145 149 146 150 /* RIRB int mask: overrun[2], response[0] */ -
GPL/trunk/alsa-kernel/include/sound/hdaudio.h
r679 r695 242 242 int (*get_response)(struct hdac_bus *bus, unsigned int addr, 243 243 unsigned int *res); 244 /* notify of codec link power-up/down */ 245 void (*link_power)(struct hdac_device *hdev, bool enable); 244 246 }; 245 247 … … 390 392 unsigned int cmd, unsigned int *res); 391 393 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 } 394 void snd_hdac_codec_link_up(struct hdac_device *codec); 395 void snd_hdac_codec_link_down(struct hdac_device *codec); 401 396 402 397 int snd_hdac_bus_send_cmd(struct hdac_bus *bus, unsigned int val); … … 412 407 void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus); 413 408 int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset); 409 void snd_hdac_bus_link_power(struct hdac_device *hdev, bool enable); 414 410 415 411 void snd_hdac_bus_update_rirb(struct hdac_bus *bus); -
GPL/trunk/alsa-kernel/include/sound/hdaudio_ext.h
r679 r695 132 132 int snd_hdac_ext_bus_link_put(struct hdac_bus *bus, struct hdac_ext_link *link); 133 133 134 void snd_hdac_ext_bus_link_power(struct hdac_device *codec, bool enable); 135 134 136 /* update register macro */ 135 137 #define snd_hdac_updatel(addr, reg, mask, val) \ -
GPL/trunk/alsa-kernel/include/sound/hdmi-codec.h
r679 r695 35 35 unsigned int bit_clk_master:1; 36 36 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; 37 42 }; 38 43 -
GPL/trunk/alsa-kernel/include/sound/intel-dsp-config.h
r679 r695 22 22 23 23 int snd_intel_dsp_driver_probe(struct pci_dev *pci); 24 int snd_intel_acpi_dsp_driver_probe(struct device *dev, const u8 acpi_hid[ACPI_ID_LEN]); 24 25 25 26 #else … … 30 31 } 31 32 33 static inline 34 int 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 32 39 #endif 33 40 -
GPL/trunk/alsa-kernel/include/sound/jack.h
r679 r695 68 68 unsigned int key[6]; /* Keep in sync with definitions above */ 69 69 #endif /* CONFIG_SND_JACK_INPUT_DEV */ 70 int hw_status_cache; 70 71 void *private_data; 71 72 void (*private_free)(struct snd_jack *); -
GPL/trunk/alsa-kernel/include/sound/pcm.h
r679 r695 230 230 unsigned int cond; 231 231 int var; 232 int deps[ 4];232 int deps[5]; 233 233 234 234 snd_pcm_hw_rule_func_t func; -
GPL/trunk/alsa-kernel/include/sound/rt5645.h
r679 r695 23 23 /* Invert JD1_1 status polarity */ 24 24 bool inv_jd1_1; 25 /* Invert HP detect status polarity */ 26 bool inv_hp_pol; 25 27 26 28 /* Value to asign to snd_soc_card.long_name */ -
GPL/trunk/alsa-kernel/include/sound/rt5682.h
r679 r695 41 41 unsigned int dmic_clk_rate; 42 42 unsigned int dmic_delay; 43 bool dmic_clk_driving_high; 43 44 44 45 const char *dai_clk_names[RT5682_DAI_NUM_CLKS]; -
GPL/trunk/alsa-kernel/include/sound/simple_card_utils.h
r679 r695 39 39 }; 40 40 41 struct prop_nums { 42 int cpus; 43 int codecs; 44 int platforms; 45 }; 46 41 47 struct asoc_simple_priv { 42 48 struct snd_soc_card snd_card; … … 44 50 struct asoc_simple_dai *cpu_dai; 45 51 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; 49 55 struct asoc_simple_data adata; 50 56 struct snd_soc_codec_conf *codec_conf; 57 struct prop_nums num; 51 58 unsigned int mclk_fs; 52 59 } *dai_props; … … 55 62 struct snd_soc_dai_link *dai_link; 56 63 struct asoc_simple_dai *dais; 64 struct snd_soc_dai_link_component *dlcs; 65 struct snd_soc_dai_link_component dummy; 57 66 struct snd_soc_codec_conf *codec_conf; 58 67 struct gpio_desc *pa_gpio; 68 const struct snd_soc_ops *ops; 69 unsigned int dpcm_selectable:1; 70 unsigned int force_dpcm:1; 59 71 }; 60 72 #define simple_priv_to_card(priv) (&(priv)->snd_card) … … 63 75 #define simple_priv_to_link(priv, i) (simple_priv_to_card(priv)->dai_link + (i)) 64 76 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 65 120 struct link_info { 66 int dais; /* number of dai */67 121 int link; /* number of link */ 68 int conf; /* number of codec_conf */69 122 int cpu; /* turn for CPU / Codec */ 123 struct prop_nums num[SNDRV_MAX_LINKS]; 70 124 }; 71 125 … … 82 136 char *prefix); 83 137 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)88 138 int asoc_simple_parse_clk(struct device *dev, 89 139 struct device_node *node, … … 98 148 struct snd_pcm_hw_params *params); 99 149 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 107 150 #define asoc_simple_parse_tdm(np, dai) \ 108 151 snd_soc_of_parse_tdm_slot(np, &(dai)->tx_slot_mask, \ … … 111 154 &(dai)->slot_width); 112 155 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); 156 void asoc_simple_canonicalize_platform(struct snd_soc_dai_link_component *platforms, 157 struct snd_soc_dai_link_component *cpus); 158 void asoc_simple_canonicalize_cpu(struct snd_soc_dai_link_component *cpus, 159 int is_single_links); 116 160 117 161 int asoc_simple_clean_reference(struct snd_soc_card *card); … … 119 163 void asoc_simple_convert_fixup(struct asoc_simple_data *data, 120 164 struct snd_pcm_hw_params *params); 121 void asoc_simple_parse_convert(struct device *dev, 122 struct device_node *np, char *prefix, 165 void asoc_simple_parse_convert(struct device_node *np, char *prefix, 123 166 struct asoc_simple_data *data); 124 167 … … 135 178 int asoc_simple_init_priv(struct asoc_simple_priv *priv, 136 179 struct link_info *li); 180 int asoc_simple_remove(struct platform_device *pdev); 181 182 int asoc_graph_card_probe(struct snd_soc_card *card); 137 183 138 184 #ifdef DEBUG … … 150 196 dev_dbg(dev, "%s dai name = %s\n", 151 197 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");158 198 159 199 if (dai->slots) … … 167 207 if (dai->clk) 168 208 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"); 169 215 } 170 216 … … 182 228 struct simple_dai_props *props = simple_priv_to_props(priv, i); 183 229 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; 184 233 185 234 dev_dbg(dev, "DAI%d\n", i); 186 235 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); 189 242 190 243 if (link->name) 191 244 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); 195 247 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); 198 249 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); 204 254 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); 207 256 } 208 257 } -
GPL/trunk/alsa-kernel/include/sound/soc-acpi-intel-match.h
r679 r695 30 30 extern struct snd_soc_acpi_mach snd_soc_acpi_intel_ehl_machines[]; 31 31 extern struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[]; 32 extern struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[]; 32 33 33 34 extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_sdw_machines[]; … … 36 37 extern struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_sdw_machines[]; 37 38 extern struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_sdw_machines[]; 39 extern struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[]; 38 40 39 41 /* -
GPL/trunk/alsa-kernel/include/sound/soc-acpi.h
r679 r695 64 64 * @link_mask: links enabled on the board 65 65 * @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 66 68 */ 67 69 struct snd_soc_acpi_mach_params { … … 73 75 u32 link_mask; 74 76 const struct snd_soc_acpi_link_adr *links; 77 u32 num_dai_drivers; 78 struct snd_soc_dai_driver *dai_drivers; 75 79 }; 76 80 … … 172 176 }; 173 177 178 static 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 174 184 #endif -
GPL/trunk/alsa-kernel/include/sound/soc-component.h
r679 r695 102 102 /* DT */ 103 103 int (*of_xlate_dai_name)(struct snd_soc_component *component, 104 struct of_phandle_args *args,104 const struct of_phandle_args *args, 105 105 const char **dai_name); 106 106 int (*of_xlate_dai_id)(struct snd_soc_component *comment, … … 147 147 struct snd_pcm_substream *substream, 148 148 struct vm_area_struct *vma); 149 int (*ack)(struct snd_soc_component *component, 150 struct snd_pcm_substream *substream); 149 151 150 152 const struct snd_compress_ops *compress_ops; … … 221 223 struct snd_pcm_substream *mark_module; 222 224 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; 223 228 void *mark_pm; 224 229 … … 334 339 struct snd_soc_aux_dev *aux); 335 340 int snd_soc_component_init(struct snd_soc_component *component); 341 int snd_soc_component_is_dummy(struct snd_soc_component *component); 336 342 337 343 /* component IO */ … … 350 356 unsigned int reg, unsigned int mask, 351 357 unsigned int value); 358 359 unsigned int snd_soc_component_read_field(struct snd_soc_component *component, 360 unsigned int reg, unsigned int mask); 361 int snd_soc_component_write_field(struct snd_soc_component *component, 362 unsigned int reg, unsigned int mask, 363 unsigned int val); 352 364 353 365 /* component wide operations */ … … 442 454 struct device_node *ep); 443 455 int 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, 445 457 const char **dai_name); 458 int snd_soc_component_compr_open(struct snd_compr_stream *cstream); 459 void snd_soc_component_compr_free(struct snd_compr_stream *cstream, 460 int rollback); 461 int snd_soc_component_compr_trigger(struct snd_compr_stream *cstream, int cmd); 462 int snd_soc_component_compr_set_params(struct snd_compr_stream *cstream, 463 struct snd_compr_params *params); 464 int snd_soc_component_compr_get_params(struct snd_compr_stream *cstream, 465 struct snd_codec *params); 466 int snd_soc_component_compr_get_caps(struct snd_compr_stream *cstream, 467 struct snd_compr_caps *caps); 468 int snd_soc_component_compr_get_codec_caps(struct snd_compr_stream *cstream, 469 struct snd_compr_codec_caps *codec); 470 int snd_soc_component_compr_ack(struct snd_compr_stream *cstream, size_t bytes); 471 int snd_soc_component_compr_pointer(struct snd_compr_stream *cstream, 472 struct snd_compr_tstamp *tstamp); 473 int snd_soc_component_compr_copy(struct snd_compr_stream *cstream, 474 char __user *buf, size_t count); 475 int snd_soc_component_compr_set_metadata(struct snd_compr_stream *cstream, 476 struct snd_compr_metadata *metadata); 477 int snd_soc_component_compr_get_metadata(struct snd_compr_stream *cstream, 478 struct snd_compr_metadata *metadata); 446 479 447 480 int snd_soc_pcm_component_pointer(struct snd_pcm_substream *substream); … … 460 493 int snd_soc_pcm_component_prepare(struct snd_pcm_substream *substream); 461 494 int 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); 464 496 void snd_soc_pcm_component_hw_free(struct snd_pcm_substream *substream, 465 struct snd_soc_component *last);497 int rollback); 466 498 int snd_soc_pcm_component_trigger(struct snd_pcm_substream *substream, 467 int cmd );499 int cmd, int rollback); 468 500 int snd_soc_pcm_component_pm_runtime_get(struct snd_soc_pcm_runtime *rtd, 469 501 void *stream); 470 502 void snd_soc_pcm_component_pm_runtime_put(struct snd_soc_pcm_runtime *rtd, 471 503 void *stream, int rollback); 504 int snd_soc_pcm_component_ack(struct snd_pcm_substream *substream); 472 505 473 506 #endif /* __SOC_COMPONENT_H */ -
GPL/trunk/alsa-kernel/include/sound/soc-dai.h
r679 r695 73 73 74 74 /* 75 * DAI hardware clock masters.75 * DAI hardware clock providers/consumers 76 76 * 77 77 * 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 90 98 91 99 /* … … 150 158 struct snd_pcm_hw_params *params); 151 159 void 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); 153 162 int snd_soc_dai_startup(struct snd_soc_dai *dai, 154 163 struct snd_pcm_substream *substream); … … 181 190 int snd_soc_pcm_dai_new(struct snd_soc_pcm_runtime *rtd); 182 191 int snd_soc_pcm_dai_prepare(struct snd_pcm_substream *substream); 183 int snd_soc_pcm_dai_trigger(struct snd_pcm_substream *substream, int cmd); 192 int snd_soc_pcm_dai_trigger(struct snd_pcm_substream *substream, int cmd, 193 int rollback); 184 194 int snd_soc_pcm_dai_bespoke_trigger(struct snd_pcm_substream *substream, 185 195 int cmd); … … 188 198 struct snd_compr_stream *cstream); 189 199 void 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); 191 202 int snd_soc_dai_compr_trigger(struct snd_soc_dai *dai, 192 203 struct snd_compr_stream *cstream, int cmd); … … 343 354 struct snd_soc_pcm_stream capture; 344 355 struct snd_soc_pcm_stream playback; 345 unsigned int symmetric_rate s:1;356 unsigned int symmetric_rate:1; 346 357 unsigned int symmetric_channels:1; 347 unsigned int symmetric_sample bits:1;358 unsigned int symmetric_sample_bits:1; 348 359 349 360 /* probe ordering - for components with runtime dependencies */ … … 391 402 /* function mark */ 392 403 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; 393 407 394 408 /* bit field */ -
GPL/trunk/alsa-kernel/include/sound/soc-dpcm.h
r679 r695 150 150 int stream, struct snd_soc_dapm_widget_list **list, int new); 151 151 int 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); 152 void dpcm_be_dai_stop(struct snd_soc_pcm_runtime *fe, int stream, 153 int do_hw_free, struct snd_soc_dpcm *last); 153 154 void dpcm_be_disconnect(struct snd_soc_pcm_runtime *fe, int stream); 154 155 void dpcm_clear_pending_state(struct snd_soc_pcm_runtime *fe, int stream); 155 intdpcm_be_dai_hw_free(struct snd_soc_pcm_runtime *fe, int stream);156 void dpcm_be_dai_hw_free(struct snd_soc_pcm_runtime *fe, int stream); 156 157 int dpcm_be_dai_hw_params(struct snd_soc_pcm_runtime *fe, int tream); 157 158 int dpcm_be_dai_trigger(struct snd_soc_pcm_runtime *fe, int stream, int cmd); … … 160 161 int event); 161 162 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 162 168 #endif -
GPL/trunk/alsa-kernel/include/sound/soc-topology.h
r679 r695 31 31 struct snd_soc_dai; 32 32 struct 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 */36 33 37 34 /* dynamic object type */ … … 182 179 /* Dynamic Object loading and removal for component drivers */ 183 180 int 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); 182 int snd_soc_tplg_component_remove(struct snd_soc_component *comp); 192 183 193 184 /* Binds event handlers to dynamic widgets */ -
GPL/trunk/alsa-kernel/include/sound/soc.h
r679 r695 491 491 const struct snd_pcm_hardware *hw); 492 492 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_GPIOLIB505 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 #else513 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 #endif532 533 493 struct snd_ac97 *snd_soc_alloc_ac97_component(struct snd_soc_component *component); 534 494 struct snd_ac97 *snd_soc_new_ac97_component(struct snd_soc_component *component, … … 617 577 struct snd_ctl_elem_value *ucontrol); 618 578 619 /**620 * struct snd_soc_jack_pin - Describes a pin to update based on jack detection621 *622 * @pin: name of the pin to update623 * @mask: bits to check for in reported jack status624 * @invert: if non-zero then pin is enabled when status is not reported625 * @list: internal list entry626 */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 detection636 *637 * @min_mv: start voltage in mv638 * @max_mv: end voltage in mv639 * @jack_type: type of jack that is expected for this voltage640 * @debounce_time: debounce_time for jack, codec driver should wait for this641 * duration before reading the adc for voltages642 * @list: internal list entry643 */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 detection654 *655 * @gpio: legacy gpio number656 * @idx: gpio descriptor index within the function of the GPIO657 * consumer device658 * @gpiod_dev: GPIO consumer device659 * @name: gpio name. Also as connection ID for the GPIO consumer660 * device function name lookup661 * @report: value to report when jack detected662 * @invert: report presence in low state663 * @debounce_time: debounce time in ms664 * @wake: enable as wake source665 * @jack_status_check: callback function which overrides the detection666 * to provide more complex checks (eg, reading an667 * 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 700 579 /* SoC PCM stream information */ 701 580 struct snd_soc_pcm_stream { … … 807 686 808 687 /* Symmetry requirements */ 809 unsigned int symmetric_rate s:1;688 unsigned int symmetric_rate:1; 810 689 unsigned int symmetric_channels:1; 811 unsigned int symmetric_sample bits:1;690 unsigned int symmetric_sample_bits:1; 812 691 813 692 /* Do not create a PCM for this DAI link (Backend link) */ … … 834 713 unsigned int ignore:1; 835 714 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 836 721 #ifdef CONFIG_SND_SOC_TOPOLOGY 837 722 struct snd_soc_dobj dobj; /* For topology */ 838 723 #endif 839 724 }; 725 726 static inline struct snd_soc_dai_link_component* 727 asoc_link_to_cpu(struct snd_soc_dai_link *link, int n) { 728 return &(link)->cpus[n]; 729 } 730 731 static inline struct snd_soc_dai_link_component* 732 asoc_link_to_codec(struct snd_soc_dai_link *link, int n) { 733 return &(link)->codecs[n]; 734 } 735 736 static inline struct snd_soc_dai_link_component* 737 asoc_link_to_platform(struct snd_soc_dai_link *link, int n) { 738 return &(link)->platforms[n]; 739 } 740 840 741 #define for_each_link_codecs(link, i, codec) \ 841 742 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)); \ 843 745 (i)++) 844 746 … … 846 748 for ((i) = 0; \ 847 749 ((i) < link->num_platforms) && \ 848 ((platform) = &link->platforms[i]);\750 ((platform) = asoc_link_to_platform(link, i)); \ 849 751 (i)++) 850 752 851 753 #define for_each_link_cpus(link, i, cpu) \ 852 754 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)); \ 854 757 (i)++) 855 758 … … 1085 988 unsigned int disable_route_checks:1; 1086 989 unsigned int probed:1; 990 unsigned int component_chaining:1; 1087 991 1088 992 void *drvdata; … … 1162 1066 /* function mark */ 1163 1067 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; 1164 1071 1165 1072 /* bit field */ … … 1184 1091 ((i) < rtd->num_cpus) && ((dai) = asoc_rtd_to_cpu(rtd, i)); \ 1185 1092 (i)++) 1186 #define for_each_rtd_cpu_dais_rollback(rtd, i, dai) \1187 for (; (--(i) >= 0) && ((dai) = asoc_rtd_to_cpu(rtd, i));)1188 1093 #define for_each_rtd_codec_dais(rtd, i, dai) \ 1189 1094 for ((i) = 0; \ 1190 1095 ((i) < rtd->num_codecs) && ((dai) = asoc_rtd_to_codec(rtd, i)); \ 1191 1096 (i)++) 1192 #define for_each_rtd_codec_dais_rollback(rtd, i, dai) \1193 for (; (--(i) >= 0) && ((dai) = asoc_rtd_to_codec(rtd, i));)1194 1097 #define for_each_rtd_dais(rtd, i, dai) \ 1195 1098 for ((i) = 0; \ … … 1197 1100 ((dai) = (rtd)->dais[i]); \ 1198 1101 (i)++) 1199 #define for_each_rtd_dais_rollback(rtd, i, dai) \1200 for (; (--(i) >= 0) && ((dai) = (rtd)->dais[i]);)1201 1102 1202 1103 void snd_soc_close_delayed_work(struct snd_soc_pcm_runtime *rtd); … … 1343 1244 struct device_node **framemaster); 1344 1245 int snd_soc_get_dai_id(struct device_node *ep); 1345 int snd_soc_get_dai_name( struct of_phandle_args *args,1246 int snd_soc_get_dai_name(const struct of_phandle_args *args, 1346 1247 const char **dai_name); 1347 1248 int snd_soc_of_get_dai_name(struct device_node *of_node, … … 1386 1287 /* set platform name for each dailink */ 1387 1288 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 1388 1296 name = devm_kstrdup(card->dev, platform_name, GFP_KERNEL); 1389 1297 if (!name) 1390 1298 return -ENOMEM; 1391 1299 1392 if (!dai_link->platforms)1393 return -EINVAL;1394 1395 1300 /* only single platform is supported for now */ 1396 1301 dai_link->platforms->name = name; … … 1419 1324 #include <sound/soc-component.h> 1420 1325 #include <sound/soc-card.h> 1326 #include <sound/soc-jack.h> 1421 1327 1422 1328 #endif -
GPL/trunk/alsa-kernel/include/sound/sof.h
r679 r695 101 101 }; 102 102 103 int sof_ nocodec_setup(struct device *dev,104 const struct snd_sof_dsp_ops *ops); 103 int sof_dai_get_mclk(struct snd_soc_pcm_runtime *rtd); 104 105 105 #endif -
GPL/trunk/alsa-kernel/include/sound/version.h
r689 r695 1 1 /* include/version.h */ 2 #define CONFIG_SND_VERSION "5.1 0.50"2 #define CONFIG_SND_VERSION "5.13.10" 3 3 #define CONFIG_SND_DATE "" -
GPL/trunk/alsa-kernel/include/uapi/sound/asoc.h
r615 r695 171 171 172 172 /* 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 177 180 178 181 /* 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 183 189 184 190 /* … … 337 343 __u8 invert_bclk; /* 1 for inverted BCLK, 0 for normal */ 338 344 __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 */ 341 347 __u8 mclk_direction; /* SND_SOC_TPLG_MCLK_ value */ 342 348 __le16 reserved; /* for 32bit alignment */ -
GPL/trunk/alsa-kernel/include/uapi/sound/sof/abi.h
r629 r695 27 27 /* SOF ABI version major, minor and patch numbers */ 28 28 #define SOF_ABI_MAJOR 3 29 #define SOF_ABI_MINOR 1 729 #define SOF_ABI_MINOR 18 30 30 #define SOF_ABI_PATCH 0 31 31
Note:
See TracChangeset
for help on using the changeset viewer.
