sound/ppc/pmac.h
Source file repositories/reference/linux-study-clean/sound/ppc/pmac.h
File Facts
- System
- Linux kernel
- Corpus path
sound/ppc/pmac.h- Extension
.h- Size
- 4619 bytes
- Lines
- 199
- Domain
- Driver Families
- Bucket
- sound/ppc
- 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
sound/control.hsound/pcm.hawacs.hlinux/adb.hlinux/cuda.hlinux/pmu.hlinux/nvram.hlinux/tty.hlinux/vt_kern.hasm/dbdma.hasm/prom.hasm/machdep.hasm/pmac_feature.h
Detected Declarations
struct pmac_dbdmastruct pmac_streamstruct snd_pmacstruct pmac_keywestenum snd_pmac_model
Annotated Snippet
struct pmac_dbdma {
dma_addr_t dma_base;
dma_addr_t addr;
struct dbdma_cmd __iomem *cmds;
void *space;
int size;
};
/*
* playback/capture stream
*/
struct pmac_stream {
int running; /* boolean */
int stream; /* PLAYBACK/CAPTURE */
int dma_size; /* in bytes */
int period_size; /* in bytes */
int buffer_size; /* in kbytes */
int nperiods, cur_period;
struct pmac_dbdma cmd;
volatile struct dbdma_regs __iomem *dma;
struct snd_pcm_substream *substream;
unsigned int cur_freqs; /* currently available frequencies */
unsigned int cur_formats; /* currently available formats */
};
/*
*/
enum snd_pmac_model {
PMAC_AWACS, PMAC_SCREAMER, PMAC_BURGUNDY, PMAC_DACA, PMAC_TUMBLER,
PMAC_SNAPPER
};
struct snd_pmac {
struct snd_card *card;
/* h/w info */
struct device_node *node;
struct pci_dev *pdev;
unsigned int revision;
unsigned int manufacturer;
unsigned int subframe;
unsigned int device_id;
enum snd_pmac_model model;
unsigned int has_iic : 1;
unsigned int is_pbook_3400 : 1;
unsigned int is_pbook_G3 : 1;
unsigned int is_k2 : 1;
unsigned int can_byte_swap : 1;
unsigned int can_duplex : 1;
unsigned int can_capture : 1;
unsigned int auto_mute : 1;
unsigned int initialized : 1;
unsigned int feature_is_set : 1;
unsigned int requested;
struct resource rsrc[3];
int num_freqs;
const int *freq_table;
unsigned int freqs_ok; /* bit flags */
unsigned int formats_ok; /* pcm hwinfo */
int active;
int rate_index;
int format; /* current format */
spinlock_t reg_lock;
volatile struct awacs_regs __iomem *awacs;
int awacs_reg[8]; /* register cache */
unsigned int hp_stat_mask;
unsigned char __iomem *latch_base;
unsigned char __iomem *macio_base;
struct pmac_stream playback;
struct pmac_stream capture;
struct pmac_dbdma extra_dma;
int irq, tx_irq, rx_irq;
Annotation
- Immediate include surface: `sound/control.h`, `sound/pcm.h`, `awacs.h`, `linux/adb.h`, `linux/cuda.h`, `linux/pmu.h`, `linux/nvram.h`, `linux/tty.h`.
- Detected declarations: `struct pmac_dbdma`, `struct pmac_stream`, `struct snd_pmac`, `struct pmac_keywest`, `enum snd_pmac_model`.
- Atlas domain: Driver Families / sound/ppc.
- 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.