/usr/src/linux-headers-5.15.0-190/include/sound
NameSizeModeActions
ac97/-0755rm
sof/-0755rm
ac97_codec.h160440644editdlrm
aci.h24580644editdlrm
ad1816a.h48430644editdlrm
ad1843.h15160644editdlrm
adau1373.h7060644editdlrm
ak4xxx-adda.h27240644editdlrm
ak4113.h104610644editdlrm
ak4114.h97730644editdlrm
ak4117.h85420644editdlrm
ak4531_codec.h24780644editdlrm
ak4641.h4760644editdlrm
alc5623.h5360644editdlrm
asequencer.h29750644editdlrm
asound.h5900644editdlrm
asoundef.h164030644editdlrm
compress_driver.h79860644editdlrm
control.h99580644editdlrm
core.h158950644editdlrm
cs35l33.h8880644editdlrm
cs35l34.h7410644editdlrm
cs35l35.h22670644editdlrm
cs35l36.h7720644editdlrm
cs35l41.h308890644editdlrm
cs42l42.h351490644editdlrm
cs42l52.h5920644editdlrm
cs42l56.h10460644editdlrm
cs42l73.h3610644editdlrm
cs4231-regs.h77850644editdlrm
cs4271.h9610644editdlrm
cs8403.h81380644editdlrm
cs8427.h99540644editdlrm
da7213.h10320644editdlrm
da7218.h24680644editdlrm
da7219-aad.h22630644editdlrm
da7219.h9980644editdlrm
da9055.h7070644editdlrm
designware_i2s.h16310644editdlrm
dmaengine_pcm.h69130644editdlrm
emu10k1.h907220644editdlrm
emu10k1_synth.h6930644editdlrm
emu8000.h33330644editdlrm
emu8000_reg.h97670644editdlrm
emux_legacy.h48110644editdlrm
emux_synth.h69480644editdlrm
es1688.h29230644editdlrm
graph_card.h2710644editdlrm
gus.h201190644editdlrm
hdaudio.h215380644editdlrm
hdaudio_ext.h56800644editdlrm
hda_chmap.h26600644editdlrm
hda_codec.h176690644editdlrm
hda_component.h20850644editdlrm
hda_hwdep.h7360644editdlrm
hda_i915.h5890644editdlrm
hda_register.h106550644editdlrm
hda_regmap.h69340644editdlrm
hda_verbs.h172960644editdlrm
hdmi-codec.h30110644editdlrm
hwdep.h19250644editdlrm
i2c.h28570644editdlrm
info.h80530644editdlrm
initval.h24840644editdlrm
intel-dsp-config.h8690644editdlrm
intel-nhlt.h28510644editdlrm
jack.h31720644editdlrm
l3.h5240644editdlrm
madera-pdata.h19960644editdlrm
max9768.h7290644editdlrm
max98088.h10740644editdlrm
max98090.h5340644editdlrm
max98095.h13570644editdlrm
memalloc.h26420644editdlrm
minors.h37380644editdlrm
mixer_oss.h17730644editdlrm
mpu401.h39050644editdlrm
omap-hdmi-audio.h9710644editdlrm
opl3.h119090644editdlrm
opl4.h4590644editdlrm
pcm-indirect.h51590644editdlrm
pcm.h536840644editdlrm
pcm_drm_eld.h1830644editdlrm
pcm_iec958.h5970644editdlrm
pcm_oss.h20630644editdlrm
pcm_params.h88640644editdlrm
pt2258.h5130644editdlrm
pxa2xx-lib.h21900644editdlrm
rawmidi.h58810644editdlrm
rt286.h3140644editdlrm
rt298.h3730644editdlrm
rt1015.h2830644editdlrm
rt5514.h3990644editdlrm
rt5659.h8800644editdlrm
rt5660.h5780644editdlrm
rt5663.h4760644editdlrm
rt5665.h7610644editdlrm
rt5668.h6460644editdlrm
rt5682.h9010644editdlrm
s3c24xx_uda134x.h2290644editdlrm
sb.h105500644editdlrm
sb16_csp.h21000644editdlrm
seq_device.h21650644editdlrm
seq_kernel.h33780644editdlrm
seq_midi_emul.h67570644editdlrm
seq_midi_event.h13560644editdlrm
seq_oss.h22640644editdlrm
seq_oss_legacy.h3600644editdlrm
seq_virmidi.h21230644editdlrm
sh_dac_audio.h4410644editdlrm
sh_fsi.h6930644editdlrm
simple_card.h5290644editdlrm
simple_card_utils.h83510644editdlrm
snd_wavefront.h56200644editdlrm
soc-acpi-intel-match.h20740644editdlrm
soc-acpi.h56370644editdlrm
soc-card.h29440644editdlrm
soc-component.h193870644editdlrm
soc-dai.h199570644editdlrm
soc-dapm.h329570644editdlrm
soc-dpcm.h55230644editdlrm
soc-jack.h38220644editdlrm
soc-link.h11720644editdlrm
soc-topology.h58350644editdlrm
soc.h479190644editdlrm
sof.h25960644editdlrm
soundfont.h39030644editdlrm
spear_dma.h3500644editdlrm
spear_spdif.h3450644editdlrm
sta32x.h10150644editdlrm
sta350.h14740644editdlrm
tas2552-plat.h2830644editdlrm
tas5086.h2100644editdlrm
tea6330t.h4680644editdlrm
timer.h51090644editdlrm
tlv.h16270644editdlrm
tlv320aic3x.h17770644editdlrm
tlv320aic32x4.h13200644editdlrm
tlv320dac33-plat.h5740644editdlrm
tpa6130a2-plat.h2910644editdlrm
uda134x.h4510644editdlrm
uda1380.h3350644editdlrm
util_mem.h16230644editdlrm
vx_core.h150550644editdlrm
wavefront.h185180644editdlrm
wm0010.h4660644editdlrm
wm1250-ev1.h5100644editdlrm
wm2000.h4790644editdlrm
wm2200.h13530644editdlrm
wm5100.h11290644editdlrm
wm8903.h153770644editdlrm
wm8904.h73890644editdlrm
wm8955.h4420644editdlrm
wm8960.h8880644editdlrm
wm8962.h16940644editdlrm
wm8993.h10760644editdlrm
wm8996.h12890644editdlrm
wm9081.h5150644editdlrm
wm9090.h6340644editdlrm
wss.h79490644editdlrm
Edit: /usr/src/linux-headers-5.15.0-190/include/sound/pcm_params.h (8864B)
/* SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef __SOUND_PCM_PARAMS_H #define __SOUND_PCM_PARAMS_H /* * PCM params helpers * Copyright (c) by Abramo Bagnara */ #include int snd_pcm_hw_param_first(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir); int snd_pcm_hw_param_last(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir); int snd_pcm_hw_param_value(const struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir); #define SNDRV_MASK_BITS 64 /* we use so far 64bits only */ #define SNDRV_MASK_SIZE (SNDRV_MASK_BITS / 32) #define MASK_OFS(i) ((i) >> 5) #define MASK_BIT(i) (1U << ((i) & 31)) static inline void snd_mask_none(struct snd_mask *mask) { memset(mask, 0, sizeof(*mask)); } static inline void snd_mask_any(struct snd_mask *mask) { memset(mask, 0xff, SNDRV_MASK_SIZE * sizeof(u_int32_t)); } static inline int snd_mask_empty(const struct snd_mask *mask) { int i; for (i = 0; i < SNDRV_MASK_SIZE; i++) if (mask->bits[i]) return 0; return 1; } static inline unsigned int snd_mask_min(const struct snd_mask *mask) { int i; for (i = 0; i < SNDRV_MASK_SIZE; i++) { if (mask->bits[i]) return __ffs(mask->bits[i]) + (i << 5); } return 0; } static inline unsigned int snd_mask_max(const struct snd_mask *mask) { int i; for (i = SNDRV_MASK_SIZE - 1; i >= 0; i--) { if (mask->bits[i]) return __fls(mask->bits[i]) + (i << 5); } return 0; } static inline void snd_mask_set(struct snd_mask *mask, unsigned int val) { mask->bits[MASK_OFS(val)] |= MASK_BIT(val); } /* Most of drivers need only this one */ static inline void snd_mask_set_format(struct snd_mask *mask, snd_pcm_format_t format) { snd_mask_set(mask, (__force unsigned int)format); } static inline void snd_mask_reset(struct snd_mask *mask, unsigned int val) { mask->bits[MASK_OFS(val)] &= ~MASK_BIT(val); } static inline void snd_mask_set_range(struct snd_mask *mask, unsigned int from, unsigned int to) { unsigned int i; for (i = from; i <= to; i++) mask->bits[MASK_OFS(i)] |= MASK_BIT(i); } static inline void snd_mask_reset_range(struct snd_mask *mask, unsigned int from, unsigned int to) { unsigned int i; for (i = from; i <= to; i++) mask->bits[MASK_OFS(i)] &= ~MASK_BIT(i); } static inline void snd_mask_leave(struct snd_mask *mask, unsigned int val) { unsigned int v; v = mask->bits[MASK_OFS(val)] & MASK_BIT(val); snd_mask_none(mask); mask->bits[MASK_OFS(val)] = v; } static inline void snd_mask_intersect(struct snd_mask *mask, const struct snd_mask *v) { int i; for (i = 0; i < SNDRV_MASK_SIZE; i++) mask->bits[i] &= v->bits[i]; } static inline int snd_mask_eq(const struct snd_mask *mask, const struct snd_mask *v) { return ! memcmp(mask, v, SNDRV_MASK_SIZE * sizeof(u_int32_t)); } static inline void snd_mask_copy(struct snd_mask *mask, const struct snd_mask *v) { *mask = *v; } static inline int snd_mask_test(const struct snd_mask *mask, unsigned int val) { return mask->bits[MASK_OFS(val)] & MASK_BIT(val); } /* Most of drivers need only this one */ static inline int snd_mask_test_format(const struct snd_mask *mask, snd_pcm_format_t format) { return snd_mask_test(mask, (__force unsigned int)format); } static inline int snd_mask_single(const struct snd_mask *mask) { int i, c = 0; for (i = 0; i < SNDRV_MASK_SIZE; i++) { if (! mask->bits[i]) continue; if (mask->bits[i] & (mask->bits[i] - 1)) return 0; if (c) return 0; c++; } return 1; } static inline int snd_mask_refine(struct snd_mask *mask, const struct snd_mask *v) { struct snd_mask old; snd_mask_copy(&old, mask); snd_mask_intersect(mask, v); if (snd_mask_empty(mask)) return -EINVAL; return !snd_mask_eq(mask, &old); } static inline int snd_mask_refine_first(struct snd_mask *mask) { if (snd_mask_single(mask)) return 0; snd_mask_leave(mask, snd_mask_min(mask)); return 1; } static inline int snd_mask_refine_last(struct snd_mask *mask) { if (snd_mask_single(mask)) return 0; snd_mask_leave(mask, snd_mask_max(mask)); return 1; } static inline int snd_mask_refine_min(struct snd_mask *mask, unsigned int val) { if (snd_mask_min(mask) >= val) return 0; snd_mask_reset_range(mask, 0, val - 1); if (snd_mask_empty(mask)) return -EINVAL; return 1; } static inline int snd_mask_refine_max(struct snd_mask *mask, unsigned int val) { if (snd_mask_max(mask) <= val) return 0; snd_mask_reset_range(mask, val + 1, SNDRV_MASK_BITS); if (snd_mask_empty(mask)) return -EINVAL; return 1; } static inline int snd_mask_refine_set(struct snd_mask *mask, unsigned int val) { int changed; changed = !snd_mask_single(mask); snd_mask_leave(mask, val); if (snd_mask_empty(mask)) return -EINVAL; return changed; } static inline int snd_mask_value(const struct snd_mask *mask) { return snd_mask_min(mask); } static inline void snd_interval_any(struct snd_interval *i) { i->min = 0; i->openmin = 0; i->max = UINT_MAX; i->openmax = 0; i->integer = 0; i->empty = 0; } static inline void snd_interval_none(struct snd_interval *i) { i->empty = 1; } static inline int snd_interval_checkempty(const struct snd_interval *i) { return (i->min > i->max || (i->min == i->max && (i->openmin || i->openmax))); } static inline int snd_interval_empty(const struct snd_interval *i) { return i->empty; } static inline int snd_interval_single(const struct snd_interval *i) { return (i->min == i->max || (i->min + 1 == i->max && (i->openmin || i->openmax))); } static inline int snd_interval_value(const struct snd_interval *i) { if (i->openmin && !i->openmax) return i->max; return i->min; } static inline int snd_interval_min(const struct snd_interval *i) { return i->min; } static inline int snd_interval_max(const struct snd_interval *i) { unsigned int v; v = i->max; if (i->openmax) v--; return v; } static inline int snd_interval_test(const struct snd_interval *i, unsigned int val) { return !((i->min > val || (i->min == val && i->openmin) || i->max < val || (i->max == val && i->openmax))); } static inline void snd_interval_copy(struct snd_interval *d, const struct snd_interval *s) { *d = *s; } static inline int snd_interval_setinteger(struct snd_interval *i) { if (i->integer) return 0; if (i->openmin && i->openmax && i->min == i->max) return -EINVAL; i->integer = 1; return 1; } static inline int snd_interval_eq(const struct snd_interval *i1, const struct snd_interval *i2) { if (i1->empty) return i2->empty; if (i2->empty) return i1->empty; return i1->min == i2->min && i1->openmin == i2->openmin && i1->max == i2->max && i1->openmax == i2->openmax; } /** * params_access - get the access type from the hw params * @p: hw params */ static inline snd_pcm_access_t params_access(const struct snd_pcm_hw_params *p) { return (__force snd_pcm_access_t)snd_mask_min(hw_param_mask_c(p, SNDRV_PCM_HW_PARAM_ACCESS)); } /** * params_format - get the sample format from the hw params * @p: hw params */ static inline snd_pcm_format_t params_format(const struct snd_pcm_hw_params *p) { return (__force snd_pcm_format_t)snd_mask_min(hw_param_mask_c(p, SNDRV_PCM_HW_PARAM_FORMAT)); } /** * params_subformat - get the sample subformat from the hw params * @p: hw params */ static inline snd_pcm_subformat_t params_subformat(const struct snd_pcm_hw_params *p) { return (__force snd_pcm_subformat_t)snd_mask_min(hw_param_mask_c(p, SNDRV_PCM_HW_PARAM_SUBFORMAT)); } /** * params_period_bytes - get the period size (in bytes) from the hw params * @p: hw params */ static inline unsigned int params_period_bytes(const struct snd_pcm_hw_params *p) { return hw_param_interval_c(p, SNDRV_PCM_HW_PARAM_PERIOD_BYTES)->min; } /** * params_width - get the number of bits of the sample format from the hw params * @p: hw params * * This function returns the number of bits per sample that the selected sample * format of the hw params has. */ static inline int params_width(const struct snd_pcm_hw_params *p) { return snd_pcm_format_width(params_format(p)); } /* * params_physical_width - get the storage size of the sample format from the hw params * @p: hw params * * This functions returns the number of bits per sample that the selected sample * format of the hw params takes up in memory. This will be equal or larger than * params_width(). */ static inline int params_physical_width(const struct snd_pcm_hw_params *p) { return snd_pcm_format_physical_width(params_format(p)); } static inline void params_set_format(struct snd_pcm_hw_params *p, snd_pcm_format_t fmt) { snd_mask_set_format(hw_param_mask(p, SNDRV_PCM_HW_PARAM_FORMAT), fmt); } #endif /* __SOUND_PCM_PARAMS_H */