rio_dma_prep_xfer(9)
rio_dma_prep_xfer(9) from the Kernel API Manual β bestie, we're doing RapidIO DMA setup and it's giving βsmall function, big callback energyβ π
β¨
π NAME π
rio_dma_prep_xfer β the RapidIO specific wrapper for the device_prep_slave_sg callback defined by DMAENGINE. no cap, that's literally the whole name vibe π«Ά
π¦ SYNOPSIS π¦
struct dma_async_tx_descriptor * rio_dma_prep_xfer (struct dma_chan
*dchan , u16 destid , struct rio_dma_data *data , enum
dma_transfer_direction direction , unsigned long flags );
π ARGUMENTS π
okay so here's the cast of characters, and yes every one matters:
dchanβ the DMA channel to configure. main character channel energy β¨destidβ target RapidIO device destination ID. like the address of the bestie you're sending to πdataβ RIO specific data descriptor. the whole lil data package πdirectionβ DMA data transfer direction (TOorFROMthe device). pick a lane, bestie πflagsβ dmaengine defined flags. the little switches and knobs ποΈ
β¨ DESCRIPTION β¨
So this function initializes a RapidIO capable DMA channel for the specified data transfer. It uses the DMA channel private extension to pass information related to the remote target RIO device. That's it, that's the tea βπ
π RETURN π
Returns a pointer to DMA transaction descriptor if successful. If it fails, you get an error-valued pointer or NULL. so: success = descriptor pointer, failure = error-valued pointer or NULL, pls check before you celebrate πβ¨
π SEE ALSO π
Kernel file: ./drivers/rapidio/rio.c
The whole RapidIO friend group, all invited to the group chat:
rio_local_get_device_id(9)rio_query_mport(9)rio_alloc_net(9)rio_local_set_device_id(9)rio_add_device(9)rio_request_inb_mbox(9)rio_release_inb_mbox(9)rio_request_outb_mbox(9)rio_release_outb_mbox(9)rio_setup_inb_dbell(9)rio_request_inb_dbell(9)rio_release_inb_dbell(9)rio_request_outb_dbell(9)rio_release_outb_dbell(9)rio_add_mport_pw_handler(9)rio_del_mport_pw_handler(9)rio_request_inb_pwrite(9)rio_release_inb_pwrite(9)rio_pw_enable(9)rio_map_inb_region(9)rio_unmap_inb_region(9)rio_map_outb_region(9)rio_unmap_outb_region(9)rio_mport_get_physefb(9)rio_get_comptag(9)rio_set_port_lockout(9)rio_enable_rx_tx_port(9)rio_chk_dev_route(9)rio_mport_chk_dev_access(9)rio_chk_dev_access(9)rio_get_input_status(9)rio_clr_err_stopped(9)rio_inb_pwrite_handler(9)rio_mport_get_efb(9)rio_mport_get_feature(9)rio_std_route_add_entry(9)rio_std_route_get_entry(9)rio_std_route_clr_table(9)rio_lock_device(9)rio_unlock_device(9)rio_route_add_entry(9)rio_route_get_entry(9)rio_route_clr_table(9)rio_request_mport_dma(9)rio_release_dma(9)rio_register_scan(9)rio_mport_scan(9)
π sign-off: source/version is ./drivers/rapidio, date is October 2026. bye bestie, go prep that xfer π«Άπ
π¦ 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