STRUCT STEDMA40_PLATFORM_DATA(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– struct stedma40_platform_data(9) ๐Ÿ’–

okay bestie, welcome to the Kernel API Manual โœจ โ€” this is the page for struct stedma40_platform_data, no cap. It's the configuration struct for the dma device, and honestly it's giving "small struct, big responsibilities" energy ๐Ÿ‘‘


๐ŸŒธ NAME ๐ŸŒธ

struct stedma40_platform_data โ€” Configuration struct for the dma device.


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

struct stedma40_platform_data {
    int disabled_channels[STEDMA40_MAX_PHYS];
    int *soft_lli_chans;
    int num_of_soft_lli_chans;
    bool use_esram_lcla;
    int num_of_memcpy_chans;
    int num_of_phy_chans;
 };

like, look at her. six fields. main character struct fr fr ๐Ÿ’…


๐Ÿฆ‹ Members ๐Ÿฆ‹

  • disabled_channels โ€” a vector, ending with -1, that marks physical channels that are, for different reasons, not available for the driver. so basically the "do not touch, she's busy" list ๐Ÿ™ˆ and yeah, it's terminated by -1, don't forget the -1.
  • soft_lli_chans โ€” a vector that marks which physical channels will use LLI by SW, which avoids a HW bug that exists in some versions of the controller. lowkey iconic workaround โœจ but heads up: SoftLLI introduces relink overhead that could impact performance for certain use cases. so, tradeoffs, bestie ๐Ÿ˜ญ
  • num_of_soft_lli_chans โ€” the number of channels that needs to be configured to use SoftLLI. count them. accurately. ๐Ÿงฎ
  • use_esram_lcla โ€” flag for mapping the lcla into esram region. a flag! it's a flag! ๐Ÿšฉ
  • num_of_memcpy_chans โ€” the number of channels reserved for memcpy. reserved! like a VIP section ๐ŸŽŸ๏ธ
  • num_of_phy_chans โ€” the number of physical channels implemented in HW. 0 means reading the number of channels from DMA HW, but โ€” and this is the important part, don't skip it โ€” this is only valid for 'multiple of 4' channels, like 8. so 0 is not a free-for-all, it's a whole vibe check on your channel count โญ
ngl the 0 case and the 'multiple of 4' thing are the bits people mess up, so likeโ€ฆ read them twice bestie ๐Ÿซถ

๐ŸŒˆ SEE ALSO ๐ŸŒˆ

go read the Kernel file ./drivers/dma/ste_dma40.c โ€” that's the mothership ๐Ÿš€ โ€” plus these iconique friends:

  • enum d40_command(9)
  • struct d40_interrupt_lookup(9)
  • struct d40_reg_val(9)
  • struct d40_lli_pool(9)
  • struct d40_desc(9)
  • struct d40_lcla_pool(9)
  • struct d40_phy_res(9)
  • struct d40_chan(9)
  • struct d40_gen_dmac(9)
  • struct d40_base(9)

a whole friend group, honestly ๐Ÿ’œ


okay that's the page!! this one lives in ./drivers/dma, it's dated October 2026, and it's literally struct stedma40_platform_data(9) โ€” go forth and configure your dma device responsibly, bestie ๐Ÿ“โœจ๐Ÿ’–

๐Ÿ“ฆ where this page comes from