/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> 94 #define ALI_SCTRL_LINE_IN2 (1 << 9) 95 #define ALI_SCTRL_GPIO_IN2 (1 << 13) 96 #define ALI_SCTRL_LINE_OUT_EN (1 << 20) 97 #define ALI_SCTRL_GPIO_OUT_EN (1 << 23) 98 #define ALI_SCTRL_CODEC1_READY (1 << 24) 99 #define ALI_SCTRL_CODEC2_READY (1 << 25) [all …]
|
/linux/sound/hda/ |
H A D | hdac_device.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * HD-audio codec core device 19 static void setup_fg_nodes(struct hdac_device *codec); 20 static int get_codec_vendor_name(struct hdac_device *codec); 28 * snd_hdac_device_init - initialize the HD-audio codec base device 29 * @codec: device to initialize 32 * @addr: codec address 41 int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus, in snd_hdac_device_init() argument 48 dev = &codec->dev; in snd_hdac_device_init() 50 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 32 if (lock == 1) in codec_pm_unlock() 33 snd_hdac_power_down_pm(codec); in codec_pm_unlock() [all …]
|
H A D | hdac_bus.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * HD-audio core bus driver 24 * snd_hdac_bus_init - initialize a HD-audio bas bus 35 bus->dev = dev; in snd_hdac_bus_init() 37 bus->ops = ops; in snd_hdac_bus_init() 39 bus->ops = &default_ops; in snd_hdac_bus_init() 40 bus->dma_type = SNDRV_DMA_TYPE_DEV; in snd_hdac_bus_init() 41 INIT_LIST_HEAD(&bus->stream_list); in snd_hdac_bus_init() 42 INIT_LIST_HEAD(&bus->codec_list); in snd_hdac_bus_init() 43 INIT_WORK(&bus->unsol_work, snd_hdac_bus_process_unsol_events); in snd_hdac_bus_init() [all …]
|
/linux/sound/pci/hda/ |
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 | patch_ca0132.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 48 #define DSP_DMA_WRITE_BUFLEN_INIT (1UL<<18) 49 #define DSP_DMA_WRITE_BUFLEN_OVLY (1UL<<15) 71 #define SCP_GET 1 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) [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 | 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() 43 if (done & (1 << idx)) in cs8409_parse_auto_config() 45 snd_hda_gen_fix_pin_power(codec, spec->gen.adc_nids[idx]); in cs8409_parse_auto_config() [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 | hda_auto_parser.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * BIOS auto-parser helper functions for HD-audio 24 return 1; in is_in_nid_list() 38 return (int)(a->seq - b->seq); in compare_seq() 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() 61 cfg->inputs[cfg->num_inputs].type = type; in add_auto_cfg_input_pin() 62 cfg->inputs[cfg->num_inputs].has_boost_on_pin = in add_auto_cfg_input_pin() [all …]
|
H A D | patch_senarytech.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * HD audio interface patch for Senary HDA audio codec 41 HDA_CODEC_VOLUME_MONO("Beep Playback Volume", 0, 1, 0, HDA_OUTPUT), 42 HDA_CODEC_MUTE_BEEP_MONO("Beep Playback Switch", 0, 1, 0, HDA_OUTPUT), 49 unsigned int beep_amp = HDA_COMPOSE_AMP_VAL(nid, 1, idx, dir); in set_beep_amp() 52 spec->gen.beep_nid = nid; in set_beep_amp() 54 knew = snd_hda_gen_add_kctl(&spec->gen, NULL, in set_beep_amp() 57 return -ENOMEM; in set_beep_amp() 58 knew->private_value = beep_amp; in set_beep_amp() 63 static int senary_auto_parse_beep(struct hda_codec *codec) in senary_auto_parse_beep() 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> 52 HDA_CODEC_VOLUME_MONO("Beep Playback Volume", 0, 1, 0, HDA_OUTPUT), 53 HDA_CODEC_MUTE_BEEP_MONO("Beep Playback Switch", 0, 1, 0, HDA_OUTPUT), 60 unsigned int beep_amp = HDA_COMPOSE_AMP_VAL(nid, 1, idx, dir); in set_beep_amp() 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() [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> 61 #define SI3054_CHIPID_CODEC_ID (1<<12) 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) [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_realtek.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Universal Interface for Intel High Definition Audio Codec 39 /* extra amp-initialization sequence types */ 70 unsigned int enable_pcbeep:1; 71 unsigned int platform_type:1; 72 unsigned int swap:1; 73 unsigned int override:1; 74 unsigned int fixup:1; /* Means that this sku is set by driver, not read from hw */ 87 /* codec parameterization */ 115 void (*init_hook)(struct hda_codec *codec); [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? */ 38 unsigned int jack_dirty:1; /* needs to update? */ 39 unsigned int phantom_jack:1; /* a fixed, always present port? */ 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 [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 …]
|
H A D | hda_generic.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Generic BIOS auto-parser helper functions for HD-audio 16 /* table entry for multi-io paths */ 18 hda_nid_t pin; /* multi-io widget pin NID */ 20 unsigned int ctl_in; /* cached input-pin control value */ 25 * For output, stored in the order of DAC -> ... -> pin, 26 * for input, pin -> ... -> ADC. 29 * e.g. idx[1] is the index of the DAC (path[0]) selected by path[1] widget 30 * multi[] indicates whether it's a selector widget with multi-connectors 50 bool active:1; /* activated by driver */ [all …]
|
/linux/include/sound/ |
H A D | hda_regmap.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * HD-audio regmap helpers 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, 27 int snd_hdac_regmap_update_raw_once(struct hdac_device *codec, unsigned int reg, [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_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 …]
|
H A D | hdac_hda.c | 1 // SPDX-License-Identifier: GPL-2.0 2 // Copyright(c) 2015-18 Intel Corporation. 5 * hdac_hda.c - ASoC extensions to reuse the legacy HDA codec drivers 7 * codec drivers using hdac_ext_bus_ops ops. 43 …ESC(patch, "Patch file array for Intel HD audio interface. The array index is the codec address."); 74 .name = "Analog Codec DAI", 77 .stream_name = "Analog Codec Playback", 78 .channels_min = 1, 85 .stream_name = "Analog Codec Capture", 86 .channels_min = 1, [all …]
|
/linux/sound/soc/sof/intel/ |
H A D | hda-codec.c | 1 // SPDX-License-Identifier: GPL-2.0-only 24 static int hda_codec_mask = -1; 26 MODULE_PARM_DESC(codec_mask, "SOF HDA codec mask for probing"); 28 /* load the legacy HDA codec driver */ 29 static int request_codec_module(struct hda_codec *codec) in request_codec_module() argument 35 switch (codec->probe_id) { in request_codec_module() 38 mod = "snd-hda-codec-generic"; in request_codec_module() 42 snd_hdac_codec_modalias(&codec->core, alias, sizeof(alias)); in request_codec_module() 48 dev_dbg(&codec->core.dev, "loading codec module: %s\n", mod); in request_codec_module() 52 return device_attach(hda_codec_dev(codec)); in request_codec_module() [all …]
|
/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 25 [1] GPIO : ../gpio/gpio.txt 26 [2] Pinctrl: ../pinctrl/pinctrl-bindings.txt 29 [3] include/dt-bindings/pinctrl/lochnagar.h 37 - cirrus,lochnagar-pinctrl [all …]
|
/linux/drivers/media/pci/zoran/ |
H A D | zr36016.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 15 /* codec io API */ 28 * Local hardware I/O functions: read/write via codec layer 36 struct zoran *zr = videocodec_to_zoran(ptr->codec); in zr36016_read() 39 if (ptr->codec->master_data->readreg) in zr36016_read() 40 value = (ptr->codec->master_data->readreg(ptr->codec, reg)) & 0xFF; in zr36016_read() 42 zrdev_err(zr, "%s: invalid I/O setup, nothing read!\n", ptr->name); in zr36016_read() 44 zrdev_dbg(zr, "%s: reading from 0x%04x: %02x\n", ptr->name, reg, value); in zr36016_read() 51 struct zoran *zr = videocodec_to_zoran(ptr->codec); in zr36016_write() 53 zrdev_dbg(zr, "%s: writing 0x%02x to 0x%04x\n", ptr->name, value, reg); in zr36016_write() [all …]
|
/linux/drivers/staging/media/sunxi/cedrus/ |
H A D | cedrus_h264.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 12 #include <media/videobuf2-dma-contig.h> 53 while (count--) in cedrus_h264_write_sram() 60 dma_addr_t addr = buf->codec.h264.mv_col_buf_dma; in cedrus_h264_mv_col_buf_addr() 63 addr += field * buf->codec.h264.mv_col_buf_size / 2; in cedrus_h264_mv_col_buf_addr() 74 struct vb2_buffer *vbuf = &buf->m2m_buf.vb.vb2_buf; in cedrus_fill_ref_pic() 76 pic->top_field_order_cnt = cpu_to_le32(top_field_order_cnt); in cedrus_fill_ref_pic() 77 pic->bottom_field_order_cnt = cpu_to_le32(bottom_field_order_cnt); in cedrus_fill_ref_pic() 78 pic->frame_info = cpu_to_le32(buf->codec.h264.pic_type << 8); in cedrus_fill_ref_pic() 80 pic->luma_ptr = cpu_to_le32(cedrus_buf_addr(vbuf, &ctx->dst_fmt, 0)); in cedrus_fill_ref_pic() [all …]
|