diff options
Diffstat (limited to 'sound/pci/oxygen/oxygen_lib.c')
-rw-r--r-- | sound/pci/oxygen/oxygen_lib.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c index e5ebe56fb0c5..969605fbcb7f 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); |