sdw_nread_no_pm(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– sdw_nread_no_pm(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” this one's all about sdw_nread_no_pm, and yes she's a kernel function living her best life in the soundwire bus code πŸŽ€


✨ NAME ✨

sdw_nread_no_pm β€” literally reads "n" contiguous SDW Slave registers, and does it with no PM 🫢 (that's the whole personality, no cap)


🌈 SYNOPSIS 🌈

int sdw_nread_no_pm (struct sdw_slave *slave , u32 addr , size_t count ,
u8 *val );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • slave β€” the SDW Slave, the main character of this operation πŸ‘‘
  • addr β€” the Register address, i.e. where we're looking πŸ’…
  • count β€” the length, so how many we're grabbing
  • val β€” the Buffer for values to be read, where the good stuff lands πŸ“

🌸 DESCRIPTION 🌸

okay so here's the tea, and it's lowkey important: if the message crosses a page boundary, each page gets transferred under a separate invocation of the msg_lock 😭 like it's not one big smooth operation, it's page-by-page, each one grabbing the lock on its own. fr fr, remember that.


⭐ SEE ALSO ⭐

Kernel file ./drivers/soundwire/bus.c β€” and the whole friend group show up here too, so go say hi πŸ’–


πŸ’€ quick vibe check reminder: crossing a page boundary = multiple msg_lock invocations. Not me warning you twice, but also yes I am. 🫢

and that's the whole page bestie, you ate πŸ’… β€” this gem lives in ./drivers/soundwire, dated October 2026, and it's giving iconic kernel documentation energy πŸ§šβ€β™€οΈβœ¨πŸ’œ

πŸ“¦ where this page comes from