/openbmc/linux/sound/pci/hda/ |
H A D | hda_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 | hda_codec.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 27 #define codec_in_pm(codec) snd_hdac_is_in_pm(&codec->core) argument 28 #define hda_codec_is_power_on(codec) snd_hdac_is_power_on(&codec->core) argument 29 #define codec_has_epss(codec) \ argument 30 ((codec)->core.power_caps & AC_PWRST_EPSS) 31 #define codec_has_clkstop(codec) \ argument 32 ((codec)->core.power_caps & AC_PWRST_CLKSTOP) 35 * Send and receive a verb - passed to exec_verb override for hdac_device 40 struct hda_codec *codec = container_of(dev, struct hda_codec, core); in codec_exec_verb() local [all …]
|
H A D | hda_generic.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 32 * snd_hda_gen_spec_init - initialize hda_gen_spec struct 39 snd_array_init(&spec->kctls, sizeof(struct snd_kcontrol_new), 32); in snd_hda_gen_spec_init() 40 snd_array_init(&spec->paths, sizeof(struct nid_path), 8); in snd_hda_gen_spec_init() 41 snd_array_init(&spec->loopback_list, sizeof(struct hda_amp_list), 8); in snd_hda_gen_spec_init() 42 mutex_init(&spec->pcm_mutex); in snd_hda_gen_spec_init() 48 * snd_hda_gen_add_kctl - Add a new kctl_new struct from the template 62 struct snd_kcontrol_new *knew = snd_array_new(&spec->kctls); in snd_hda_gen_add_kctl() 67 knew->name = kstrdup(name, GFP_KERNEL); in snd_hda_gen_add_kctl() [all …]
|
H A D | hda_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 | patch_via.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 5 * HD audio interface patch 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 | patch_hdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 4 * patch_hdmi.c - routines for HDMI/DisplayPort codecs 6 * Copyright(c) 2008-2010 Intel Corporation. All rights reserved. 78 struct hda_codec *codec; member 82 struct hdmi_pcm *pcm; /* pointer to spec->pcm_rec[n] dynamically*/ 83 int pcm_idx; /* which pcm is attached. -1 means no pcm is attached */ 90 bool chmap_set; /* channel-map override by ALSA API? */ 91 unsigned char chmap[8]; /* ALSA API channel-map */ 99 int (*pin_get_eld)(struct hda_codec *codec, hda_nid_t pin_nid, 102 void (*pin_setup_infoframe)(struct hda_codec *codec, hda_nid_t pin_nid, [all …]
|
H A D | patch_ca0132.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 74 #define DESKTOP_EFX_FILE "ctefx-desktop.bin" 75 #define R3DI_EFX_FILE "ctefx-r3di.bin" 115 #define VNODES_COUNT (VNODE_END_NID - VNODE_START_NID) 126 #define OUT_EFFECTS_COUNT (OUT_EFFECT_END_NID - OUT_EFFECT_START_NID) 134 #define IN_EFFECTS_COUNT (IN_EFFECT_END_NID - IN_EFFECT_START_NID) 154 #define EFFECTS_COUNT (EFFECT_END_NID - EFFECT_START_NID) 163 * X-bass. 182 int params; /* number of default non-on/off params */ 223 { .name = "X-Bass", [all …]
|
H A D | hda_sysfs.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * sysfs interface for HD-audio codec 34 struct hda_codec *codec = dev_get_drvdata(dev); in power_on_acct_show() local 35 snd_hda_update_power_acct(codec); in power_on_acct_show() 36 return sysfs_emit(buf, "%u\n", jiffies_to_msecs(codec->power_on_acct)); in power_on_acct_show() 43 struct hda_codec *codec = dev_get_drvdata(dev); in power_off_acct_show() local 44 snd_hda_update_power_acct(codec); in power_off_acct_show() 45 return sysfs_emit(buf, "%u\n", jiffies_to_msecs(codec->power_off_acct)); in power_off_acct_show() 57 struct hda_codec *codec = dev_get_drvdata(dev); \ 58 return sysfs_emit(buf, "0x%x\n", codec->field); \ [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 15 * snd_hda_ctl_add() takes the lower-bit subdev value as a valid NID. 83 /* no digital beep - just the standard one */ 117 #define snd_hda_codec_amp_read(codec, nid, ch, dir, idx) \ argument 118 snd_hdac_regmap_get_amp(&(codec)->core, nid, ch, dir, idx) 119 int snd_hda_codec_amp_update(struct hda_codec *codec, hda_nid_t nid, 121 int snd_hda_codec_amp_stereo(struct hda_codec *codec, hda_nid_t nid, 123 int snd_hda_codec_amp_init(struct hda_codec *codec, hda_nid_t nid, int ch, 125 int snd_hda_codec_amp_init_stereo(struct hda_codec *codec, hda_nid_t nid, [all …]
|
H A D | patch_cs8409.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 22 static int cs8409_parse_auto_config(struct hda_codec *codec) in cs8409_parse_auto_config() argument 24 struct cs8409_spec *spec = codec->spec; in cs8409_parse_auto_config() 28 err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, 0); in cs8409_parse_auto_config() 32 err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg); in cs8409_parse_auto_config() 37 if (spec->gen.dyn_adc_switch) { in cs8409_parse_auto_config() 40 for (i = 0; i < spec->gen.input_mux.num_items; i++) { in cs8409_parse_auto_config() 41 int idx = spec->gen.dyn_adc_idx[i]; in cs8409_parse_auto_config() 45 snd_hda_gen_fix_pin_power(codec, spec->gen.adc_nids[idx]); in cs8409_parse_auto_config() 55 static struct cs8409_spec *cs8409_alloc_spec(struct hda_codec *codec) in cs8409_alloc_spec() argument [all …]
|
H A D | patch_conexant.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * HD audio interface patch for Conexant HDA audio codec 7 * Tobin Davis <tdavis@dsl-only.net> 63 spec->gen.beep_nid = nid; in set_beep_amp() 65 knew = snd_hda_gen_add_kctl(&spec->gen, NULL, in set_beep_amp() 68 return -ENOMEM; in set_beep_amp() 69 knew->private_value = beep_amp; in set_beep_amp() 74 static int cx_auto_parse_beep(struct hda_codec *codec) in cx_auto_parse_beep() argument 76 struct conexant_spec *spec = codec->spec; in cx_auto_parse_beep() 79 for_each_hda_codec_node(nid, codec) in cx_auto_parse_beep() [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 …]
|
H A D | patch_si3054.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 5 * HD audio interface patch for Silicon Labs 3054/5 modem codec 7 * Copyright (c) 2005 Sasha Khapyorsky <sashak@alsa-project.org> 63 /* si3054 codec registers (nodes) access macros */ 64 #define GET_REG(codec,reg) (snd_hda_codec_read(codec,reg,0,SI3054_VERB_READ_NODE,0)) argument 65 #define SET_REG(codec,reg,val) (snd_hda_codec_write(codec,reg,0,SI3054_VERB_WRITE_NODE,val)) argument 66 #define SET_REG_CACHE(codec,reg,val) \ argument 67 snd_hda_codec_write_cache(codec,reg,0,SI3054_VERB_WRITE_NODE,val) 88 struct hda_codec *codec = snd_kcontrol_chip(kcontrol); in si3054_switch_get() local [all …]
|
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 2 snd-hda-intel-objs := hda_intel.o 3 snd-hda-tegra-objs := hda_tegra.o 5 snd-hda-codec-y := hda_bind.o hda_codec.o hda_jack.o hda_auto_parser.o hda_sysfs.o 6 snd-hda-codec-y += hda_controller.o 7 snd-hda-codec-$(CONFIG_SND_PROC_FS) += hda_proc.o 9 snd-hda-codec-$(CONFIG_SND_HDA_HWDEP) += hda_hwdep.o 10 snd-hda-codec-$(CONFIG_SND_HDA_INPUT_BEEP) += hda_beep.o 12 # for trace-points 13 CFLAGS_hda_controller.o := -I$(src) [all …]
|
H A D | hda_proc.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 17 static int dump_coef = -1; 19 MODULE_PARM_DESC(dump_coef, "Dump processing coefficients in codec proc file (-1=auto, 0=disable, 1… 22 #define param_read(codec, nid, parm) \ argument 23 snd_hdac_read_parm_uncached(&(codec)->core, nid, parm) 38 if (wid_value == -1) in get_wid_type_name() 48 struct hda_codec *codec, hda_nid_t nid, in print_nid_array() argument 52 struct hda_nid_item *items = array->list, *item; in print_nid_array() 54 for (i = 0; i < array->used; i++) { in print_nid_array() [all …]
|
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 2 menu "HD-Audio" 23 This option enables the HD-audio controller. Don't forget 24 to choose the appropriate codec options below. 27 will be called snd-hda-intel. 43 will be called snd-hda-tegra. 48 bool "Build hwdep interface for HD-audio driver" 51 Say Y here to build a hwdep interface for HD-audio driver. 52 This interface can be used for out-of-band communication 56 bool "Allow dynamic codec reconfiguration" [all …]
|
/openbmc/linux/sound/pci/ali5451/ |
H A D | ali5451.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 8 * -- 11 * -- 21 #include <linux/dma-mapping.h> 141 #define ALI_REG(codec, x) ((codec)->port + x) argument 180 struct snd_ali *codec; member 185 int count; /* runtime->period_size */ 187 /* --- */ 266 static inline unsigned int snd_ali_5451_peek(struct snd_ali *codec, in snd_ali_5451_peek() argument 269 return (unsigned int)inl(ALI_REG(codec, port)); in snd_ali_5451_peek() [all …]
|
/openbmc/linux/sound/hda/ |
H A D | hdac_device.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * HD-audio codec core device 18 static void setup_fg_nodes(struct hdac_device *codec); 19 static int get_codec_vendor_name(struct hdac_device *codec); 27 * snd_hdac_device_init - initialize the HD-audio codec base device 28 * @codec: device to initialize 31 * @addr: codec address 40 int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus, in snd_hdac_device_init() argument 47 dev = &codec->dev; in snd_hdac_device_init() 49 dev->parent = bus->dev; in snd_hdac_device_init() [all …]
|
H A D | hdac_regmap.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Regmap support for HD-audio verbs 9 * - Provided for not all verbs but only subset standard non-volatile verbs. 10 * - For reading, only AC_VERB_GET_* variants can be used. 11 * - For writing, mapped to the *corresponding* AC_VERB_SET_* variants, 25 static int codec_pm_lock(struct hdac_device *codec) in codec_pm_lock() argument 27 return snd_hdac_keep_power_up(codec); in codec_pm_lock() 30 static void codec_pm_unlock(struct hdac_device *codec, int lock) in codec_pm_unlock() argument 33 snd_hdac_power_down_pm(codec); in codec_pm_unlock() 40 struct hdac_device *codec = dev_to_hdac_dev(dev); in hda_volatile_reg() local [all …]
|
H A D | hdac_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 …]
|
/openbmc/linux/Documentation/devicetree/bindings/pinctrl/ |
H A D | cirrus,lochnagar.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - patches@opensource.cirrus.com 14 Smart CODEC and Amp devices. It allows the connection of most Cirrus 15 Logic devices on mini-cards, as well as allowing connection of various 26 [2] Pinctrl: ../pinctrl/pinctrl-bindings.txt 29 [3] include/dt-bindings/pinctrl/lochnagar.h 37 - cirrus,lochnagar-pinctrl 39 gpio-controller: true [all …]
|
/openbmc/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 …]
|
/openbmc/linux/include/sound/ |
H A D | hda_codec.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Universal Interface for Intel High Definition Audio Codec 32 * codec bus 52 /* status for codec/controller */ 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); [all …]
|
/openbmc/linux/sound/soc/codecs/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # modular, meaning we can't build the codec driver in with I2C support. 5 # setting - SPI can't be modular so that case doesn't need to be covered. 12 menu "CODEC drivers" 15 tristate "Build all ASoC CODEC drivers" 339 Normally ASoC codec drivers are only built if a machine driver which 401 tristate "Build generic ASoC AC97 CODEC driver" 438 tristate "Analog Devices ADAU1372 CODEC (I2C)" 444 tristate "Analog Devices ADAU1372 CODEC (SPI)" 455 tristate "Analog Devices ADAU1701 CODEC" [all …]
|
H A D | hda.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Copyright(c) 2021-2022 Intel Corporation. All rights reserved. 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_head, struct hda_pcm, list); in hda_codec_create_dais() 34 dev_info(dev, "creating for %s %d\n", pcm->name, i); in hda_codec_create_dais() 36 drvs[i].name = pcm->name; in hda_codec_create_dais() 41 if (!pcm->stream[dir].substreams) { in hda_codec_create_dais() 42 dev_info(dev, "skipping playback dai for %s\n", pcm->name); in hda_codec_create_dais() [all …]
|