STRUCT RMI_FUNCTION_DESCRIPTOR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct rmi_function_descriptor(9) ✨

okay bestie, so this is from the Kernel API Manual and it's literally all about struct rmi_function_descriptor β€” the RMI function base addresses. yes we're doing kernel structs today, put your hair up, we're getting into it πŸ’…


🌸 NAME 🌸

struct rmi_function_descriptor β€” RMI function base addresses. that's the whole vibe. no cap.


πŸ¦‹ SYNOPSIS πŸ¦‹

struct rmi_function_descriptor {
    u16 query_base_addr;
    u16 command_base_addr;
    u16 control_base_addr;
    u16 data_base_addr;
    u8 interrupt_source_count;
    u8 function_number;
    u8 function_version;
 };

look at her. seven fields. perfectly balanced. main character struct honestly πŸ‘‘


πŸŽ€ Members πŸŽ€

so let's meet the cast, one by one, no skipping:

  • query_base_addr β€” the RMI Query base address. that's it, that's her job πŸ’–
  • command_base_addr β€” the RMI Command base address. the girl who takes your orders 🫢
  • control_base_addr β€” the RMI Control base address. lowkey the one running the whole operation ✨
  • data_base_addr β€” the RMI Data base address. where the actual info lives, iconic 🌈
  • interrupt_source_count β€” the number of irqs this RMI function needs. it's giving "how many alarms is this function setting" πŸ’€
  • function_number β€” the RMI function number. her ID, her little badge πŸŽ€
  • function_version β€” the RMI function version. so we know which era of her we're dealing with ⭐
ngl the two u8s at the end are just standing there being small and cute while the four u16s do all the heavy lifting. balance. periodt.

πŸ”₯ Description πŸ”₯

okay so here's the tea: this struct is used when iterating the Page Description Table. that's the whole use case, no secret bonus features, don't come for me πŸ™ˆ

and the reason those four address fields are 16-bit values instead of something baby-sized? because the addresses need to include the current page address. that's literally why. 16-bit so the page address fits in there too. slay πŸ”₯


πŸ‘‘ SEE ALSO πŸ‘‘

go read the kernel file ./include/linux/rmi.h first, bestie, then these iconic siblings:

  • struct rmi_2d_axis_alignment(9)
  • struct rmi_gpio_data(9)
  • struct rmi_f01_power_management(9)
  • struct rmi_device_platform_data_spi(9)
  • struct rmi_device_platform_data(9)
  • struct rmi_transport_dev(9)
  • struct rmi_transport_ops(9)
  • struct rmi_driver(9)
  • struct rmi_device(9)

a whole friend group honestly, they ate πŸ’œ


and that's the page!! sourced from ./include/linux, dated October 2026, and obviously it all lives under struct rmi_f...n_descriptor(9) because that's the star of the show. byeee, go read your structs πŸ§šβœ¨πŸ’–

πŸ“¦ where this page comes from