sound/pcmcia/pdaudiocf/pdaudiocf.h

Source file repositories/reference/linux-study-clean/sound/pcmcia/pdaudiocf/pdaudiocf.h

File Facts

System
Linux kernel
Corpus path
sound/pcmcia/pdaudiocf/pdaudiocf.h
Extension
.h
Size
4599 bytes
Lines
129
Domain
Driver Families
Bucket
sound/pcmcia
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct snd_pdacf {
	struct snd_card *card;
	int index;

	unsigned long port;
	int irq;

	struct mutex reg_lock;
	unsigned short regmap[8];
	unsigned short suspend_reg_scr;

	spinlock_t ak4117_lock;
	struct ak4117 *ak4117;

	unsigned int chip_status;

	struct snd_pcm *pcm;
	struct snd_pcm_substream *pcm_substream;
	unsigned int pcm_running: 1;
	unsigned int pcm_channels;
	unsigned int pcm_swab;
	unsigned int pcm_little;
	unsigned int pcm_frame;
	unsigned int pcm_sample;
	unsigned int pcm_xor;
	unsigned int pcm_size;
	unsigned int pcm_period;
	unsigned int pcm_tdone;
	unsigned int pcm_hwptr;
	void *pcm_area;
	
	/* pcmcia stuff */
	struct pcmcia_device	*p_dev;
};

static inline void pdacf_reg_write(struct snd_pdacf *chip, unsigned char reg, unsigned short val)
{
	outw(chip->regmap[reg>>1] = val, chip->port + reg);
}

static inline unsigned short pdacf_reg_read(struct snd_pdacf *chip, unsigned char reg)
{
	return inw(chip->port + reg);
}

struct snd_pdacf *snd_pdacf_create(struct snd_card *card);
int snd_pdacf_ak4117_create(struct snd_pdacf *pdacf);
void snd_pdacf_powerdown(struct snd_pdacf *chip);
#ifdef CONFIG_PM
int snd_pdacf_suspend(struct snd_pdacf *chip);
int snd_pdacf_resume(struct snd_pdacf *chip);
#endif
int snd_pdacf_pcm_new(struct snd_pdacf *chip);
irqreturn_t pdacf_interrupt(int irq, void *dev);
irqreturn_t pdacf_threaded_irq(int irq, void *dev);
void pdacf_reinit(struct snd_pdacf *chip, int resume);

#endif /* __PDAUDIOCF_H */

Annotation

Implementation Notes