diff options
author | Jaya Kumar <jayakumar.alsa@gmail.com> | 2006-04-28 08:34:49 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-06-22 15:32:49 -0400 |
commit | 9ac25594e68a4b61516e7c1140d8c0f7ef449e20 (patch) | |
tree | 628040fb065b882191a6ff5ed7aba42ef04b99d6 /sound/pci/cs5535audio/cs5535audio.h | |
parent | 5e1b1518a53fc62d9f39a13819c849336c6d8dd4 (diff) |
[ALSA] PM support for cs5535audio
Appended is my patch adding PM support to the cs5535audio driver.
I also added the ac97 quirk but it's not yet confirmed which
boards need to be in the quirk list. The patch also includes some
Kconfig and misc cleanup.
Signed-off-by: Jaya Kumar <jayakumar.alsa@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/cs5535audio/cs5535audio.h')
-rw-r--r-- | sound/pci/cs5535audio/cs5535audio.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/pci/cs5535audio/cs5535audio.h b/sound/pci/cs5535audio/cs5535audio.h index 5e55a1a1ed65..4fd1f31a6cf9 100644 --- a/sound/pci/cs5535audio/cs5535audio.h +++ b/sound/pci/cs5535audio/cs5535audio.h | |||
@@ -74,6 +74,8 @@ | |||
74 | #define PRM_RDY_STS 0x00800000 | 74 | #define PRM_RDY_STS 0x00800000 |
75 | #define ACC_CODEC_CNTL_WR_CMD (~0x80000000) | 75 | #define ACC_CODEC_CNTL_WR_CMD (~0x80000000) |
76 | #define ACC_CODEC_CNTL_RD_CMD 0x80000000 | 76 | #define ACC_CODEC_CNTL_RD_CMD 0x80000000 |
77 | #define ACC_CODEC_CNTL_LNK_SHUTDOWN 0x00040000 | ||
78 | #define ACC_CODEC_CNTL_LNK_WRM_RST 0x00020000 | ||
77 | #define PRD_JMP 0x2000 | 79 | #define PRD_JMP 0x2000 |
78 | #define PRD_EOP 0x4000 | 80 | #define PRD_EOP 0x4000 |
79 | #define PRD_EOT 0x8000 | 81 | #define PRD_EOT 0x8000 |
@@ -88,6 +90,7 @@ struct cs5535audio_dma_ops { | |||
88 | void (*disable_dma)(struct cs5535audio *cs5535au); | 90 | void (*disable_dma)(struct cs5535audio *cs5535au); |
89 | void (*pause_dma)(struct cs5535audio *cs5535au); | 91 | void (*pause_dma)(struct cs5535audio *cs5535au); |
90 | void (*setup_prd)(struct cs5535audio *cs5535au, u32 prd_addr); | 92 | void (*setup_prd)(struct cs5535audio *cs5535au, u32 prd_addr); |
93 | u32 (*read_prd)(struct cs5535audio *cs5535au); | ||
91 | u32 (*read_dma_pntr)(struct cs5535audio *cs5535au); | 94 | u32 (*read_dma_pntr)(struct cs5535audio *cs5535au); |
92 | }; | 95 | }; |
93 | 96 | ||
@@ -103,11 +106,14 @@ struct cs5535audio_dma { | |||
103 | struct snd_pcm_substream *substream; | 106 | struct snd_pcm_substream *substream; |
104 | unsigned int buf_addr, buf_bytes; | 107 | unsigned int buf_addr, buf_bytes; |
105 | unsigned int period_bytes, periods; | 108 | unsigned int period_bytes, periods; |
109 | int suspended; | ||
110 | u32 saved_prd; | ||
106 | }; | 111 | }; |
107 | 112 | ||
108 | struct cs5535audio { | 113 | struct cs5535audio { |
109 | struct snd_card *card; | 114 | struct snd_card *card; |
110 | struct snd_ac97 *ac97; | 115 | struct snd_ac97 *ac97; |
116 | struct snd_pcm *pcm; | ||
111 | int irq; | 117 | int irq; |
112 | struct pci_dev *pci; | 118 | struct pci_dev *pci; |
113 | unsigned long port; | 119 | unsigned long port; |
@@ -117,6 +123,8 @@ struct cs5535audio { | |||
117 | struct cs5535audio_dma dmas[NUM_CS5535AUDIO_DMAS]; | 123 | struct cs5535audio_dma dmas[NUM_CS5535AUDIO_DMAS]; |
118 | }; | 124 | }; |
119 | 125 | ||
126 | int snd_cs5535audio_suspend(struct pci_dev *pci, pm_message_t state); | ||
127 | int snd_cs5535audio_resume(struct pci_dev *pci); | ||
120 | int __devinit snd_cs5535audio_pcm(struct cs5535audio *cs5535audio); | 128 | int __devinit snd_cs5535audio_pcm(struct cs5535audio *cs5535audio); |
121 | 129 | ||
122 | #endif /* __SOUND_CS5535AUDIO_H */ | 130 | #endif /* __SOUND_CS5535AUDIO_H */ |