Lines Matching +full:codec +full:- +full:1
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Universal Interface for Intel High Definition Audio Codec
32 * codec bus
51 unsigned int allow_bus_reset:1; /* allow bus reset at fatal error */
52 /* status for codec/controller */
53 unsigned int shutdown :1; /* being unloaded */
54 unsigned int response_reset:1; /* controller was reset */
55 unsigned int in_reset:1; /* during reset operation */
56 unsigned int no_response_fallback:1; /* don't fallback at RIRB error */
57 unsigned int bus_probing :1; /* during probing process */
58 unsigned int keep_power:1; /* keep power up for notification */
59 unsigned int jackpoll_in_suspend:1; /* keep jack polling during
64 unsigned int mixer_assigned; /* codec addr for mixer name */
71 * codec preset
105 int (*build_controls)(struct hda_codec *codec);
106 int (*build_pcms)(struct hda_codec *codec);
107 int (*init)(struct hda_codec *codec);
108 void (*free)(struct hda_codec *codec);
109 void (*unsol_event)(struct hda_codec *codec, unsigned int res);
110 void (*set_power_state)(struct hda_codec *codec, hda_nid_t fg,
113 int (*suspend)(struct hda_codec *codec);
114 int (*resume)(struct hda_codec *codec);
115 int (*check_power_status)(struct hda_codec *codec, hda_nid_t nid);
117 void (*stream_pm)(struct hda_codec *codec, hda_nid_t nid, bool on);
122 int (*open)(struct hda_pcm_stream *info, struct hda_codec *codec,
124 int (*close)(struct hda_pcm_stream *info, struct hda_codec *codec,
126 int (*prepare)(struct hda_pcm_stream *info, struct hda_codec *codec,
129 int (*cleanup)(struct hda_pcm_stream *info, struct hda_codec *codec,
132 struct hda_codec *codec,
158 #define SNDRV_PCM_INVALID_DEVICE (-1)
166 bool own_chmap; /* codec driver provides own channel maps */
168 struct hda_codec *codec; member
170 unsigned int disconnected:1;
173 /* codec information */
178 unsigned int addr; /* codec addr*/
193 /* codec specific info */
206 struct list_head conn_list; /* linked-list of connection-list */
214 struct snd_array driver_pins; /* pin configs set by codec parser */
229 unsigned int configured:1; /* codec was configured */
230 unsigned int in_freeing:1; /* being released */
231 unsigned int display_power_control:1; /* needs display power */
232 unsigned int spdif_status_reset :1; /* needs to toggle SPDIF for each
236 unsigned int pin_amp_workaround:1; /* pin out-amp takes index
239 unsigned int single_adc_amp:1; /* adc in-amp takes no index
240 * (e.g. CX20549 codec)
242 unsigned int no_sticky_stream:1; /* no sticky-PCM stream assignment */
243 unsigned int pins_shutup:1; /* pins are shut up */
244 unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */
245 unsigned int no_jack_detect:1; /* Machine has no jack-detection */
246 unsigned int inv_eapd:1; /* broken h/w: inverted EAPD control */
247 unsigned int inv_jack_detect:1; /* broken h/w: inverted detection bit */
248 unsigned int pcm_format_first:1; /* PCM format must be set first */
249 unsigned int cached_write:1; /* write only to caches */
250 unsigned int dp_mst:1; /* support DP1.2 Multi-stream transport */
251 unsigned int dump_coef:1; /* dump processing coefs in codec proc file */
252 unsigned int power_save_node:1; /* advanced PM for each widget */
253 unsigned int auto_runtime_pm:1; /* enable automatic codec runtime pm */
254 unsigned int force_pin_prefix:1; /* Add location prefix */
255 unsigned int link_down_at_suspend:1; /* link down at runtime suspend */
256 unsigned int relaxed_resume:1; /* don't resume forcibly for jack */
257 unsigned int forced_resume:1; /* forced resume for jack */
258 unsigned int no_stream_clean_at_suspend:1; /* do not clean streams at suspend */
259 unsigned int ctl_dev_id:1; /* old control element id build behaviour */
268 unsigned int (*power_filter)(struct hda_codec *codec, hda_nid_t nid,
271 /* codec-specific additional proc output */
273 struct hda_codec *codec, hda_nid_t nid);
280 int depop_delay; /* depop delay in ms, -1 for default delay time */
282 /* fix-up list */
292 #define hda_codec_dev(_dev) (&(_dev)->core.dev)
297 list_for_each_entry(c, &(bus)->core.codec_list, core.list)
299 list_for_each_entry_safe(c, n, &(bus)->core.codec_list, core.list)
302 #define HDA_RW_NO_RESPONSE_FALLBACK (1 << 0)
313 unsigned int codec_addr, struct hda_codec *codec,
315 int snd_hda_codec_configure(struct hda_codec *codec);
316 int snd_hda_codec_update_widgets(struct hda_codec *codec);
317 void snd_hda_codec_register(struct hda_codec *codec);
318 void snd_hda_codec_unregister(struct hda_codec *codec);
319 void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec);
325 snd_hda_codec_read(struct hda_codec *codec, hda_nid_t nid, in snd_hda_codec_read() argument
329 return snd_hdac_codec_read(&codec->core, nid, flags, verb, parm); in snd_hda_codec_read()
333 snd_hda_codec_write(struct hda_codec *codec, hda_nid_t nid, int flags, in snd_hda_codec_write() argument
336 return snd_hdac_codec_write(&codec->core, nid, flags, verb, parm); in snd_hda_codec_write()
339 #define snd_hda_param_read(codec, nid, param) \ argument
340 snd_hdac_read_parm(&(codec)->core, nid, param)
341 #define snd_hda_get_sub_nodes(codec, nid, start_nid) \ argument
342 snd_hdac_get_sub_nodes(&(codec)->core, nid, start_nid)
343 int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid,
346 snd_hda_get_num_conns(struct hda_codec *codec, hda_nid_t nid) in snd_hda_get_num_conns() argument
348 return snd_hda_get_connections(codec, nid, NULL, 0); in snd_hda_get_num_conns()
351 #define snd_hda_get_raw_connections(codec, nid, list, max_conns) \ argument
352 snd_hdac_get_connections(&(codec)->core, nid, list, max_conns)
353 #define snd_hda_get_num_raw_conns(codec, nid) \ argument
354 snd_hdac_get_connections(&(codec)->core, nid, NULL, 0)
356 int snd_hda_get_conn_list(struct hda_codec *codec, hda_nid_t nid,
358 int snd_hda_override_conn_list(struct hda_codec *codec, hda_nid_t nid, int nums,
360 int snd_hda_get_conn_index(struct hda_codec *codec, hda_nid_t mux,
362 unsigned int snd_hda_get_num_devices(struct hda_codec *codec, hda_nid_t nid);
363 int snd_hda_get_devices(struct hda_codec *codec, hda_nid_t nid,
365 int snd_hda_get_dev_select(struct hda_codec *codec, hda_nid_t nid);
366 int snd_hda_set_dev_select(struct hda_codec *codec, hda_nid_t nid, int dev_id);
374 void snd_hda_sequence_write(struct hda_codec *codec,
379 snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid, in snd_hda_codec_write_cache() argument
382 return snd_hdac_regmap_write(&codec->core, nid, verb, parm); in snd_hda_codec_write_cache()
385 /* the struct for codec->pin_configs */
393 unsigned int snd_hda_codec_get_pincfg(struct hda_codec *codec, hda_nid_t nid);
394 int snd_hda_codec_set_pincfg(struct hda_codec *codec, hda_nid_t nid,
396 int snd_hda_add_pincfg(struct hda_codec *codec, struct snd_array *list,
398 void snd_hda_shutup_pins(struct hda_codec *codec);
406 struct hda_spdif_out *snd_hda_spdif_out_of_nid(struct hda_codec *codec,
408 void snd_hda_spdif_ctls_unassign(struct hda_codec *codec, int idx);
409 void snd_hda_spdif_ctls_assign(struct hda_codec *codec, int idx, hda_nid_t nid);
414 int snd_hda_codec_build_controls(struct hda_codec *codec);
419 int snd_hda_codec_parse_pcms(struct hda_codec *codec);
420 int snd_hda_codec_build_pcms(struct hda_codec *codec);
423 struct hda_pcm *snd_hda_codec_pcm_new(struct hda_codec *codec,
426 void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec);
430 refcount_inc(&pcm->codec->pcm_ref); in snd_hda_codec_pcm_get()
434 int snd_hda_codec_prepare(struct hda_codec *codec,
439 void snd_hda_codec_cleanup(struct hda_codec *codec,
443 void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid,
446 void __snd_hda_codec_cleanup_stream(struct hda_codec *codec, hda_nid_t nid,
448 #define snd_hda_codec_cleanup_stream(codec, nid) \ argument
449 __snd_hda_codec_cleanup_stream(codec, nid, 0)
451 #define snd_hda_query_supported_pcm(codec, nid, ratesp, fmtsp, bpsp) \ argument
452 snd_hdac_query_supported_pcm(&(codec)->core, nid, ratesp, fmtsp, bpsp)
453 #define snd_hda_is_supported_format(codec, nid, fmt) \ argument
454 snd_hdac_is_supported_format(&(codec)->core, nid, fmt)
458 int snd_hda_attach_pcm_stream(struct hda_bus *_bus, struct hda_codec *codec,
464 void snd_hda_get_codec_name(struct hda_codec *codec, char *name, int namelen);
465 void snd_hda_codec_set_power_to_all(struct hda_codec *codec, hda_nid_t fg,
473 int snd_hda_codec_set_name(struct hda_codec *codec, const char *name);
481 int hda_call_check_power_status(struct hda_codec *codec, hda_nid_t nid) in hda_call_check_power_status() argument
484 if (codec->patch_ops.check_power_status) in hda_call_check_power_status()
485 return codec->patch_ops.check_power_status(codec, nid); in hda_call_check_power_status()
493 #define snd_hda_power_up(codec) snd_hdac_power_up(&(codec)->core) argument
494 #define snd_hda_power_up_pm(codec) snd_hdac_power_up_pm(&(codec)->core) argument
495 #define snd_hda_power_down(codec) snd_hdac_power_down(&(codec)->core) argument
496 #define snd_hda_power_down_pm(codec) snd_hdac_power_down_pm(&(codec)->core) argument
498 void snd_hda_codec_set_power_save(struct hda_codec *codec, int delay);
500 void snd_hda_update_power_acct(struct hda_codec *codec);
502 static inline void snd_hda_codec_set_power_save(struct hda_codec *codec, int delay) {} in snd_hda_codec_set_power_save() argument
506 static inline bool hda_codec_need_resume(struct hda_codec *codec) in hda_codec_need_resume() argument
508 return !codec->relaxed_resume && codec->jacktbl.used; in hda_codec_need_resume()
519 int snd_hda_codec_load_dsp_prepare(struct hda_codec *codec, unsigned int format,
522 void snd_hda_codec_load_dsp_trigger(struct hda_codec *codec, bool start);
523 void snd_hda_codec_load_dsp_cleanup(struct hda_codec *codec,
527 snd_hda_codec_load_dsp_prepare(struct hda_codec *codec, unsigned int format, in snd_hda_codec_load_dsp_prepare() argument
531 return -ENOSYS; in snd_hda_codec_load_dsp_prepare()
534 snd_hda_codec_load_dsp_trigger(struct hda_codec *codec, bool start) {} in snd_hda_codec_load_dsp_trigger() argument
536 snd_hda_codec_load_dsp_cleanup(struct hda_codec *codec, in snd_hda_codec_load_dsp_cleanup() argument