Lines Matching +full:codec +full:- +full:reset

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 */
54 unsigned int response_reset:1; /* controller was reset */
55 unsigned int in_reset:1; /* during reset operation */
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,
112 int (*suspend)(struct hda_codec *codec);
113 int (*resume)(struct hda_codec *codec);
114 int (*check_power_status)(struct hda_codec *codec, hda_nid_t nid);
115 void (*stream_pm)(struct hda_codec *codec, hda_nid_t nid, bool on);
120 int (*open)(struct hda_pcm_stream *info, struct hda_codec *codec,
122 int (*close)(struct hda_pcm_stream *info, struct hda_codec *codec,
124 int (*prepare)(struct hda_pcm_stream *info, struct hda_codec *codec,
127 int (*cleanup)(struct hda_pcm_stream *info, struct hda_codec *codec,
130 struct hda_codec *codec,
157 #define SNDRV_PCM_INVALID_DEVICE (-1)
165 bool own_chmap; /* codec driver provides own channel maps */
167 struct hda_codec *codec; member
172 /* codec information */
177 unsigned int addr; /* codec addr*/
192 /* codec specific info */
205 struct list_head conn_list; /* linked-list of connection-list */
213 struct snd_array driver_pins; /* pin configs set by codec parser */
228 unsigned int configured:1; /* codec was configured */
235 unsigned int pin_amp_workaround:1; /* pin out-amp takes index
238 unsigned int single_adc_amp:1; /* adc in-amp takes no index
239 * (e.g. CX20549 codec)
241 unsigned int no_sticky_stream:1; /* no sticky-PCM stream assignment */
243 unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */
244 unsigned int no_jack_detect:1; /* Machine has no jack-detection */
249 unsigned int dp_mst:1; /* support DP1.2 Multi-stream transport */
250 unsigned int dump_coef:1; /* dump processing coefs in codec proc file */
252 unsigned int auto_runtime_pm:1; /* enable automatic codec runtime pm */
265 unsigned int (*power_filter)(struct hda_codec *codec, hda_nid_t nid,
268 /* codec-specific additional proc output */
270 struct hda_codec *codec, hda_nid_t nid);
277 int depop_delay; /* depop delay in ms, -1 for default delay time */
279 /* fix-up list */
289 #define hda_codec_dev(_dev) (&(_dev)->core.dev)
294 list_for_each_entry(c, &(bus)->core.codec_list, core.list)
296 list_for_each_entry_safe(c, n, &(bus)->core.codec_list, core.list)
310 unsigned int codec_addr, struct hda_codec *codec,
312 int snd_hda_codec_configure(struct hda_codec *codec);
313 int snd_hda_codec_update_widgets(struct hda_codec *codec);
314 void snd_hda_codec_register(struct hda_codec *codec);
315 void snd_hda_codec_unregister(struct hda_codec *codec);
316 void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec);
322 snd_hda_codec_read(struct hda_codec *codec, hda_nid_t nid, in snd_hda_codec_read() argument
326 return snd_hdac_codec_read(&codec->core, nid, flags, verb, parm); in snd_hda_codec_read()
330 snd_hda_codec_write(struct hda_codec *codec, hda_nid_t nid, int flags, in snd_hda_codec_write() argument
333 return snd_hdac_codec_write(&codec->core, nid, flags, verb, parm); in snd_hda_codec_write()
336 #define snd_hda_param_read(codec, nid, param) \ argument
337 snd_hdac_read_parm(&(codec)->core, nid, param)
338 #define snd_hda_get_sub_nodes(codec, nid, start_nid) \ argument
339 snd_hdac_get_sub_nodes(&(codec)->core, nid, start_nid)
340 int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid,
343 snd_hda_get_num_conns(struct hda_codec *codec, hda_nid_t nid) in snd_hda_get_num_conns() argument
345 return snd_hda_get_connections(codec, nid, NULL, 0); in snd_hda_get_num_conns()
348 #define snd_hda_get_raw_connections(codec, nid, list, max_conns) \ argument
349 snd_hdac_get_connections(&(codec)->core, nid, list, max_conns)
350 #define snd_hda_get_num_raw_conns(codec, nid) \ argument
351 snd_hdac_get_connections(&(codec)->core, nid, NULL, 0)
353 int snd_hda_get_conn_list(struct hda_codec *codec, hda_nid_t nid,
355 int snd_hda_override_conn_list(struct hda_codec *codec, hda_nid_t nid, int nums,
357 int snd_hda_get_conn_index(struct hda_codec *codec, hda_nid_t mux,
359 unsigned int snd_hda_get_num_devices(struct hda_codec *codec, hda_nid_t nid);
360 int snd_hda_get_devices(struct hda_codec *codec, hda_nid_t nid,
362 int snd_hda_get_dev_select(struct hda_codec *codec, hda_nid_t nid);
363 int snd_hda_set_dev_select(struct hda_codec *codec, hda_nid_t nid, int dev_id);
371 void snd_hda_sequence_write(struct hda_codec *codec,
376 snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid, in snd_hda_codec_write_cache() argument
379 return snd_hdac_regmap_write(&codec->core, nid, verb, parm); in snd_hda_codec_write_cache()
382 /* the struct for codec->pin_configs */
390 unsigned int snd_hda_codec_get_pincfg(struct hda_codec *codec, hda_nid_t nid);
391 int snd_hda_codec_set_pincfg(struct hda_codec *codec, hda_nid_t nid,
393 int snd_hda_add_pincfg(struct hda_codec *codec, struct snd_array *list,
395 void snd_hda_shutup_pins(struct hda_codec *codec);
403 struct hda_spdif_out *snd_hda_spdif_out_of_nid(struct hda_codec *codec,
405 void snd_hda_spdif_ctls_unassign(struct hda_codec *codec, int idx);
406 void snd_hda_spdif_ctls_assign(struct hda_codec *codec, int idx, hda_nid_t nid);
411 int snd_hda_codec_build_controls(struct hda_codec *codec);
416 int snd_hda_codec_parse_pcms(struct hda_codec *codec);
417 int snd_hda_codec_build_pcms(struct hda_codec *codec);
420 struct hda_pcm *snd_hda_codec_pcm_new(struct hda_codec *codec,
423 void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec);
427 refcount_inc(&pcm->codec->pcm_ref); in snd_hda_codec_pcm_get()
431 int snd_hda_codec_prepare(struct hda_codec *codec,
436 void snd_hda_codec_cleanup(struct hda_codec *codec,
440 void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid,
443 void __snd_hda_codec_cleanup_stream(struct hda_codec *codec, hda_nid_t nid,
445 #define snd_hda_codec_cleanup_stream(codec, nid) \ argument
446 __snd_hda_codec_cleanup_stream(codec, nid, 0)
448 #define snd_hda_query_supported_pcm(codec, nid, ratesp, fmtsp, subfmtp, bpsp) \ argument
449 snd_hdac_query_supported_pcm(&(codec)->core, nid, ratesp, fmtsp, subfmtp, bpsp)
450 #define snd_hda_is_supported_format(codec, nid, fmt) \ argument
451 snd_hdac_is_supported_format(&(codec)->core, nid, fmt)
455 int snd_hda_attach_pcm_stream(struct hda_bus *_bus, struct hda_codec *codec,
461 void snd_hda_get_codec_name(struct hda_codec *codec, char *name, int namelen);
462 void snd_hda_codec_set_power_to_all(struct hda_codec *codec, hda_nid_t fg,
470 int snd_hda_codec_set_name(struct hda_codec *codec, const char *name);
478 int hda_call_check_power_status(struct hda_codec *codec, hda_nid_t nid) in hda_call_check_power_status() argument
480 if (codec->patch_ops.check_power_status) in hda_call_check_power_status()
481 return codec->patch_ops.check_power_status(codec, nid); in hda_call_check_power_status()
488 #define snd_hda_power_up(codec) snd_hdac_power_up(&(codec)->core) argument
489 #define snd_hda_power_up_pm(codec) snd_hdac_power_up_pm(&(codec)->core) argument
490 #define snd_hda_power_down(codec) snd_hdac_power_down(&(codec)->core) argument
491 #define snd_hda_power_down_pm(codec) snd_hdac_power_down_pm(&(codec)->core) argument
492 void snd_hda_codec_set_power_save(struct hda_codec *codec, int delay);
494 void snd_hda_update_power_acct(struct hda_codec *codec);
496 static inline bool hda_codec_need_resume(struct hda_codec *codec) in hda_codec_need_resume() argument
498 return !codec->relaxed_resume && codec->jacktbl.used; in hda_codec_need_resume()
509 int snd_hda_codec_load_dsp_prepare(struct hda_codec *codec, unsigned int format,
512 void snd_hda_codec_load_dsp_trigger(struct hda_codec *codec, bool start);
513 void snd_hda_codec_load_dsp_cleanup(struct hda_codec *codec,
517 snd_hda_codec_load_dsp_prepare(struct hda_codec *codec, unsigned int format, in snd_hda_codec_load_dsp_prepare() argument
521 return -ENOSYS; in snd_hda_codec_load_dsp_prepare()
524 snd_hda_codec_load_dsp_trigger(struct hda_codec *codec, bool start) {} in snd_hda_codec_load_dsp_trigger() argument
526 snd_hda_codec_load_dsp_cleanup(struct hda_codec *codec, in snd_hda_codec_load_dsp_cleanup() argument