sound/pci/als4000.c
Source file repositories/reference/linux-study-clean/sound/pci/als4000.c
File Facts
- System
- Linux kernel
- Corpus path
sound/pci/als4000.c- Extension
.c- Size
- 29338 bytes
- Lines
- 974
- Domain
- Driver Families
- Bucket
- sound/pci
- Inferred role
- Driver Families: operation-table or driver-model contract
- Status
- pattern implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/io.hlinux/init.hlinux/pci.hlinux/gameport.hlinux/module.hlinux/dma-mapping.hsound/core.hsound/pcm.hsound/rawmidi.hsound/mpu401.hsound/opl3.hsound/sb.hsound/initval.h
Detected Declarations
struct snd_card_als4000enum als4k_iobase_tenum als4k_iobase_0e_tenum als4k_gcr_tenum als4k_gcr8c_tenum als4k_cr_tenum als4k_cr0_tfunction snd_als4k_iobase_writebfunction snd_als4k_iobase_writelfunction snd_als4k_iobase_readbfunction snd_als4k_iobase_readlfunction snd_als4k_gcr_write_addrfunction snd_als4k_gcr_writefunction snd_als4k_gcr_read_addrfunction snd_als4k_gcr_readfunction snd_als4_cr_writefunction snd_als4_cr_readfunction snd_als4000_set_ratefunction snd_als4000_set_capture_dmafunction snd_als4000_set_playback_dmafunction snd_als4000_get_formatfunction snd_als4000_capture_preparefunction scoped_guardfunction snd_als4000_playback_preparefunction snd_als4000_capture_triggerfunction snd_als4000_playback_triggerfunction snd_als4000_capture_pointerfunction scoped_guardfunction snd_als4000_playback_pointerfunction scoped_guardfunction registerfunction scoped_guardfunction snd_als4000_playback_openfunction snd_als4000_playback_closefunction snd_als4000_capture_openfunction snd_als4000_capture_closefunction snd_als4000_pcmfunction snd_als4000_set_addrfunction snd_als4000_configurefunction snd_als4000_create_gameportfunction snd_als4000_free_gameportfunction snd_als4000_create_gameportfunction snd_als4000_free_gameportfunction __snd_card_als4000_probefunction snd_card_als4000_probefunction snd_als4000_suspendfunction snd_als4000_resume
Annotated Snippet
static struct pci_driver als4000_driver = {
.name = KBUILD_MODNAME,
.id_table = snd_als4000_ids,
.probe = snd_card_als4000_probe,
.driver = {
.pm = &snd_als4000_pm,
},
};
module_pci_driver(als4000_driver);
Annotation
- Immediate include surface: `linux/io.h`, `linux/init.h`, `linux/pci.h`, `linux/gameport.h`, `linux/module.h`, `linux/dma-mapping.h`, `sound/core.h`, `sound/pcm.h`.
- Detected declarations: `struct snd_card_als4000`, `enum als4k_iobase_t`, `enum als4k_iobase_0e_t`, `enum als4k_gcr_t`, `enum als4k_gcr8c_t`, `enum als4k_cr_t`, `enum als4k_cr0_t`, `function snd_als4k_iobase_writeb`, `function snd_als4k_iobase_writel`, `function snd_als4k_iobase_readb`.
- Atlas domain: Driver Families / sound/pci.
- Implementation status: pattern implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.