| /kernel/linux/linux-5.10/sound/soc/ |
| D | soc-generic-dmaengine-pcm.c | 10 #include <sound/pcm.h> 24 static struct device *dmaengine_dma_dev(struct dmaengine_pcm *pcm, in dmaengine_dma_dev() argument 27 if (!pcm->chan[substream->stream]) in dmaengine_dma_dev() 30 return pcm->chan[substream->stream]->device->dev; in dmaengine_dma_dev() 35 * @substream: PCM substream 76 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); in dmaengine_pcm_hw_params() local 86 if (!pcm->config) in dmaengine_pcm_hw_params() 89 prepare_slave_config = pcm->config->prepare_slave_config; in dmaengine_pcm_hw_params() 109 struct dmaengine_pcm *pcm = soc_component_to_pcm(component); in dmaengine_pcm_set_runtime_hwparams() local 110 struct device *dma_dev = dmaengine_dma_dev(pcm, substream); in dmaengine_pcm_set_runtime_hwparams() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/ |
| 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, substream); in dmaengine_pcm_set_runtime_hwparams() [all …]
|
| /kernel/linux/linux-6.6/sound/core/ |
| D | pcm.c | 3 * Digital Audio (PCM) abstract layer 16 #include <sound/pcm.h> 24 MODULE_DESCRIPTION("Midlevel PCM code for ALSA."); 33 static int snd_pcm_free(struct snd_pcm *pcm); 40 struct snd_pcm *pcm; in snd_pcm_get() local 42 list_for_each_entry(pcm, &snd_pcm_devices, list) { in snd_pcm_get() 43 if (pcm->card == card && pcm->device == device) in snd_pcm_get() 44 return pcm; in snd_pcm_get() 51 struct snd_pcm *pcm; in snd_pcm_next() local 53 list_for_each_entry(pcm, &snd_pcm_devices, list) { in snd_pcm_next() [all …]
|
| D | pcm_dmaengine.c | 7 * imx-pcm-dma-mx2.c, Copyright 2009 Sascha Hauer <s.hauer@pengutronix.de> 8 * mxs-pcm.c, Copyright (C) 2011 Freescale Semiconductor, Inc. 9 * ep93xx-pcm.c, Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org> 16 #include <sound/pcm.h> 45 * @substream: PCM substream 50 * and hw_params in a dmaengine based PCM driver implementation. 92 * @substream: PCM substream 178 * snd_dmaengine_pcm_trigger - dmaengine based PCM trigger implementation 179 * @substream: PCM substream 182 * This function can be used as the PCM trigger callback for dmaengine based PCM [all …]
|
| D | pcm_memory.c | 3 * Digital Audio (PCM) abstract layer 15 #include <sound/pcm.h> 22 MODULE_PARM_DESC(preallocate_dma, "Preallocate DMA memory when the PCM devices are initialized."); 107 struct snd_card *card = substream->pcm->card; in preallocate_pcm_pages() 122 substream->pcm->card->number, substream->pcm->device, in preallocate_pcm_pages() 124 substream->pcm->name, orig_size); in preallocate_pcm_pages() 130 * @substream: the pcm substream instance 136 do_free_pages(substream->pcm->card, &substream->dma_buffer); in snd_pcm_lib_preallocate_free() 140 * snd_pcm_lib_preallocate_free_for_all - release all pre-allocated buffers on the pcm 141 * @pcm: the pcm instance [all …]
|
| /kernel/linux/linux-5.10/sound/core/ |
| D | pcm.c | 3 * Digital Audio (PCM) abstract layer 16 #include <sound/pcm.h> 24 MODULE_DESCRIPTION("Midlevel PCM code for ALSA."); 33 static int snd_pcm_free(struct snd_pcm *pcm); 40 struct snd_pcm *pcm; in snd_pcm_get() local 42 list_for_each_entry(pcm, &snd_pcm_devices, list) { in snd_pcm_get() 43 if (pcm->card == card && pcm->device == device) in snd_pcm_get() 44 return pcm; in snd_pcm_get() 51 struct snd_pcm *pcm; in snd_pcm_next() local 53 list_for_each_entry(pcm, &snd_pcm_devices, list) { in snd_pcm_next() [all …]
|
| D | pcm_dmaengine.c | 7 * imx-pcm-dma-mx2.c, Copyright 2009 Sascha Hauer <s.hauer@pengutronix.de> 8 * mxs-pcm.c, Copyright (C) 2011 Freescale Semiconductor, Inc. 9 * ep93xx-pcm.c, Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org> 16 #include <sound/pcm.h> 45 * @substream: PCM substream 50 * and hw_params in a dmaengine based PCM driver implementation. 90 * @substream: PCM substream 175 * snd_dmaengine_pcm_trigger - dmaengine based PCM trigger implementation 176 * @substream: PCM substream 181 * This function can be used as the PCM trigger callback for dmaengine based PCM [all …]
|
| D | pcm_memory.c | 3 * Digital Audio (PCM) abstract layer 15 #include <sound/pcm.h> 22 MODULE_PARM_DESC(preallocate_dma, "Preallocate DMA memory when the PCM devices are initialized."); 101 struct snd_card *card = substream->pcm->card; in preallocate_pcm_pages() 114 substream->pcm->card->number, substream->pcm->device, in preallocate_pcm_pages() 116 substream->pcm->name, orig_size); in preallocate_pcm_pages() 125 do_free_pages(substream->pcm->card, &substream->dma_buffer); in snd_pcm_lib_preallocate_dma_free() 130 * @substream: the pcm substream instance 140 * snd_pcm_lib_preallocate_free_for_all - release all pre-allocated buffers on the pcm 141 * @pcm: the pcm instance [all …]
|
| /kernel/linux/linux-6.6/sound/soc/samsung/ |
| 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 …]
|
| /kernel/linux/linux-5.10/sound/soc/samsung/ |
| 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 …]
|
| /kernel/linux/linux-5.10/sound/soc/intel/boards/ |
| D | sof_sdw_hdmi.c | 31 struct hdmi_pcm *pcm; in sof_sdw_hdmi_init() local 33 pcm = devm_kzalloc(rtd->card->dev, sizeof(*pcm), GFP_KERNEL); in sof_sdw_hdmi_init() 34 if (!pcm) in sof_sdw_hdmi_init() 37 /* dai_link id is 1:1 mapped to the PCM device */ in sof_sdw_hdmi_init() 38 pcm->device = rtd->dai_link->id; in sof_sdw_hdmi_init() 39 pcm->codec_dai = dai; in sof_sdw_hdmi_init() 41 list_add_tail(&pcm->head, &ctx->hdmi_pcm_list); in sof_sdw_hdmi_init() 50 struct hdmi_pcm *pcm; in sof_sdw_hdmi_card_late_probe() local 61 pcm = list_first_entry(&ctx->hdmi_pcm_list, struct hdmi_pcm, in sof_sdw_hdmi_card_late_probe() 63 component = pcm->codec_dai->component; in sof_sdw_hdmi_card_late_probe() [all …]
|
| D | skl_hda_dsp_common.c | 11 #include <sound/pcm.h> 25 struct skl_hda_hdmi_pcm *pcm; in skl_hda_hdmi_add_pcm() local 28 pcm = devm_kzalloc(card->dev, sizeof(*pcm), GFP_KERNEL); in skl_hda_hdmi_add_pcm() 29 if (!pcm) in skl_hda_hdmi_add_pcm() 34 pcm->codec_dai = snd_soc_card_get_codec_dai(card, dai_name); in skl_hda_hdmi_add_pcm() 35 if (!pcm->codec_dai) in skl_hda_hdmi_add_pcm() 38 pcm->device = device; in skl_hda_hdmi_add_pcm() 39 list_add_tail(&pcm->head, &ctx->hdmi_pcm_list); in skl_hda_hdmi_add_pcm() 141 struct skl_hda_hdmi_pcm *pcm; in skl_hda_hdmi_jack_init() local 148 list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) { in skl_hda_hdmi_jack_init() [all …]
|
| /kernel/linux/linux-6.6/Documentation/sound/designs/ |
| 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 …]
|
| 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 …]
|
| 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 …]
|
| /kernel/linux/linux-5.10/Documentation/sound/designs/ |
| 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 …]
|
| 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 …]
|
| 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 …]
|
| /kernel/linux/linux-5.10/sound/soc/sof/ |
| D | pcm.c | 10 // PCM Layer, interface between ALSA and IPC. 51 dev_err(scomp->dev, "error: got wrong reply for PCM %d\n", in sof_pcm_dsp_params() 52 spcm->pcm.pcm_id); in sof_pcm_dsp_params() 58 * sof pcm period elapse work 70 * sof pcm period elapse, this could be called at irq thread context. 89 * when the PCM is done draining or xrun happened, a STOP IPC will in snd_sof_pcm_period_elapsed() 127 struct sof_ipc_pcm_params pcm; in sof_pcm_hw_params() local 149 dev_dbg(component->dev, "pcm: hw params stream %d dir %d\n", in sof_pcm_hw_params() 150 spcm->pcm.pcm_id, substream->stream); in sof_pcm_hw_params() 152 memset(&pcm, 0, sizeof(pcm)); in sof_pcm_hw_params() [all …]
|
| /kernel/linux/linux-5.10/sound/pci/ac97/ |
| D | ac97_pcm.c | 18 #include <sound/pcm.h> 26 * PCM support 144 static unsigned char get_slot_reg(struct ac97_pcm *pcm, unsigned short cidx, in get_slot_reg() argument 151 if (pcm->spdif) in get_slot_reg() 153 if (pcm->stream == SNDRV_PCM_STREAM_PLAYBACK) in get_slot_reg() 154 return rate_reg_tables[dbl][pcm->r[dbl].rate_table[cidx]][slot - 3]; in get_slot_reg() 393 static unsigned int get_rates(struct ac97_pcm *pcm, unsigned int cidx, unsigned short slots, int db… in get_rates() argument 402 reg = get_slot_reg(pcm, cidx, i, dbl); in get_rates() 411 rates &= pcm->r[dbl].codec[cidx]->rates[idx]; in get_rates() 420 * snd_ac97_pcm_assign - assign AC97 slots to given PCM streams [all …]
|
| /kernel/linux/linux-6.6/sound/pci/ac97/ |
| D | ac97_pcm.c | 18 #include <sound/pcm.h> 26 * PCM support 144 static unsigned char get_slot_reg(struct ac97_pcm *pcm, unsigned short cidx, in get_slot_reg() argument 151 if (pcm->spdif) in get_slot_reg() 153 if (pcm->stream == SNDRV_PCM_STREAM_PLAYBACK) in get_slot_reg() 154 return rate_reg_tables[dbl][pcm->r[dbl].rate_table[cidx]][slot - 3]; in get_slot_reg() 393 static unsigned int get_rates(struct ac97_pcm *pcm, unsigned int cidx, unsigned short slots, int db… in get_rates() argument 402 reg = get_slot_reg(pcm, cidx, i, dbl); in get_rates() 411 rates &= pcm->r[dbl].codec[cidx]->rates[idx]; in get_rates() 420 * snd_ac97_pcm_assign - assign AC97 slots to given PCM streams [all …]
|
| /kernel/linux/linux-6.6/sound/soc/codecs/ |
| D | hdac_hdmi.c | 147 struct hdac_hdmi_pcm *pcm; in hdac_hdmi_get_pcm_from_cvt() local 149 list_for_each_entry(pcm, &hdmi->pcm_list, head) { in hdac_hdmi_get_pcm_from_cvt() 150 if (pcm->cvt == cvt) in hdac_hdmi_get_pcm_from_cvt() 151 return pcm; in hdac_hdmi_get_pcm_from_cvt() 157 static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm, in hdac_hdmi_jack_report() argument 166 * for the first time where same PCM is attached to multiple in hdac_hdmi_jack_report() 169 if (pcm->jack_event == 0) { in hdac_hdmi_jack_report() 171 "jack report for pcm=%d\n", in hdac_hdmi_jack_report() 172 pcm->pcm_id); in hdac_hdmi_jack_report() 173 snd_soc_jack_report(pcm->jack, SND_JACK_AVOUT, in hdac_hdmi_jack_report() [all …]
|
| /kernel/linux/linux-5.10/sound/soc/codecs/ |
| D | hdac_hdmi.c | 147 struct hdac_hdmi_pcm *pcm; in hdac_hdmi_get_pcm_from_cvt() local 149 list_for_each_entry(pcm, &hdmi->pcm_list, head) { in hdac_hdmi_get_pcm_from_cvt() 150 if (pcm->cvt == cvt) in hdac_hdmi_get_pcm_from_cvt() 151 return pcm; in hdac_hdmi_get_pcm_from_cvt() 157 static void hdac_hdmi_jack_report(struct hdac_hdmi_pcm *pcm, in hdac_hdmi_jack_report() argument 166 * for the first time where same PCM is attached to multiple in hdac_hdmi_jack_report() 169 if (pcm->jack_event == 0) { in hdac_hdmi_jack_report() 171 "jack report for pcm=%d\n", in hdac_hdmi_jack_report() 172 pcm->pcm_id); in hdac_hdmi_jack_report() 173 snd_soc_jack_report(pcm->jack, SND_JACK_AVOUT, in hdac_hdmi_jack_report() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/intel/boards/ |
| D | skl_hda_dsp_common.c | 11 #include <sound/pcm.h> 25 struct skl_hda_hdmi_pcm *pcm; in skl_hda_hdmi_add_pcm() local 28 pcm = devm_kzalloc(card->dev, sizeof(*pcm), GFP_KERNEL); in skl_hda_hdmi_add_pcm() 29 if (!pcm) in skl_hda_hdmi_add_pcm() 34 pcm->codec_dai = snd_soc_card_get_codec_dai(card, dai_name); in skl_hda_hdmi_add_pcm() 35 if (!pcm->codec_dai) in skl_hda_hdmi_add_pcm() 38 pcm->device = device; in skl_hda_hdmi_add_pcm() 39 list_add_tail(&pcm->head, &ctx->hdmi_pcm_list); in skl_hda_hdmi_add_pcm() 141 struct skl_hda_hdmi_pcm *pcm; in skl_hda_hdmi_jack_init() local 148 list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) { in skl_hda_hdmi_jack_init() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/sof/ |
| D | ipc3-pcm.c | 49 struct sof_ipc_pcm_params pcm; in sof_ipc3_pcm_hw_params() local 57 memset(&pcm, 0, sizeof(pcm)); in sof_ipc3_pcm_hw_params() 60 pcm.params.buffer.pages = PFN_UP(runtime->dma_bytes); in sof_ipc3_pcm_hw_params() 62 /* set IPC PCM parameters */ in sof_ipc3_pcm_hw_params() 63 pcm.hdr.size = sizeof(pcm); in sof_ipc3_pcm_hw_params() 64 pcm.hdr.cmd = SOF_IPC_GLB_STREAM_MSG | SOF_IPC_STREAM_PCM_PARAMS; in sof_ipc3_pcm_hw_params() 65 pcm.comp_id = spcm->stream[substream->stream].comp_id; in sof_ipc3_pcm_hw_params() 66 pcm.params.hdr.size = sizeof(pcm.params); in sof_ipc3_pcm_hw_params() 67 pcm.params.buffer.phy_addr = spcm->stream[substream->stream].page_table.addr; in sof_ipc3_pcm_hw_params() 68 pcm.params.buffer.size = runtime->dma_bytes; in sof_ipc3_pcm_hw_params() [all …]
|