aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/oxygen_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/oxygen/oxygen_lib.c')
-rw-r--r--sound/pci/oxygen/oxygen_lib.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c
index e5ebe56fb0c..969605fbcb7 100644
--- a/sound/pci/oxygen/oxygen_lib.c
+++ b/sound/pci/oxygen/oxygen_lib.c
@@ -557,7 +557,8 @@ static void oxygen_card_free(struct snd_card *card)
557 oxygen_shutdown(chip); 557 oxygen_shutdown(chip);
558 if (chip->irq >= 0) 558 if (chip->irq >= 0)
559 free_irq(chip->irq, chip); 559 free_irq(chip->irq, chip);
560 flush_scheduled_work(); 560 flush_work_sync(&chip->spdif_input_bits_work);
561 flush_work_sync(&chip->gpio_work);
561 chip->model.cleanup(chip); 562 chip->model.cleanup(chip);
562 kfree(chip->model_data); 563 kfree(chip->model_data);
563 mutex_destroy(&chip->mutex); 564 mutex_destroy(&chip->mutex);
@@ -733,7 +734,8 @@ int oxygen_pci_suspend(struct pci_dev *pci, pm_message_t state)
733 spin_unlock_irq(&chip->reg_lock); 734 spin_unlock_irq(&chip->reg_lock);
734 735
735 synchronize_irq(chip->irq); 736 synchronize_irq(chip->irq);
736 flush_scheduled_work(); 737 flush_work_sync(&chip->spdif_input_bits_work);
738 flush_work_sync(&chip->gpio_work);
737 chip->interrupt_mask = saved_interrupt_mask; 739 chip->interrupt_mask = saved_interrupt_mask;
738 740
739 pci_disable_device(pci); 741 pci_disable_device(pci);