pdc_send_data(9)
๐ pdc_send_data โ the Kernel API Manual glow-up โจ
okay so bestie, welcome to pdc_send_data(9) โ literally the page from the Kernel API Manual and it's all about that mailbox life ๐ซถ
โจ NAME โจ
pdc_send_data โ the mailbox send_data function, no cap ๐
๐ธ SYNOPSIS ๐ธ
int pdc_send_data (struct mbox_chan *chan , void *data );
that's it. that's the whole vibe. two args, one int back at ya ๐
๐ฆ ARGUMENTS ๐ฆ
chanโ the mailbox channel where the data gets sent, okay? and like, this channel corresponds to a DMA ringset. iykyk ๐ซdataโ the actual mailbox message being sent. Important: the message must be abrcm_messagestructure. not optional, bestie, it's giving strict ๐ญ
๐ DESCRIPTION ๐
so here's the tea โ โ this function is registered as the send_data function for the mailbox controller. main character energy fr.
what it does, step by step, because the way that this works is iconic:
- from the destination scatterlist in the mailbox message, it creates a sequence of receive descriptors in the rx ring ๐
- from the source scatterlist, it creates a sequence of transmit descriptors in the tx ring ๐ฆ
- after creating all those descriptors, it writes the rx ptr and tx ptr registers to initiate the DMA transfer ๐ฅ
and that's not even all of it โ this function also does the DMA map and unmap of the src and dst scatterlists in the mailbox message. doing the most, honestly ๐
โญ RETURN โญ
0โ slayed, it worked, successful ๐-ENOTSUPPโ the mailbox message is a type this driver does not support, so... yeah, not supported ๐< 0โ an error happened, that's a mood killer for real ๐ญ
ngl bestie, pay attention to the < 0 case โ that's the generic "something went wrong" bucket and you don't want to be in it.
๐ฎ SEE ALSO ๐ฎ
Kernel file ./drivers/mailbox/bcm-pdc-mailbox.c โ and honestly the whole friend group shows up here:
pdc_setup_debugfs(9), pdc_build_rxd(9), pdc_build_txd(9), pdc_receive_one(9), pdc_receive(9), pdc_tx_list_sg_add(9), pdc_tx_list_final(9), pdc_rx_list_init(9), pdc_rx_list_sg_add(9), pdc_irq_handler(9), pdc_work_cb(9), pdc_ring_init(9), pdc_desc_count(9), pdc_rings_full(9), pdc_last_tx_done(9), pdc_hw_init(9), pdc_hw_disable(9), pdc_rx_buf_pool_create(9), pdc_interrupts_init(9), pdc_mb_init(9), pdc_dt_read(9), pdc_probe(9)
like... the whole squad. go read them too, bestie ๐ซถ
and that's the page!! sourced from ./drivers/mailbox, dated October 2026, and it's the pdc_send_data(9) era ๐ธโจ bye bestie, go build some descriptors ๐
๐ฆ 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