rmi_set_page(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ rmi_set_page(9) ✨

okay so bestie, welcome to the kernel API manual πŸ’– this one's a little function with a big job β€” let's get into it 🫢


πŸ’… NAME πŸ’…

rmi_set_page β€” set the RMI page, that's literally it, that's the whole vibe πŸŽ€


✨ SYNOPSIS ✨

int rmi_set_page (struct hid_device *hdev , u8 page );

🌸 ARGUMENTS 🌸

  • hdev β€” the pointer to the hid_device struct πŸ‘‘ you know, the usual suspect
  • page β€” the new page address, i.e. where we're headed πŸ¦‹

πŸ’œ DESCRIPTION πŸ’œ

okay so here's the situation ngl 😭 RMI devices have 16-bit addressing, but some of the physical implementations (like SMBus) only have 8-bit addressing. tragic, I know πŸ’€

so RMI implements a page address at 0xff of every page, so we can reliably page addresses every 256 registers ✨ like, that's the whole trick, and it ate πŸ”₯

⚠️ bestie listen to me: the page_mutex lock must be held when this function is entered. no cap, don't skip this πŸ’…

Returns zero on success, non-zero on failure 🌈 (iconic return value behaviour, honestly)


πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/hid/hid-rmi.c
  • struct rmi_data(9)

πŸŽ€ the cute sign-off πŸŽ€

this little page lives over in ./drivers/hid, dated October 2026, and it's part of the Kernel API Manual β€” periodt πŸ’– go forth and page responsibly, bestie 🧚⭐

rmi_set_page(9) … rmi_set_page(9) β€” yes it says it twice, it's giving symmetry πŸ’…

πŸ“¦ where this page comes from