| /linux/sound/soc/ |
| H A D | soc-generic-dmaengine-pcm.c | 10 #include <sound/pcm.h> 28 static struct device *dmaengine_dma_dev(struct dmaengine_pcm *pcm, in dmaengine_dma_dev() argument 31 if (!pcm->chan[substream->stream]) in dmaengine_dma_dev() 34 return pcm->chan[substream->stream]->device->dev; in dmaengine_dma_dev() 39 * @substream: PCM substream 80 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); in dmaengine_pcm_hw_params() local 85 if (!pcm->config->prepare_slave_config) in dmaengine_pcm_hw_params() 90 ret = pcm->config->prepare_slave_config(substream, params, &slave_config); in dmaengine_pcm_hw_params() 102 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); in dmaengine_pcm_set_runtime_hwparams() local 103 struct device *dma_dev = dmaengine_dma_dev(pcm, substrea in dmaengine_pcm_set_runtime_hwparams() 151 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); dmaengine_pcm_open() local 179 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); dmaengine_pcm_compat_request_channel() local 222 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); dmaengine_pcm_new() local 282 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); dmaengine_pcm_pointer() local 296 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); dmaengine_copy() local 349 dmaengine_pcm_request_chan_of(struct dmaengine_pcm * pcm,struct device * dev,const struct snd_dmaengine_pcm_config * config) dmaengine_pcm_request_chan_of() argument 402 dmaengine_pcm_release_chan(struct dmaengine_pcm * pcm) dmaengine_pcm_release_chan() argument 429 struct dmaengine_pcm *pcm; snd_dmaengine_pcm_register() local 483 struct dmaengine_pcm *pcm; snd_dmaengine_pcm_unregister() local [all...] |
| /linux/sound/soc/samsung/ |
| H A D | pcm.c | 3 // ALSA SoC Audio Layer - S3C PCM-Controller driver 20 #include "pcm.h" 106 * struct s3c_pcm_info - S3C PCM Controller information 112 * @pclk: the PCLK_PCM (pcm) clock pointer 154 static void s3c_pcm_snd_txctrl(struct s3c_pcm_info *pcm, int on) in s3c_pcm_snd_txctrl() argument 156 void __iomem *regs = pcm->regs; in s3c_pcm_snd_txctrl() 176 if (!pcm->idleclk) in s3c_pcm_snd_txctrl() 185 static void s3c_pcm_snd_rxctrl(struct s3c_pcm_info *pcm, int on) in s3c_pcm_snd_rxctrl() argument 187 void __iomem *regs = pcm->regs; in s3c_pcm_snd_rxctrl() 207 if (!pcm->idleclk) in s3c_pcm_snd_rxctrl() [all …]
|
| /linux/Documentation/sound/designs/ |
| H A D | oss-emulation.rst | 12 The OSS emulation for PCM, mixer and sequencer devices is implemented 13 as add-on kernel modules, snd-pcm-oss, snd-mixer-oss and snd-seq-oss. 14 When you need to access the OSS PCM, mixer or sequencer devices, the 48 PCM: 73 As seen above, PCM and MIDI may have two devices. Usually, the first 74 PCM device (``hw:0,0`` in ALSA) is mapped to /dev/dsp and the secondary 79 snd-pcm-oss and snd-rawmidi. In the case of PCM, the following 80 options are available for snd-pcm-oss: 83 PCM device number assigned to /dev/dspX 86 PCM device number assigned to /dev/adspX [all …]
|
| H A D | tracepoints.rst | 8 Tracepoints in ALSA PCM core 11 ALSA PCM core registers ``snd_pcm`` subsystem to kernel tracepoint system. 12 This subsystem includes two categories of tracepoints; for state of PCM buffer 13 and for processing of PCM hardware parameters. These tracepoints are available 18 Tracepoints for state of PCM buffer 24 Tracepoints for processing of PCM hardware parameters 30 In a design of ALSA PCM core, data transmission is abstracted as PCM substream. 31 Applications manage PCM substream to maintain data transmission for PCM frames. 32 Before starting the data transmission, applications need to configure PCM 33 substream. In this procedure, PCM hardware parameters are decided by [all …]
|
| H A D | procfile.rst | 42 pcm 43 Lists the currently available PCM devices in format of 66 When PCM devices are available on this card, you can see directories 67 like pcm0p or pcm1c. They hold the PCM information for each PCM 68 stream. The number after ``pcm`` is the PCM device number from 0, and 85 PCM Proc Files 88 ``card*/pcm*/info`` 89 The general information of this PCM device: card #, device #, 92 ``card*/pcm*/xrun_debug`` 96 invalid PCM position debug/check of ALSA PCM middle layer. [all …]
|
| /linux/sound/core/ |
| H A D | pcm_memory.c | 3 * Digital Audio (PCM) abstract layer 14 #include <sound/pcm.h> 21 MODULE_PARM_DESC(preallocate_dma, "Preallocate DMA memory when the PCM devices are initialized."); 102 struct snd_card *card = substream->pcm->card; in preallocate_pcm_pages() 117 substream->pcm->card->number, substream->pcm->device, in preallocate_pcm_pages() 119 substream->pcm->name, orig_size); in preallocate_pcm_pages() 125 * @substream: the pcm substream instance 131 do_free_pages(substream->pcm->card, &substream->dma_buffer); in snd_pcm_lib_preallocate_free() 135 * snd_pcm_lib_preallocate_free_for_all - release all pre-allocated buffers on the pcm 136 * @pcm: the pcm instance [all …]
|
| /linux/Documentation/sound/cards/ |
| H A D | sb-live-mixer.rst | 15 IEC958 (S/PDIF) raw PCM 18 This PCM device (it's the 3rd PCM device (index 2!) and first subdevice 22 to 8 raw PCM devices operating at 48kHz, 16-bit little endian. It would 64 This control is used to attenuate samples from left and right PCM FX-bus 65 accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples. 66 The result samples are forwarded to the front DAC PCM slots of the AC97 codec. 70 This control is used to attenuate samples from left and right PCM FX-bus 71 accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples. 77 This control is used to attenuate samples from left and right PCM FX-bus 78 accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples. [all …]
|
| H A D | audigy-mixer.rst | 47 name='PCM Front Playback Volume',index=0 49 This control is used to attenuate samples from left and right front PCM FX-bus 50 accumulators. ALSA uses accumulators 8 and 9 for left and right front PCM 53 name='PCM Surround Playback Volume',index=0 55 This control is used to attenuate samples from left and right surround PCM FX-bus 56 accumulators. ALSA uses accumulators 2 and 3 for left and right surround PCM 60 name='PCM Side Playback Volume',index=0 62 This control is used to attenuate samples from left and right side PCM FX-bus 63 accumulators. ALSA uses accumulators 14 and 15 for left and right side PCM 66 name='PCM Center Playback Volume',index=0 [all …]
|
| H A D | emu-mixer.rst | 98 name='PCM Front Playback Volume',index=0 100 This control is used to attenuate samples from left and right front PCM FX-bus 101 accumulators. ALSA uses accumulators 8 and 9 for left and right front PCM 105 name='PCM Surround Playback Volume',index=0 107 This control is used to attenuate samples from left and right surround PCM FX-bus 108 accumulators. ALSA uses accumulators 2 and 3 for left and right surround PCM 112 name='PCM Side Playback Volume',index=0 114 This control is used to attenuate samples from left and right side PCM FX-bus 115 accumulators. ALSA uses accumulators 14 and 15 for left and right side PCM 119 name='PCM Center Playback Volume',index=0 [all …]
|
| H A D | pcmtest.rst | 3 The Virtual PCM Test Driver 6 The Virtual PCM Test Driver emulates a generic PCM device, and can be used for 8 the PCM middle layer. Additionally, it can be used for simulating hard to reproduce 9 problems with PCM devices. 18 * Inject errors during the PCM callbacks 24 which is used in the corresponding selftest (alsa/pcmtest-test.sh) to check the PCM middle 26 RESET ioctl, and the selftest covers this PCM API functionality as well. 83 This module can be used for injecting errors into the PCM communication process. This 87 For example, you can make all 'hw_params' PCM callback calls return EBUSY error by 94 Errors can be injected into the following PCM callbacks: [all …]
|
| /linux/sound/soc/codecs/ |
| H A D | hda.c | 21 struct hda_pcm *pcm; in hda_codec_create_dais() local 28 pcm = list_first_entry(&codec->pcm_list_head, struct hda_pcm, list); in hda_codec_create_dais() 30 for (i = 0; i < pcm_count; i++, pcm = list_next_entry(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() 47 devm_kasprintf(dev, GFP_KERNEL, "%s %s", pcm->name, in hda_codec_create_dais() 51 stream->channels_min = pcm in hda_codec_create_dais() 87 struct hda_pcm *pcm; hda_codec_register_dais() local 128 struct hda_pcm *pcm; hda_codec_unregister_dais() local [all...] |
| H A D | hdac_hdmi.c | 146 struct hdac_hdmi_pcm *pcm; in hdac_hdmi_get_pcm_from_cvt() local 148 list_for_each_entry(pcm, &hdmi->pcm_list, head) { in hdac_hdmi_get_pcm_from_cvt() 149 if (pcm->cvt == cvt) in hdac_hdmi_get_pcm_from_cvt() 150 return pcm; in hdac_hdmi_get_pcm_from_cvt() 156 static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm, in hdac_hdmi_jack_report() argument 165 * for the first time where same PCM is attached to multiple in hdac_hdmi_jack_report() 168 if (pcm->jack_event == 0) { in hdac_hdmi_jack_report() 170 "jack report for pcm=%d\n", in hdac_hdmi_jack_report() 171 pcm->pcm_id); in hdac_hdmi_jack_report() 172 snd_soc_jack_report(pcm in hdac_hdmi_jack_report() 206 hdac_hdmi_jack_report_sync(struct hdac_hdmi_pcm * pcm,struct hdac_hdmi_port * port,bool is_connect) hdac_hdmi_jack_report_sync() argument 284 struct hdac_hdmi_pcm *pcm; get_hdmi_pcm_from_id() local 356 hdac_hdmi_setup_audio_infoframe(struct hdac_device * hdev,struct hdac_hdmi_pcm * pcm,struct hdac_hdmi_port * port) hdac_hdmi_setup_audio_infoframe() argument 444 struct hdac_hdmi_pcm *pcm; hdac_hdmi_set_stream() local 469 struct hdac_hdmi_pcm *pcm; hdac_hdmi_set_hw_params() local 530 struct hdac_hdmi_pcm *pcm; hdac_hdmi_get_port_from_cvt() local 636 struct hdac_hdmi_pcm *pcm; hdac_hdmi_pcm_close() local 722 struct hdac_hdmi_pcm *pcm; hdac_hdmi_get_pcm() local 773 struct hdac_hdmi_pcm *pcm; hdac_hdmi_pin_output_widget_event() local 819 struct hdac_hdmi_pcm *pcm; hdac_hdmi_cvt_output_widget_event() local 909 struct hdac_hdmi_pcm *pcm; hdac_hdmi_set_pin_port_mux() local 1257 struct hdac_hdmi_pcm *pcm; hdac_hdmi_present_sense() local 1773 struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx); hdac_hdmi_get_chmap() local 1782 struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx); hdac_hdmi_set_chmap() local 1803 struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx); is_hdac_hdmi_pcm_attached() local 1817 struct hdac_hdmi_pcm *pcm = get_hdmi_pcm_from_id(hdmi, pcm_idx); hdac_hdmi_get_spk_alloc() local [all...] |
| H A D | hda-dai.c | 16 struct hda_pcm *pcm; in hda_codec_dai_startup() local 21 pcm = container_of(stream_info, struct hda_pcm, stream[substream->stream]); in hda_codec_dai_startup() 23 dev_dbg(dai->dev, "open stream codec: %08x, info: %p, pcm: %p %s substream: %p\n", in hda_codec_dai_startup() 24 codec->core.vendor_id, stream_info, pcm, pcm->name, substream); in hda_codec_dai_startup() 26 snd_hda_codec_pcm_get(pcm); in hda_codec_dai_startup() 31 snd_hda_codec_pcm_put(pcm); in hda_codec_dai_startup() 42 struct hda_pcm *pcm; in hda_codec_dai_shutdown() local 47 pcm = container_of(stream_info, struct hda_pcm, stream[substream->stream]); in hda_codec_dai_shutdown() 49 dev_dbg(dai->dev, "close stream codec: %08x, info: %p, pcm: %p %s substream: %p\n", in hda_codec_dai_shutdown() 50 codec->core.vendor_id, stream_info, pcm, pcm->name, substream); in hda_codec_dai_shutdown() [all …]
|
| H A D | cs42l73.c | 23 #include <sound/pcm.h> 60 { 12, 0x00 }, /* r0C - Aux PCM Ctl */ 61 { 13, 0x15 }, /* r0D - Aux PCM Master Clock Ctl */ 62 { 14, 0x00 }, /* r0E - Audio PCM Ctl */ 63 { 15, 0x15 }, /* r0F - Audio PCM Master Clock Ctl */ 64 { 16, 0x00 }, /* r10 - Voice PCM Ctl */ 65 { 17, 0x15 }, /* r11 - Voice PCM Master Clock Ctl */ 83 { 35, 0x00 }, /* r23 - Aux PCM Input Advisory Volume */ 84 { 36, 0x00 }, /* r24 - Audio PCM Input Advisory Volume */ 85 { 37, 0x00 }, /* r25 - Voice PCM Inpu [all...] |
| /linux/sound/pci/au88x0/ |
| H A D | au88x0_pcm.c | 6 * Vortex PCM ALSA driver. 14 #include <sound/pcm.h> 146 if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) { in snd_vortex_pcm_open() 148 if (VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_A3D) { in snd_vortex_pcm_open() 152 if (VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_SPDIF) { in snd_vortex_pcm_open() 166 if (VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_ADB in snd_vortex_pcm_open() 167 || VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_I2S) in snd_vortex_pcm_open() 172 VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_ADB) { in snd_vortex_pcm_open() 219 if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) { in snd_vortex_pcm_hw_params() 220 int dma, type = VORTEX_PCM_TYPE(substream->pcm); in snd_vortex_pcm_hw_params() [all …]
|
| /linux/include/sound/ |
| H A D | pcm.h | 6 * Digital Audio (PCM) abstract layer 22 #define snd_pcm_chip(pcm) ((pcm)->private_data) argument 465 struct snd_pcm *pcm; member 467 void *private_data; /* copied from pcm->private_data */ 515 struct snd_pcm *pcm; member 547 void (*private_free) (struct snd_pcm *pcm); 548 bool internal; /* pcm is for internal use only */ 549 bool nonatomic; /* whole PCM operations are in non-atomic context */ 568 int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count); 572 int (*n_register) (struct snd_pcm * pcm); [all …]
|
| /linux/Documentation/sound/soc/ |
| H A D | usb.rst | 58 - ``update_offload_route_info``: callback to fetch selected USB sound card/PCM 71 - ``cpcm_idx``: capture pcm device indexes associated with the USB sound device 72 - ``ppcm_idx``: playback pcm device indexes associated with the USB sound device 90 - ``params``: Requested PCM parameters from the USB DPCM BE DAI link 155 int snd_soc_usb_update_offload_route(struct device *dev, int card, int pcm, 162 - ``pcm``: USB sound PCM device index 164 - ``path``: kcontrol selector - pcm device or card index 165 - ``route``: mapping of sound card and pcm indexes for the offload path. This is 166 an array of two integers that will carry the card and pcm device indexes 364 **PCM Devices**: [all …]
|
| /linux/sound/soc/mediatek/mt6797/ |
| H A D | mt6797-dai-pcm.c | 155 {"PCM 1 Playback", NULL, "PCM_1_PB_CH1"}, 156 {"PCM 1 Playback", NULL, "PCM_1_PB_CH2"}, 157 {"PCM 1 Playback", NULL, "PCM_1_PB_CH4"}, 158 {"PCM 2 Playback", NULL, "PCM_2_PB_CH1"}, 159 {"PCM 2 Playback", NULL, "PCM_2_PB_CH2"}, 160 {"PCM 2 Playback", NULL, "PCM_2_PB_CH4"}, 162 {"PCM 1 Playback", NULL, "PCM_1_EN"}, 163 {"PCM 2 Playback", NULL, "PCM_2_EN"}, 164 {"PCM 1 Capture", NULL, "PCM_1_EN"}, 165 {"PCM 2 Capture", NULL, "PCM_2_EN"}, [all …]
|
| /linux/sound/soc/mediatek/mt8183/ |
| H A D | mt8183-dai-pcm.c | 155 {"PCM 1 Playback", NULL, "PCM_1_PB_CH1"}, 156 {"PCM 1 Playback", NULL, "PCM_1_PB_CH2"}, 157 {"PCM 1 Playback", NULL, "PCM_1_PB_CH4"}, 158 {"PCM 2 Playback", NULL, "PCM_2_PB_CH1"}, 159 {"PCM 2 Playback", NULL, "PCM_2_PB_CH2"}, 160 {"PCM 2 Playback", NULL, "PCM_2_PB_CH4"}, 162 {"PCM 1 Playback", NULL, "PCM_1_EN"}, 163 {"PCM 2 Playback", NULL, "PCM_2_EN"}, 164 {"PCM 1 Capture", NULL, "PCM_1_EN"}, 165 {"PCM 2 Capture", NULL, "PCM_2_EN"}, [all …]
|
| /linux/sound/pci/ctxfi/ |
| H A D | ctpcm.c | 8 * This file contains the definition of the pcm device functions. 17 #include <sound/pcm.h> 114 /* pcm playback operations */ 128 if (IEC958 == substream->pcm->device) { in ct_pcm_playback_open() 133 if (FRONT == substream->pcm->device) in ct_pcm_playback_open() 168 if (IEC958 == substream->pcm->device) in ct_pcm_playback_close() 205 if (IEC958 == substream->pcm->device) in ct_pcm_playback_prepare() 212 "Preparing pcm playback failed!!!\n"); in ct_pcm_playback_prepare() 260 /* pcm capture operations */ 321 "Preparing pcm capture failed!!!\n"); in ct_pcm_capture_prepare() [all …]
|
| /linux/tools/testing/selftests/alsa/ |
| H A D | pcm-test.c | 3 // kselftest for the ALSA PCM API 9 // every PCM device it can find. This may conflict with other system 129 pcm_config = conf_get_subtree(card_config, "pcm", NULL); in missing_devices() 228 sprintf(key, "pcm.%d.%s", dev, snd_pcm_stream_name(stream)); in find_pcms() 231 ksft_print_msg("skipping pcm %d.%d.%s\n", card, dev, snd_pcm_stream_name(stream)); in find_pcms() 249 sprintf(key, "pcm.%d.%d.%s", dev, subdev, snd_pcm_stream_name(stream)); in find_pcms() 251 ksft_print_msg("skipping pcm %d.%d.%d.%s\n", card, dev, in find_pcms() 353 snprintf(msg, sizeof(msg), "Failed to get pcm handle: %s", snd_strerror(err)); in test_pcm_time() 554 void run_time_tests(struct pcm_data *pcm, enum test_class class, in run_time_tests() argument 574 test_pcm_time(pcm, clas in run_time_tests() 583 struct pcm_data *pcm; card_thread() local 600 struct pcm_data *pcm; main() local [all...] |
| /linux/sound/soc/mediatek/mt8192/ |
| H A D | mt8192-dai-pcm.c | 230 {"PCM 1 Playback", NULL, "PCM_1_PB_CH1"}, 231 {"PCM 1 Playback", NULL, "PCM_1_PB_CH2"}, 232 {"PCM 1 Playback", NULL, "PCM_1_PB_CH4"}, 233 {"PCM 2 Playback", NULL, "PCM_2_PB_CH1"}, 234 {"PCM 2 Playback", NULL, "PCM_2_PB_CH2"}, 235 {"PCM 2 Playback", NULL, "PCM_2_PB_CH3"}, 236 {"PCM 2 Playback", NULL, "PCM_2_PB_CH4"}, 237 {"PCM 2 Playback", NULL, "PCM_2_PB_CH5"}, 239 {"PCM 1 Playback", NULL, "PCM_1_EN"}, 240 {"PCM 2 Playback", NULL, "PCM_2_EN"}, [all …]
|
| /linux/sound/soc/intel/boards/ |
| H A D | hda_dsp_common.c | 6 #include <sound/pcm.h> 17 * Search card topology and return PCM device number 32 spcm = rtd->pcm; in hda_dsp_hdmi_pcm_handle() 41 return rtd->pcm; 50 * Search card topology and register HDMI PCM related controls in hda_dsp_hdmi_build_controls() 71 hpcm->pcm = spcm; in hda_dsp_hdmi_build_controls() 74 "mapping HDMI converter %d to PCM %d (%p)\n", in hda_dsp_hdmi_build_controls() 77 hpcm->pcm = NULL; in hda_dsp_hdmi_build_controls() 80 "%s: no PCM in topology for HDMI converter %d\n", in hda_dsp_hdmi_build_controls()
|
| /linux/sound/usb/line6/ |
| H A D | pcm.h | 9 PCM interface to POD series devices. 15 #include <sound/pcm.h> 35 Get substream from Line 6 PCM data structure 38 (line6pcm->pcm->streams[stream].substream) 41 PCM mode bits. 43 There are several features of the Line 6 USB driver which require PCM 45 *) PCM playback and capture via ALSA 51 subsystems with respect to PCM usage. 56 LINE6_STREAM_PCM = ALSA PCM playback or capture 75 /* misc bit flags for PCM operation */ [all …]
|
| /linux/sound/virtio/ |
| H A D | virtio_pcm.h | 11 #include <sound/pcm.h> 12 #include <sound/pcm-indirect.h> 18 * struct virtio_pcm_substream - VirtIO PCM substream. 25 * @pcm_indirect: Kernel indirect pcm structure. 68 * struct virtio_pcm_stream - VirtIO PCM stream. 82 * struct virtio_pcm - VirtIO PCM device. 83 * @list: VirtIO PCM list entry. 85 * @pcm: Kernel PCM device. 86 * @streams: VirtIO PCM streams (playback and capture). 91 struct snd_pcm *pcm; member
|