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 3078ed66ad6..c44c91e6fb1 100644 --- a/sound/pci/oxygen/oxygen_lib.c +++ b/sound/pci/oxygen/oxygen_lib.c @@ -565,7 +565,8 @@ static void oxygen_card_free(struct snd_card *card)  	oxygen_shutdown(chip);  	if (chip->irq >= 0)  		free_irq(chip->irq, chip); -	flush_scheduled_work(); +	flush_work_sync(&chip->spdif_input_bits_work); +	flush_work_sync(&chip->gpio_work);  	chip->model.cleanup(chip);  	kfree(chip->model_data);  	mutex_destroy(&chip->mutex); @@ -741,7 +742,8 @@ int oxygen_pci_suspend(struct pci_dev *pci, pm_message_t state)  	spin_unlock_irq(&chip->reg_lock);  	synchronize_irq(chip->irq); -	flush_scheduled_work(); +	flush_work_sync(&chip->spdif_input_bits_work); +	flush_work_sync(&chip->gpio_work);  	chip->interrupt_mask = saved_interrupt_mask;  	pci_disable_device(pci);  |