diff options
Diffstat (limited to 'sound/pci/oxygen/oxygen_lib.c')
-rw-r--r-- | sound/pci/oxygen/oxygen_lib.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c index 540e56b75794..6eb36dd11476 100644 --- a/sound/pci/oxygen/oxygen_lib.c +++ b/sound/pci/oxygen/oxygen_lib.c | |||
@@ -85,7 +85,7 @@ static irqreturn_t oxygen_interrupt(int dummy, void *dev_id) | |||
85 | } | 85 | } |
86 | 86 | ||
87 | if (status & OXYGEN_INT_GPIO) | 87 | if (status & OXYGEN_INT_GPIO) |
88 | ; | 88 | schedule_work(&chip->gpio_work); |
89 | 89 | ||
90 | if ((status & OXYGEN_INT_MIDI) && chip->midi) | 90 | if ((status & OXYGEN_INT_MIDI) && chip->midi) |
91 | snd_mpu401_uart_interrupt(0, chip->midi->private_data); | 91 | snd_mpu401_uart_interrupt(0, chip->midi->private_data); |
@@ -157,6 +157,14 @@ static void oxygen_spdif_input_bits_changed(struct work_struct *work) | |||
157 | } | 157 | } |
158 | } | 158 | } |
159 | 159 | ||
160 | static void oxygen_gpio_changed(struct work_struct *work) | ||
161 | { | ||
162 | struct oxygen *chip = container_of(work, struct oxygen, gpio_work); | ||
163 | |||
164 | if (chip->model->gpio_changed) | ||
165 | chip->model->gpio_changed(chip); | ||
166 | } | ||
167 | |||
160 | #ifdef CONFIG_PROC_FS | 168 | #ifdef CONFIG_PROC_FS |
161 | static void oxygen_proc_read(struct snd_info_entry *entry, | 169 | static void oxygen_proc_read(struct snd_info_entry *entry, |
162 | struct snd_info_buffer *buffer) | 170 | struct snd_info_buffer *buffer) |
@@ -413,6 +421,7 @@ int __devinit oxygen_pci_probe(struct pci_dev *pci, int index, char *id, | |||
413 | mutex_init(&chip->mutex); | 421 | mutex_init(&chip->mutex); |
414 | INIT_WORK(&chip->spdif_input_bits_work, | 422 | INIT_WORK(&chip->spdif_input_bits_work, |
415 | oxygen_spdif_input_bits_changed); | 423 | oxygen_spdif_input_bits_changed); |
424 | INIT_WORK(&chip->gpio_work, oxygen_gpio_changed); | ||
416 | init_waitqueue_head(&chip->ac97_waitqueue); | 425 | init_waitqueue_head(&chip->ac97_waitqueue); |
417 | 426 | ||
418 | err = pci_enable_device(pci); | 427 | err = pci_enable_device(pci); |