STRUCT STM32_SPDIFRX_DATA(9)
π
struct stm32_spdifrx_data(9) β the Kernel API Manual's newest main character β¨
Okay bestie, so the Kernel API Manual literally has a whole entry for this one struct and it's giving "backstage pass to the SPDIFRX" energy. Let's get into it, no cap.
πΈ NAME πΈ
struct stm32_spdifrx_data β the private data of SPDIFRX. Like, it's the struct's personal diary, iykyk. π
π SYNOPSIS π
Here's the exact shape of it, copied with love and zero typos:
struct stm32_spdifrx_data {
struct platform_device *pdev;
void __iomem *base;
struct regmap *regmap;
const struct regmap_config *regmap_conf;
struct completion cs_completion;
struct clk *kclk;
struct snd_dmaengine_dai_dma_data dma_params;
struct snd_pcm_substream *substream;
struct snd_dma_buffer *dmab;
struct dma_chan *ctrl_chan;
struct dma_async_tx_descriptor *desc;
struct dma_slave_config slave_config;
dma_addr_t phys_addr;
spinlock_t lock;
spinlock_t irq_lock;
unsigned char cs[SPDIFRX_CS_BYTES_NB];
unsigned char ub[SPDIFRX_UB_BYTES_NB];
int irq;
int refcount;
};
β¨ Members β¨
Not me listing every single one because bestie, we do not skip. π«Ά
pdevβ the device data pointer, like, here's who we're dealing with πββοΈbaseβ the mmio register base virtual address, aka where the vibes live in memoryregmapβ SPDIFRX register map pointer, iconicregmap_confβ SPDIFRX register map configuration pointer, the config bestiecs_completionβ channel status retrieving completion, the "wait for itβ¦" moment πkclkβ the kernel clock feeding the SPDIFRX clock generator, slay β°dma_paramsβ dma configuration data for the rx channel, literally the rx channel's whole setupsubstreamβ PCM substream data pointer, main character energydmabβ dma buffer info pointer, the buffer's info eractrl_chanβ dma channel for S/PDIF control bits, control bits only, periodtdescβ dma async transaction descriptor, the receipt for the async transaction π§Ύslave_configβ dma slave channel runtime config pointer, runtime config realnessphys_addrβ SPDIFRX registers physical base address, the physical address bestie, fr frlockβ synchronization enabling lock, the lock that enables synchronization, we love a specific lock πirq_lockβ prevent race condition with IRQ on stream state, like, no racing on the stream state πcsβ channel status buffer, buffering the channel statusubβ user data buffer, buffering the user data, twin behavior withcsπirqβ SPDIFRX interrupt line, the interrupt line itselfrefcountβ keep count of opened DMA channels, the literal keeper of the count π
π SEE ALSO π
Bestie you literally have to see also this kernel file:
- Kernel file
./sound/soc/stm/stm32_spdifrx.c
So that's the whole thing. This masterpiece of a manpage came from ./sound/soc/stm and is dated October 2026 β write it in your notes bestie, that's the tea. π¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms