sound/pci/ca0106/ca_midi.h
Source file repositories/reference/linux-study-clean/sound/pci/ca0106/ca_midi.h
File Facts
- System
- Linux kernel
- Corpus path
sound/pci/ca0106/ca_midi.h- Extension
.h- Size
- 1332 bytes
- Lines
- 53
- Domain
- Driver Families
- Bucket
- sound/pci
- Inferred role
- Driver Families: implementation source
- Status
- source 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 or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/spinlock.hsound/rawmidi.hsound/mpu401.h
Detected Declarations
struct snd_ca_midi
Annotated Snippet
struct snd_ca_midi {
struct snd_rawmidi *rmidi;
struct snd_rawmidi_substream *substream_input;
struct snd_rawmidi_substream *substream_output;
void *dev_id;
spinlock_t input_lock;
spinlock_t output_lock;
spinlock_t open_lock;
unsigned int channel;
unsigned int midi_mode;
int port;
int tx_enable, rx_enable;
int ipr_tx, ipr_rx;
int input_avail, output_ready;
int ack, reset, enter_uart;
void (*interrupt)(struct snd_ca_midi *midi, unsigned int status);
void (*interrupt_enable)(struct snd_ca_midi *midi, int intr);
void (*interrupt_disable)(struct snd_ca_midi *midi, int intr);
unsigned char (*read)(struct snd_ca_midi *midi, int idx);
void (*write)(struct snd_ca_midi *midi, int data, int idx);
/* get info from dev_id */
struct snd_card *(*get_dev_id_card)(void *dev_id);
int (*get_dev_id_port)(void *dev_id);
};
int ca_midi_init(void *card, struct snd_ca_midi *midi, int device, char *name);
Annotation
- Immediate include surface: `linux/spinlock.h`, `sound/rawmidi.h`, `sound/mpu401.h`.
- Detected declarations: `struct snd_ca_midi`.
- Atlas domain: Driver Families / sound/pci.
- Implementation status: source implementation candidate.
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.