| /linux/sound/hda/common/ |
| H A D | bind.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * HD-audio codec driver binding 19 * find a matching codec id 23 struct hda_codec *codec = container_of(dev, struct hda_codec, core); in hda_codec_match() local 28 u32 id = codec->probe_id ? codec->probe_id : codec->core.vendor_id; in hda_codec_match() 29 u32 rev_id = codec->core.revision_id; in hda_codec_match() 31 for (list = driver->id; list->vendor_id; list++) { in hda_codec_match() 32 if (list->vendor_id == id && in hda_codec_match() 33 (!list->rev_id || list->rev_id == rev_id)) { in hda_codec_match() 34 codec->preset = list; in hda_codec_match() [all …]
|
| H A D | jack.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Jack-detection handling for HD-audio 20 * is_jack_detectable - Check whether the given pin is jack-detectable 21 * @codec: the HDA codec 26 * detection is prohibited in the codec level, the pin config has 29 bool is_jack_detectable(struct hda_codec *codec, hda_nid_t nid) in is_jack_detectable() argument 31 if (codec->no_jack_detect) in is_jack_detectable() 33 if (!(snd_hda_query_pin_caps(codec, nid) & AC_PINCAP_PRES_DETECT)) in is_jack_detectable() 35 if (get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid)) & in is_jack_detectable() 38 if (!(get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP) && in is_jack_detectable() [all …]
|
| H A D | hda_local.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Universal Interface for Intel High Definition Audio Codec 17 * snd_hda_ctl_add() takes the lower-bit subdev value as a valid NID. 32 HDA_COMPOSE_AMP_VAL_OFS(nid, chs, idx, dir, 0) 33 /* mono volume with index (index=0,1,...) (channel=1,2) */ 47 HDA_CODEC_VOLUME_MONO_IDX(xname, xcidx, nid, 3, xindex, direction, 0) 50 HDA_CODEC_VOLUME_MONO_IDX(xname, 0, nid, channel, xindex, direction, 0) 56 HDA_CODEC_VOLUME_MONO_IDX(xname, 0, nid, 3, xindex, direction, \ 58 /* mono mute switch with index (index=0,1,...) (channel=1,2) */ 71 HDA_CODEC_MUTE_MONO_IDX(xname, 0, nid, channel, xindex, direction) [all …]
|
| H A D | auto_parser.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * BIOS auto-parser helper functions for HD-audio 25 return 0; in is_in_nid_list() 38 return (int)(a->seq - b->seq); in compare_seq() 49 sort(list, num_pins, sizeof(list[0]), compare_seq, NULL); in sort_pins_by_sequence() 50 for (i = 0; i < num_pins; i++) in sort_pins_by_sequence() 55 /* add the found input-pin to the cfg->inputs[] table */ 56 static void add_auto_cfg_input_pin(struct hda_codec *codec, struct auto_pin_cfg *cfg, in add_auto_cfg_input_pin() argument 59 if (cfg->num_inputs < AUTO_CFG_MAX_INS) { in add_auto_cfg_input_pin() 60 cfg->inputs[cfg->num_inputs].pin = nid; in add_auto_cfg_input_pin() [all …]
|
| H A D | beep.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Digital Beep Input Interface for HD-audio codec 26 struct hda_codec *codec = beep->codec; in generate_tone() local 28 if (tone && !beep->playing) { in generate_tone() 29 snd_hda_power_up(codec); in generate_tone() 30 if (beep->power_hook) in generate_tone() 31 beep->power_hook(beep, true); in generate_tone() 32 beep->playing = 1; in generate_tone() 34 if (!codec->beep_just_power_on) in generate_tone() 35 snd_hda_codec_write(codec, beep->nid, 0, in generate_tone() [all …]
|
| H A D | hda_jack.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Jack-detection handling for HD-audio 35 /* jack-detection stuff */ 36 unsigned int pin_sense; /* cached pin-sense value */ 37 unsigned int jack_detect:1; /* capable of jack-detection? */ 40 unsigned int block_report:1; /* in a transitional state - do not report to userspace */ 55 snd_hda_jack_tbl_get_mst(struct hda_codec *codec, hda_nid_t nid, int dev_id); 58 * snd_hda_jack_tbl_get - query the jack-table entry for the given NID 59 * @codec: the HDA codec 63 snd_hda_jack_tbl_get(struct hda_codec *codec, hda_nid_t nid) in snd_hda_jack_tbl_get() argument [all …]
|
| /linux/sound/hda/codecs/hdmi/ |
| H A D | intelhdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Intel HDMI codec support 31 #define INTEL_GET_VENDOR_VERB 0xf81 32 #define INTEL_SET_VENDOR_VERB 0x781 33 #define INTEL_EN_DP12 0x02 /* enable DP 1.2 features */ 34 #define INTEL_EN_ALL_PIN_CVTS 0x0 36 intel_haswell_enable_all_pins(struct hda_codec * codec,bool update_tree) intel_haswell_enable_all_pins() argument 57 intel_haswell_fixup_enable_dp12(struct hda_codec * codec) intel_haswell_fixup_enable_dp12() argument 77 haswell_set_power_state(struct hda_codec * codec,hda_nid_t fg,unsigned int power_state) haswell_set_power_state() argument 103 intel_base_nid(struct hda_codec * codec) intel_base_nid() argument 117 struct hda_codec *codec = audio_ptr; intel_pin2port() local 141 intel_port2pin(struct hda_codec * codec,int port) intel_port2pin() argument 159 struct hda_codec *codec = audio_ptr; intel_pin_eld_notify() local 182 register_i915_notifier(struct hda_codec * codec) register_i915_notifier() argument 200 silent_stream_enable_i915(struct hda_codec * codec,struct hdmi_spec_per_pin * per_pin) silent_stream_enable_i915() argument 220 silent_stream_set_kae(struct hda_codec * codec,struct hdmi_spec_per_pin * per_pin,bool enable) silent_stream_set_kae() argument 239 i915_set_silent_stream(struct hda_codec * codec,struct hdmi_spec_per_pin * per_pin,bool enable) i915_set_silent_stream() argument 268 haswell_verify_D0(struct hda_codec * codec,hda_nid_t cvt_nid,hda_nid_t nid) haswell_verify_D0() argument 291 intel_verify_pin_cvt_connect(struct hda_codec * codec,struct hdmi_spec_per_pin * per_pin) intel_verify_pin_cvt_connect() argument 329 intel_not_share_assigned_cvt(struct hda_codec * codec,hda_nid_t pin_nid,int dev_id,int mux_idx) intel_not_share_assigned_cvt() argument 405 intel_not_share_assigned_cvt_nid(struct hda_codec * codec,hda_nid_t pin_nid,int dev_id,hda_nid_t cvt_nid) intel_not_share_assigned_cvt_nid() argument 422 i915_hsw_setup_stream(struct hda_codec * codec,hda_nid_t cvt_nid,hda_nid_t pin_nid,int dev_id,u32 stream_tag,int format) i915_hsw_setup_stream() argument 456 i915_pin_cvt_fixup(struct hda_codec * codec,struct hdmi_spec_per_pin * per_pin,hda_nid_t cvt_nid) i915_pin_cvt_fixup() argument 472 i915_hdmi_suspend(struct hda_codec * codec) i915_hdmi_suspend() argument 513 i915_hdmi_resume(struct hda_codec * codec) i915_hdmi_resume() argument 557 alloc_intel_hdmi(struct hda_codec * codec) alloc_intel_hdmi() argument 571 parse_intel_hdmi(struct hda_codec * codec) parse_intel_hdmi() argument 588 intel_hsw_common_init(struct hda_codec * codec,hda_nid_t vendor_nid,const int * port_map,int port_num,int dev_num,bool send_silent_stream) intel_hsw_common_init() argument 624 probe_i915_hsw_hdmi(struct hda_codec * codec) probe_i915_hsw_hdmi() argument 630 probe_i915_glk_hdmi(struct hda_codec * codec) probe_i915_glk_hdmi() argument 640 probe_i915_icl_hdmi(struct hda_codec * codec) probe_i915_icl_hdmi() argument 652 probe_i915_tgl_hdmi(struct hda_codec * codec) probe_i915_tgl_hdmi() argument 664 probe_i915_adlp_hdmi(struct hda_codec * codec) probe_i915_adlp_hdmi() argument 681 probe_i915_byt_hdmi(struct hda_codec * codec) probe_i915_byt_hdmi() argument 701 probe_i915_cpt_hdmi(struct hda_codec * codec) probe_i915_cpt_hdmi() argument 709 intelhdmi_probe(struct hda_codec * codec,const struct hda_device_id * id) intelhdmi_probe() argument [all...] |
| H A D | hdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 4 * hdmi.c - routines for HDMI/DisplayPort codecs 6 * Copyright(c) 2008-2010 Intel Corporation 50 int snd_hda_hdmi_pin_id_to_pin_index(struct hda_codec *codec, in snd_hda_hdmi_pin_id_to_pin_index() argument 53 struct hdmi_spec *spec = codec->spec; in snd_hda_hdmi_pin_id_to_pin_index() 58 * (dev_id == -1) means it is NON-MST pin in snd_hda_hdmi_pin_id_to_pin_index() 61 if (dev_id == -1) in snd_hda_hdmi_pin_id_to_pin_index() 62 dev_id = 0; in snd_hda_hdmi_pin_id_to_pin_index() 64 for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) { in snd_hda_hdmi_pin_id_to_pin_index() 66 if ((per_pin->pin_nid == pin_nid) && in snd_hda_hdmi_pin_id_to_pin_index() [all …]
|
| H A D | nvhdmi-mcp.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Legacy Nvidia HDMI codec support 17 #define Nv_VERB_SET_Channel_Allocation 0xF79 18 #define Nv_VERB_SET_Info_Frame_Checksum 0xF7A 19 #define Nv_VERB_SET_Audio_Protection_On 0xF98 20 #define Nv_VERB_SET_Audio_Protection_Off 0xF99 22 #define nvhdmi_master_con_nid_7x 0x04 23 #define nvhdmi_master_pin_nid_7x 0x05 27 0x6, 0x8, 0xa, 0xc, 32 { 0x1, Nv_VERB_SET_Audio_Protection_On, 0x1}, [all …]
|
| H A D | tegrahdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Nvidia Tegra HDMI codec support 22 * The HDA codec on NVIDIA Tegra contains two scratch registers that are 23 * accessed using vendor-defined verbs. These registers can be used for 28 #define NVIDIA_AFG_NID 0x01 31 * The SCRATCH0 register is used to notify the HDMI codec of changes in audio 33 * be raised in the HDMI codec. The remainder of the bits is arbitrary. This 34 * implementation stores the HDA format (see AC_FMT_*) in bits [15:0] and an 37 * | 31 | 30 | 29 16 | 15 0 | 38 * +---------+-------+--------+--------+ [all …]
|
| H A D | simplehdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Non-generic simple HDMI codec support 11 int snd_hda_hdmi_simple_build_pcms(struct hda_codec *codec) in snd_hda_hdmi_simple_build_pcms() argument 13 struct hdmi_spec *spec = codec->spec; in snd_hda_hdmi_simple_build_pcms() 19 per_cvt = get_cvt(spec, 0); in snd_hda_hdmi_simple_build_pcms() 20 chans = get_wcaps(codec, per_cvt->cvt_nid); in snd_hda_hdmi_simple_build_pcms() 23 info = snd_hda_codec_pcm_new(codec, "HDMI 0"); in snd_hda_hdmi_simple_build_pcms() 25 return -ENOMEM; in snd_hda_hdmi_simple_build_pcms() 26 spec->pcm_rec[0].pcm = info; in snd_hda_hdmi_simple_build_pcms() 27 info->pcm_type = HDA_PCM_TYPE_HDMI; in snd_hda_hdmi_simple_build_pcms() [all …]
|
| H A D | atihdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * ATI/AMD codec support 17 #define is_amdhdmi_rev3_or_later(codec) \ argument 18 ((codec)->core.vendor_id == 0x1002aa01 && \ 19 ((codec)->core.revision_id & 0xff00) >= 0x0300) 20 #define has_amd_full_remap_support(codec) is_amdhdmi_rev3_or_later(codec) argument 23 #define ATI_VERB_SET_CHANNEL_ALLOCATION 0x771 24 #define ATI_VERB_SET_DOWNMIX_INFO 0x772 25 #define ATI_VERB_SET_MULTICHANNEL_01 0x777 26 #define ATI_VERB_SET_MULTICHANNEL_23 0x778 [all …]
|
| /linux/sound/hda/codecs/ |
| H A D | via.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 5 * HD audio codec driver for VIA VT17xx/VT18xx/VT20xx codec 7 * (C) 2006-2009 VIA Technology, Inc. 8 * (C) 2006-2008 Takashi Iwai <tiwai@suse.de> 13 /* 2006-03-03 Lydia Wang Create the basic patch to support VT1708 codec */ 14 /* 2006-03-14 Lydia Wang Modify hard code for some pin widget nid */ 15 /* 2006-08-02 Lydia Wang Add support to VT1709 codec */ 16 /* 2006-09-08 Lydia Wang Fix internal loopback recording source select bug */ 17 /* 2007-09-12 Lydia Wang Add EAPD enable during driver initialization */ [all …]
|
| H A D | senarytech.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * HD audio codec driver for Senary HDA audio codec 23 #define SENARY_GPIO_NODE 0x01 44 HDA_CODEC_VOLUME_MONO("Beep Playback Volume", 0, 1, 0, HDA_OUTPU 63 senary_auto_parse_beep(struct hda_codec * codec) senary_auto_parse_beep() argument 75 senary_auto_parse_beep(codec) global() argument 79 senary_auto_parse_eapd(struct hda_codec * codec) senary_auto_parse_eapd() argument 95 senary_auto_turn_eapd(struct hda_codec * codec,int num_pins,const hda_nid_t * pins,bool on) senary_auto_turn_eapd() argument 111 struct hda_codec *codec = private_data; senary_auto_vmaster_hook() local 117 senary_init_gpio_led(struct hda_codec * codec) senary_init_gpio_led() argument 132 senary_init(struct hda_codec * codec) senary_init() argument 141 senary_shutdown(struct hda_codec * codec) senary_shutdown() argument 151 senary_remove(struct hda_codec * codec) senary_remove() argument 157 senary_suspend(struct hda_codec * codec) senary_suspend() argument 163 senary_probe(struct hda_codec * codec,const struct hda_device_id * id) senary_probe() argument [all...] |
| H A D | si3054.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 5 * HD audio codec driver for Silicon Labs 3054/5 modem codec 7 * Copyright (c) 2005 Sasha Khapyorsky <sashak@alsa-project.org> 20 #define SI3054_VERB_READ_NODE 0x900 21 #define SI3054_VERB_WRITE_NODE 0x100 46 #define SI3054_MEI_READY 0xf 49 #define SI3054_ATAG_MASK 0x00f0 50 #define SI3054_DTAG_MASK 0xf000 53 #define SI3054_GPIO_OH 0x0001 [all …]
|
| H A D | cm9825.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * CM9825 HD-audio codec 18 #define CM9825_VERB_SET_HPF_1 0x781 19 #define CM9825_VERB_SET_HPF_2 0x785 20 #define CM9825_VERB_SET_PLL 0x7a0 21 #define CM9825_VERB_SET_NEG 0x7a1 22 #define CM9825_VERB_SET_ADCL 0x7a2 23 #define CM9825_VERB_SET_DACL 0x7a3 24 #define CM9825_VERB_SET_MBIAS 0x7a4 25 #define CM9825_VERB_SET_VNEG 0x7a8 [all …]
|
| H A D | sigmatel.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 5 * HD audio codec driver for SigmaTel STAC92xx 59 STAC_92HD73XX_NO_JD, /* no jack-detection */ 149 STAC_D965_REF_NO_JD, /* no jack-detection */ 175 unsigned int headset_jack:1; /* 4-pin headset jack (hp + mono mic) */ 176 unsigned int volknob_init:1; /* special volume-knob initialization */ 188 unsigned int vref_mute_led_nid; /* pin NID for mute-LED vref control */ 214 /* SPDIF-out mux */ 220 #define AC_VERB_IDT_SET_POWER_MAP 0x7ec [all …]
|
| /linux/sound/hda/core/ |
| H A D | sysfs.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * sysfs support for HD-audio core device 24 struct hdac_device *codec = dev_to_hdac_dev(dev); \ 25 return sysfs_emit(buf, "0x%x\n", codec->type); \ 34 struct hdac_device *codec = dev_to_hdac_dev(dev); \ 36 codec->type ? codec->type : ""); \ 89 ssize_t (*show)(struct hdac_device *codec, hda_nid_t nid, 91 ssize_t (*store)(struct hdac_device *codec, hda_nid_t nid, 98 struct device *dev = kobj_to_dev(kobj->parent->parent); in get_codec_nid() 102 ret = kstrtoint(kobj->name, 16, &nid); in get_codec_nid() [all …]
|
| /linux/sound/soc/codecs/ |
| H A D | hda.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Copyright(c) 2021-2022 Intel Corporation 16 static int hda_codec_create_dais(struct hda_codec *codec, int pcm_count, in hda_codec_create_dais() argument 19 struct device *dev = &codec->core.dev; in hda_codec_create_dais() 26 return -ENOMEM; in hda_codec_create_dais() 28 pcm = list_first_entry(&codec->pcm_list_hea in hda_codec_create_dais() 83 hda_codec_register_dais(struct hda_codec * codec,struct snd_soc_component * component) hda_codec_register_dais() argument 124 hda_codec_unregister_dais(struct hda_codec * codec,struct snd_soc_component * component) hda_codec_unregister_dais() argument 146 hda_codec_probe_complete(struct hda_codec * codec) hda_codec_probe_complete() argument 174 struct hda_codec *codec = dev_to_hda_codec(component->dev); hda_codec_probe() local 269 struct hda_codec *codec = dev_to_hda_codec(component->dev); hda_codec_remove() local 346 struct hda_codec *codec = dev_to_hda_codec(&hdev->dev); hda_hdev_attach() local 378 struct hda_codec *codec = dev_to_hda_codec(&hdev->dev); hda_hdev_detach() local [all...] |
| H A D | cs40l50-codec.c | 1 // SPDX-License-Identifier: GPL-2.0 4 // integrated DSP, and closed-loop algorithms 15 #define CS40L50_REFCLK_INPUT 0x2C04 16 #define CS40L50_ASP_CONTROL2 0x4808 17 #define CS40L50_ASP_DATA_CONTROL5 0x4840 20 #define CS40L50_PLL_REFCLK_BCLK 0x0 21 #define CS40L50_PLL_REFCLK_MCLK 0x5 22 #define CS40L50_PLL_REEFCLK_MCLK_CFG 0x00 25 #define CS40L50_PLL_REFCLK_CLOSED_LOOP 0 29 #define CS40L50_PLL_REFCLK_SEL_MASK GENMASK(2, 0) [all …]
|
| /linux/sound/hda/codecs/cirrus/ |
| H A D | cs421x.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Cirrus Logic CS421x HD-audio codec 45 /* Vendor-specific processing widget */ 46 #define CS_DIG_OUT1_PIN_NID 0x10 47 #define CS_DIG_OUT2_PIN_NID 0x15 48 #define CS_DMIC1_PIN_NID 0x0e 49 #define CS_DMIC2_PIN_NID 0x12 52 #define IDX_SPDIF_STAT 0x0000 53 #define IDX_SPDIF_CTL 0x0001 54 #define IDX_ADC_CFG 0x0002 [all …]
|
| H A D | cs420x.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Cirrus Logic CS420x HD-audio codec 52 /* Vendor-specific processing widget */ 53 #define CS420X_VENDOR_NID 0x11 54 #define CS_DIG_OUT1_PIN_NID 0x10 55 #define CS_DIG_OUT2_PIN_NID 0x15 56 #define CS_DMIC1_PIN_NID 0x0e 57 #define CS_DMIC2_PIN_NID 0x12 60 #define IDX_SPDIF_STAT 0x0000 61 #define IDX_SPDIF_CTL 0x0001 [all …]
|
| /linux/drivers/media/pci/zoran/ |
| H A D | videocodec.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Interface for MJPEG (and maybe later MPEG/WAVELETS) codec's 20 struct videocodec *codec; member 25 const struct videocodec *codec; member 42 struct videocodec *codec; in videocodec_attach() local 53 master->name, master->flags, master->magic); in videocodec_attach() 63 if ((master->flags & h->codec->flags) == master->flags) { in videocodec_attach() 64 zrdev_dbg(zr, "%s: try '%s'\n", __func__, h->codec->name); in videocodec_attach() 66 codec = kmemdup(h->codec, sizeof(struct videocodec), GFP_KERNEL); in videocodec_attach() 67 if (!codec) in videocodec_attach() [all …]
|
| /linux/sound/hda/codecs/realtek/ |
| H A D | alc269.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 21 /* different alc269-variants */ 50 static int alc269_parse_auto_config(struct hda_codec *codec) in alc269_parse_auto_config() argument 52 static const hda_nid_t alc269_ignore[] = { 0x1d, 0 }; in alc269_parse_auto_config() 53 static const hda_nid_t alc269_ssids[] = { 0, 0x1b, 0x14, 0x21 }; in alc269_parse_auto_config() 54 static const hda_nid_t alc269va_ssids[] = { 0x15, 0x1b, 0x14, 0 }; in alc269_parse_auto_config() 55 struct alc_spec *spec = codec->spec; in alc269_parse_auto_config() 58 switch (spec->codec_variant) { in alc269_parse_auto_config() 90 return alc_parse_auto_config(codec, alc269_ignore, ssids); in alc269_parse_auto_config() 101 static void alc_headset_btn_callback(struct hda_codec *codec, in alc_headset_btn_callback() argument [all …]
|
| /linux/include/sound/ |
| H A D | hda_regmap.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * HD-audio regmap helpers 13 #define AC_AMP_FAKE_MUTE 0x10 /* fake mute bit set to amp verbs */ 15 int snd_hdac_regmap_init(struct hdac_device *codec); 16 void snd_hdac_regmap_exit(struct hdac_device *codec); 17 int snd_hdac_regmap_add_vendor_verb(struct hdac_device *codec, 19 int snd_hdac_regmap_read_raw(struct hdac_device *codec, unsigned int reg, 21 int snd_hdac_regmap_read_raw_uncached(struct hdac_device *codec, 23 int snd_hdac_regmap_write_raw(struct hdac_device *codec, unsigned int reg, 25 int snd_hdac_regmap_update_raw(struct hdac_device *codec, unsigned int reg, [all …]
|