sound/pci/sis7019.h

Source file repositories/reference/linux-study-clean/sound/pci/sis7019.h

File Facts

System
Linux kernel
Corpus path
sound/pci/sis7019.h
Extension
.h
Size
13021 bytes
Lines
331
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.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __sis7019_h__
#define __sis7019_h__

/*
 *  Definitions for SiS7019 Audio Accelerator
 *
 *  Copyright (C) 2004-2007, David Dillow
 *  Written by David Dillow <dave@thedillows.org>
 *  Inspired by the Trident 4D-WaveDX/NX driver.
 *
 *  All rights reserved.
 */


/* General Control Register */
#define SIS_GCR		0x00
#define		SIS_GCR_MACRO_POWER_DOWN		0x80000000
#define		SIS_GCR_MODEM_ENABLE			0x00010000
#define		SIS_GCR_SOFTWARE_RESET			0x00000001

/* General Interrupt Enable Register */
#define SIS_GIER	0x04
#define		SIS_GIER_MODEM_TIMER_IRQ_ENABLE		0x00100000
#define		SIS_GIER_MODEM_RX_DMA_IRQ_ENABLE	0x00080000
#define		SIS_GIER_MODEM_TX_DMA_IRQ_ENABLE	0x00040000
#define		SIS_GIER_AC97_GPIO1_IRQ_ENABLE		0x00020000
#define		SIS_GIER_AC97_GPIO0_IRQ_ENABLE		0x00010000
#define		SIS_GIER_AC97_SAMPLE_TIMER_IRQ_ENABLE	0x00000010
#define		SIS_GIER_AUDIO_GLOBAL_TIMER_IRQ_ENABLE	0x00000008
#define		SIS_GIER_AUDIO_RECORD_DMA_IRQ_ENABLE	0x00000004
#define		SIS_GIER_AUDIO_PLAY_DMA_IRQ_ENABLE	0x00000002
#define		SIS_GIER_AUDIO_WAVE_ENGINE_IRQ_ENABLE	0x00000001

/* General Interrupt Status Register */
#define SIS_GISR	0x08
#define		SIS_GISR_MODEM_TIMER_IRQ_STATUS		0x00100000
#define		SIS_GISR_MODEM_RX_DMA_IRQ_STATUS	0x00080000
#define		SIS_GISR_MODEM_TX_DMA_IRQ_STATUS	0x00040000
#define		SIS_GISR_AC97_GPIO1_IRQ_STATUS		0x00020000
#define		SIS_GISR_AC97_GPIO0_IRQ_STATUS		0x00010000
#define		SIS_GISR_AC97_SAMPLE_TIMER_IRQ_STATUS	0x00000010
#define		SIS_GISR_AUDIO_GLOBAL_TIMER_IRQ_STATUS	0x00000008
#define		SIS_GISR_AUDIO_RECORD_DMA_IRQ_STATUS	0x00000004
#define		SIS_GISR_AUDIO_PLAY_DMA_IRQ_STATUS	0x00000002
#define		SIS_GISR_AUDIO_WAVE_ENGINE_IRQ_STATUS	0x00000001

/* DMA Control Register */
#define SIS_DMA_CSR	0x10
#define		SIS_DMA_CSR_PCI_SETTINGS		0x0000001d
#define		SIS_DMA_CSR_CONCURRENT_ENABLE		0x00000200
#define		SIS_DMA_CSR_PIPELINE_ENABLE		0x00000100
#define		SIS_DMA_CSR_RX_DRAIN_ENABLE		0x00000010
#define		SIS_DMA_CSR_RX_FILL_ENABLE		0x00000008
#define		SIS_DMA_CSR_TX_DRAIN_ENABLE		0x00000004
#define		SIS_DMA_CSR_TX_LOWPRI_FILL_ENABLE	0x00000002
#define		SIS_DMA_CSR_TX_HIPRI_FILL_ENABLE	0x00000001

/* Playback Channel Start Registers */
#define SIS_PLAY_START_A_REG	0x14
#define SIS_PLAY_START_B_REG	0x18

/* Playback Channel Stop Registers */
#define SIS_PLAY_STOP_A_REG	0x1c
#define SIS_PLAY_STOP_B_REG	0x20

/* Recording Channel Start Register */
#define SIS_RECORD_START_REG	0x24

/* Recording Channel Stop Register */
#define SIS_RECORD_STOP_REG	0x28

/* Playback Interrupt Status Registers */
#define SIS_PISR_A	0x2c
#define SIS_PISR_B	0x30

/* Recording Interrupt Status Register */
#define SIS_RISR	0x34

/* AC97 AC-link Playback Source Register */
#define SIS_AC97_PSR	0x40
#define		SIS_AC97_PSR_MODEM_HEADSET_SRC_MIXER	0x0f000000
#define		SIS_AC97_PSR_MODEM_LINE2_SRC_MIXER	0x00f00000
#define		SIS_AC97_PSR_MODEM_LINE1_SRC_MIXER	0x000f0000
#define		SIS_AC97_PSR_PCM_LFR_SRC_MIXER		0x0000f000
#define		SIS_AC97_PSR_PCM_SURROUND_SRC_MIXER	0x00000f00
#define		SIS_AC97_PSR_PCM_CENTER_SRC_MIXER	0x000000f0
#define		SIS_AC97_PSR_PCM_LR_SRC_MIXER		0x0000000f

/* AC97 AC-link Command Register */
#define SIS_AC97_CMD	0x50

Annotation

Implementation Notes