STRUCT ALPS_PROTOCOL_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct alps_protocol_info(9) β€” like, the whole vibe of a device's protocol, bestie ✨

okay so this is a page from the Kernel API Manual, section 9, and it's all about struct alps_protocol_info β€” literally the little info card that tells you which protocol a device is speaking πŸŽ€


🌸 NAME 🌸

struct alps_protocol_info β€” the tea on which protocol a device is using πŸ«–βœ¨


πŸ’– SYNOPSIS πŸ’–

here's the struct in all its glory, no cap, copy it exactly:

struct alps_protocol_info {
    u16 version;
    u8 byte0, mask0;
    unsigned int flags;
 };

that's it. that's the whole thing. she's small but she's doing a lot πŸ’…


πŸ‘‘ Members πŸ‘‘

  • version β€” tells you whether we're in V1 / V2 / V3 / ... territory, iykyk πŸ”₯
  • byte0 β€” this one's a little detective πŸ•΅οΈβ€β™€οΈ it helps you figure out whether a position report packet actually matches the known format for this model. the rule is: the first byte of the report, ANDed with mask0, should match byte0. that's the vibe check right there ✨
  • mask0 β€” the mask used to check the first byte of the report. yes it works with byte0 above, they're a duo 🫢
  • flags β€” bonus device capabilities, like the passthrough port, trackstick, etc. β€” the extra little garnish on top 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

kernel file ./drivers/input/mouse/alps.h, plus these iconic structs: struct alps_model_info(9), struct alps_nibble_commands(9), struct alps_fields(9), and struct alps_data(9) ⭐ go read them, they're all in the same friend group fr fr


okay that's the whole page, mwah πŸ’‹ and for the cute sign-off: this one lives under ./drivers/input/mouse and it's dated October 2026 β€” periodt, go off, and remember: mask first, then match πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from