aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/oxygen.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/oxygen/oxygen.h')
-rw-r--r--sound/pci/oxygen/oxygen.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/sound/pci/oxygen/oxygen.h b/sound/pci/oxygen/oxygen.h
index a71c6e059260..74a644880074 100644
--- a/sound/pci/oxygen/oxygen.h
+++ b/sound/pci/oxygen/oxygen.h
@@ -16,6 +16,8 @@
16#define PCM_AC97 5 16#define PCM_AC97 5
17#define PCM_COUNT 6 17#define PCM_COUNT 6
18 18
19#define OXYGEN_IO_SIZE 0x100
20
19/* model-specific configuration of outputs/inputs */ 21/* model-specific configuration of outputs/inputs */
20#define PLAYBACK_0_TO_I2S 0x001 22#define PLAYBACK_0_TO_I2S 0x001
21#define PLAYBACK_1_TO_SPDIF 0x004 23#define PLAYBACK_1_TO_SPDIF 0x004
@@ -78,6 +80,12 @@ struct oxygen {
78 struct work_struct spdif_input_bits_work; 80 struct work_struct spdif_input_bits_work;
79 struct work_struct gpio_work; 81 struct work_struct gpio_work;
80 wait_queue_head_t ac97_waitqueue; 82 wait_queue_head_t ac97_waitqueue;
83 union {
84 u8 _8[OXYGEN_IO_SIZE];
85 __le16 _16[OXYGEN_IO_SIZE / 2];
86 __le32 _32[OXYGEN_IO_SIZE / 4];
87 } saved_registers;
88 u16 saved_ac97_registers[2][0x40];
81}; 89};
82 90
83struct oxygen_model { 91struct oxygen_model {
@@ -89,6 +97,8 @@ struct oxygen_model {
89 int (*control_filter)(struct snd_kcontrol_new *template); 97 int (*control_filter)(struct snd_kcontrol_new *template);
90 int (*mixer_init)(struct oxygen *chip); 98 int (*mixer_init)(struct oxygen *chip);
91 void (*cleanup)(struct oxygen *chip); 99 void (*cleanup)(struct oxygen *chip);
100 void (*suspend)(struct oxygen *chip);
101 void (*resume)(struct oxygen *chip);
92 void (*pcm_hardware_filter)(unsigned int channel, 102 void (*pcm_hardware_filter)(unsigned int channel,
93 struct snd_pcm_hardware *hardware); 103 struct snd_pcm_hardware *hardware);
94 void (*set_dac_params)(struct oxygen *chip, 104 void (*set_dac_params)(struct oxygen *chip,
@@ -117,6 +127,10 @@ struct oxygen_model {
117int oxygen_pci_probe(struct pci_dev *pci, int index, char *id, 127int oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
118 const struct oxygen_model *model); 128 const struct oxygen_model *model);
119void oxygen_pci_remove(struct pci_dev *pci); 129void oxygen_pci_remove(struct pci_dev *pci);
130#ifdef CONFIG_PM
131int oxygen_pci_suspend(struct pci_dev *pci, pm_message_t state);
132int oxygen_pci_resume(struct pci_dev *pci);
133#endif
120 134
121/* oxygen_mixer.c */ 135/* oxygen_mixer.c */
122 136