Lines Matching full:codec

3  * Universal Interface for Intel High Definition Audio Codec
33 * codec bus
53 /* status for codec/controller */
65 unsigned int mixer_assigned; /* codec addr for mixer name */
72 * codec preset
95 #define hda_codec_to_driver(codec) \
96 container_of((codec)->core.dev.driver, struct hda_codec_driver, core.driver)
107 /* ops for hda codec driver */
109 int (*probe)(struct hda_codec *codec, const struct hda_device_id *id);
110 void (*remove)(struct hda_codec *codec);
111 int (*build_controls)(struct hda_codec *codec);
112 int (*build_pcms)(struct hda_codec *codec);
113 int (*init)(struct hda_codec *codec);
114 void (*unsol_event)(struct hda_codec *codec, unsigned int res);
115 void (*set_power_state)(struct hda_codec *codec, hda_nid_t fg,
117 int (*suspend)(struct hda_codec *codec);
118 int (*resume)(struct hda_codec *codec);
119 int (*check_power_status)(struct hda_codec *codec, hda_nid_t nid);
120 void (*stream_pm)(struct hda_codec *codec, hda_nid_t nid, bool on);
125 int (*open)(struct hda_pcm_stream *info, struct hda_codec *codec,
127 int (*close)(struct hda_pcm_stream *info, struct hda_codec *codec,
129 int (*prepare)(struct hda_pcm_stream *info, struct hda_codec *codec,
132 int (*cleanup)(struct hda_pcm_stream *info, struct hda_codec *codec,
135 struct hda_codec *codec,
170 bool own_chmap; /* codec driver provides own channel maps */
172 struct hda_codec *codec;
177 /* codec information */
182 unsigned int addr; /* codec addr*/
194 /* codec specific info */
216 struct snd_array driver_pins; /* pin configs set by codec parser */
231 unsigned int configured:1; /* codec was configured */
242 * (e.g. CX20549 codec)
253 unsigned int dump_coef:1; /* dump processing coefs in codec proc file */
255 unsigned int auto_runtime_pm:1; /* enable automatic codec runtime pm */
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);
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,
329 return snd_hdac_codec_read(&codec->core, nid, flags, verb, parm);
333 snd_hda_codec_write(struct hda_codec *codec, hda_nid_t nid, int flags,
336 return snd_hdac_codec_write(&codec->core, nid, flags, verb, parm);
339 #define snd_hda_param_read(codec, nid, param) \
340 snd_hdac_read_parm(&(codec)->core, nid, param)
341 #define snd_hda_get_sub_nodes(codec, nid, start_nid) \
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)
348 return snd_hda_get_connections(codec, nid, NULL, 0);
351 #define snd_hda_get_raw_connections(codec, nid, list, max_conns) \
352 snd_hdac_get_connections(&(codec)->core, nid, list, max_conns)
353 #define snd_hda_get_num_raw_conns(codec, nid) \
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 unsigned 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,
382 return snd_hdac_regmap_write(&codec->core, nid, verb, parm);
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);
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) \
449 __snd_hda_codec_cleanup_stream(codec, nid, 0)
451 #define snd_hda_query_supported_pcm(codec, nid, ratesp, fmtsp, subfmtp, bpsp) \
452 snd_hdac_query_supported_pcm(&(codec)->core, nid, ratesp, fmtsp, subfmtp, bpsp)
453 #define snd_hda_is_supported_format(codec, nid, fmt) \
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)
483 struct hda_codec_driver *driver = hda_codec_to_driver(codec);
486 return driver->ops->check_power_status(codec, nid);
493 #define snd_hda_power_up(codec) snd_hdac_power_up(&(codec)->core)
494 #define snd_hda_power_up_pm(codec) snd_hdac_power_up_pm(&(codec)->core)
495 #define snd_hda_power_down(codec) snd_hdac_power_down(&(codec)->core)
496 #define snd_hda_power_down_pm(codec) snd_hdac_power_down_pm(&(codec)->core)
497 void snd_hda_codec_set_power_save(struct hda_codec *codec, int delay);
499 void snd_hda_update_power_acct(struct hda_codec *codec);
501 static inline bool hda_codec_need_resume(struct hda_codec *codec)
503 return !codec->relaxed_resume && codec->jacktbl.used;
507 * PM with auto-cleanup: call like CLASS(snd_hda_power, pm)(codec)
511 struct hda_codec *codec;
515 static inline struct __hda_power_obj __snd_hda_power_up(struct hda_codec *codec)
517 struct __hda_power_obj T = { .codec = codec };
518 T.err = snd_hda_power_up(codec);
522 static inline struct __hda_power_obj __snd_hda_power_up_pm(struct hda_codec *codec)
524 struct __hda_power_obj T = { .codec = codec };
525 T.err = snd_hda_power_up_pm(codec);
530 snd_hda_power_down((_T).codec), __snd_hda_power_up(codec),
531 struct hda_codec *codec)
533 snd_hda_power_down_pm((_T).codec), __snd_hda_power_up_pm(codec),
534 struct hda_codec *codec)
544 int snd_hda_codec_load_dsp_prepare(struct hda_codec *codec, unsigned int format,
547 void snd_hda_codec_load_dsp_trigger(struct hda_codec *codec, bool start);
548 void snd_hda_codec_load_dsp_cleanup(struct hda_codec *codec,
552 snd_hda_codec_load_dsp_prepare(struct hda_codec *codec, unsigned int format,
559 snd_hda_codec_load_dsp_trigger(struct hda_codec *codec, bool start) {}
561 snd_hda_codec_load_dsp_cleanup(struct hda_codec *codec,