STRUCT K3_RINGACC(9)
β¨ struct k3_ringacc(9) β¨
okay so bestie, welcome to the Kernel API Manual π β today's main character is struct k3_ringacc, aka the Rings accelerator descriptor. yes it's a struct. yes it's iconic. let's get into it π
πΈ NAME πΈ
struct k3_ringacc β the Rings accelerator descriptor, fr fr π
π¦ SYNOPSIS π¦
struct k3_ringacc {
struct device *dev;
struct k3_ringacc_proxy_gcfg_regs __iomem *proxy_gcfg;
void __iomem *proxy_target_base;
u32 num_rings;
unsigned long *rings_inuse;
struct ti_sci_resource *rm_gp_range;
bool dma_ring_reset_quirk;
u32 num_proxies;
unsigned long *proxy_inuse;
struct k3_ring *rings;
struct list_head list;
struct mutex req_lock;
const struct ti_sci_handle *tisci;
const struct ti_sci_rm_ringacc_ops *tisci_ring_ops;
u32 tisci_dev_id;
const struct k3_ringacc_ops *ops;
bool dma_rings;
};
like, copy it exactly pls, don't be out here editing struct definitions π
π Members π
so each of these fields is doing its own lil job and honestly they all ate:
devβ pointer on RA device π«Άproxy_gcfgβ the RA proxy global config registers, lowkey the control room β¨proxy_target_baseβ RA proxy datapath region, where the actual traffic happens πnum_ringsβ number of ring in RA (yes, singular "ring", we don't gatekeep grammar) πrings_inuseβ bitfield for ring usage tracking, keeping receipts on who's using what πrm_gp_rangeβ general purpose rings range from tisci πdma_ring_reset_quirkβ DMA reset workaround enable, a little "we know, we know" flag πnum_proxiesβ number of RA proxies βproxy_inuseβ bitfield for proxy usage tracking, same energy asrings_inusebut for proxies πringsβ array of rings descriptors (struct k3_ring), the whole squad πlistβ list of RAs in the system, everyone linked up π¦req_lockβ protect rings allocation, do NOT skip the lock bestie πtisciβ pointer ti-sci handle π§tisci_ring_opsβ ti-sci rings ops π«tisci_dev_idβ ti-sci device id πopsβ SoC specific ringacc operation, the per-SoC special sauce π₯dma_ringsβ indicate DMA ring (dual ring within BCDMA/PKTDMA), no cap it's a dual ring π
π SEE ALSO π
go read the kernel file ./drivers/soc/ti/k3-ringacc.c and also these fellow icons:
struct k3_ring_rt_regs(9)struct k3_ring_fifo_regs(9)struct k3_ringacc_proxy_gcfg_regs(9)struct k3_ringacc_proxy_target_regs(9)struct k3_ring_state(9)struct k3_ring(9)struct k3_ringacc_soc_data(9)
ngl, the whole family lives in ./drivers/soc/ti and they're all worth a read π«Ά
okay that's the page!! mwah π this came from ./drivers/soc/ti, dated October 2026, and it's still serving struct k3_ringacc(9) realness. periodt π
β¨π
π¦ 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