STRUCT AC97_CONTROLLER_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ac97_controller_ops(9) ✨

okay bestie, welcome to the Kernel API Manual entry for struct ac97_controller_ops β€” the AC97 operations, and honestly? iconic.


πŸŽ€ NAME πŸŽ€

struct ac97_controller_ops β€” literally just the AC97 operations. that's the whole vibe. πŸ¦‹


✨ SYNOPSIS ✨

here's the struct, bestie, copy it exactly, no cap:

struct ac97_controller_ops {
    void (*reset)(struct ac97_controller *adrv);
    void (*warm_reset)(struct ac97_controller *adrv);
    int (*write)(struct ac97_controller *adrv, int slot, unsigned short
reg, unsigned short val);
    int (*read)(struct ac97_controller *adrv, int slot, unsigned short
reg);
 };

πŸ’– Members πŸ’–

  • reset β€” cold reset of the AC97 AC-Link. like a full factory reset, no survivors πŸ’€
  • warm_reset β€” warm reset of the AC97 AC-Link. softer, gentler, still resetting 🫢
  • write β€” writes a single AC97 register. one (1) register. very demure 🌸
  • read β€” reads a single AC97 register. returns the register value, or a negative error code if things went sideways 😭

πŸ‘‘ Description πŸ‘‘

so these are the basic operations that an AC97 controller must provide for the AC97 access functions. lowkey the whole point. πŸ”₯

amongst these, all but the last 2 are mandatory. so reset and warm_reset? mandatory, periodt. the last two (write and read)? the vibes say optional. πŸ’…

also, the slot number is what they call the AC97 codec number, and it's between 0 and 3. yes, only 0–3, that's the range, don't push it πŸŽ€


🌈 SEE ALSO 🌈

  • Kernel file ./include/sound/ac97/controller.h
  • struct ac97_controller(9)

ngl, go read that header file for the full lore. iykyk πŸ’œ

okay that's the whole page bestie, go forth and slay βœ¨πŸ¦‹

🧚 sign-off era: this little masterpiece lives in ./include/sound/ac97, dated October 2026, straight out of the Kernel API Manual. mwah πŸ’‹πŸ’–

πŸ“¦ where this page comes from