STRUCT FM801(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, this is the struct fm801(9) page from the Kernel API Manual β€” it's literally the struct that describes the FM801 chip. Main character struct energy, no cap. πŸ’…

✨ SYNOPSIS ✨

here's the whole shape of it, copied exactly because we do not mess with code:

       struct fm801 {
           struct device *dev;
           int irq;
           unsigned long port;
           unsigned int multichannel: 1, secondary: 1;
           unsigned char secondary_addr;
           unsigned int tea575x_tuner;
           unsigned short ply_ctrl;
           unsigned short cap_ctrl;
           unsigned long ply_buffer;
           unsigned int ply_buf;
           unsigned int ply_count;
           unsigned int ply_size;
           unsigned int ply_pos;
           unsigned long cap_buffer;
           unsigned int cap_buf;
           unsigned int cap_count;
           unsigned int cap_size;
           unsigned int cap_pos;
           struct snd_ac97_bus *ac97_bus;
           struct snd_ac97 *ac97;
           struct snd_ac97 *ac97_sec;
           struct snd_card *card;
           struct snd_pcm *pcm;
           struct snd_rawmidi *rmidi;
           struct snd_pcm_substream *playback_substream;
           struct snd_pcm_substream *capture_substream;
           unsigned int p_dma_size;
           unsigned int c_dma_size;
           spinlock_t reg_lock;
           struct snd_info_entry *proc_entry;
         #ifdef CONFIG_SND_FM801_TEA575X_BOOL;
           struct v4l2_device v4l2_dev;
           struct snd_tea575x tea;
         #endif;
           u16 saved_regs[0x20];
        };

πŸŽ€ Members πŸŽ€

every member, in order, zero skips β€” we're doing the full tour, bestie 🫢

  • dev β€” the device for this chio (the page says chio, and we are being faithful to it πŸ™ˆ)
  • irq β€” the irq number
  • port β€” the I/O port number
  • multichannel β€” multichannel support
  • secondary β€” secondary codec
  • secondary_addr β€” address of the secondary codec
  • tea575x_tuner β€” tuner access method & flags
  • ply_ctrl β€” playback control
  • cap_ctrl β€” capture control
  • ply_buffer β€” playback buffer
  • ply_buf β€” playback buffer index
  • ply_count β€” playback buffer count
  • ply_size β€” playback buffer size
  • ply_pos β€” playback position
  • cap_buffer β€” capture buffer
  • cap_buf β€” capture buffer index
  • cap_count β€” capture buffer count
  • cap_size β€” capture buffer size
  • cap_pos β€” capture position
  • ac97_bus β€” ac97 bus handle
  • ac97 β€” ac97 handle
  • ac97_sec β€” ac97 secondary handle
  • card β€” ALSA card
  • pcm β€” PCM devices
  • rmidi β€” rmidi device
  • playback_substream β€” substream for playback
  • capture_substream β€” substream for capture
  • p_dma_size β€” playback DMA size
  • c_dma_size β€” capture DMA size
  • reg_lock β€” lock
  • proc_entry β€” /proc entry
  • v4l2_dev β€” v4l2 device
  • tea β€” tea575a structure
  • saved_regs β€” context saved during suspend

🌈 SEE ALSO 🌈

  • Kernel file ./sound/pci/fm801.c

and that's the whole vibe, bestie 🫢 β€” this page comes from source path ./sound/pci, it's dated October 2026, and it's the struct fm801(9) manual page. Slay and read your kernel docs πŸ’–βœ¨

πŸ“¦ where this page comes from