Commit bf17d20a authored by Takashi Iwai's avatar Takashi Iwai

ALSA: oxygen: Support PCM sync_stop

The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler.  Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.

Link: https://lore.kernel.org/r/20191210063454.31603-30-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 1478eb63
...@@ -661,6 +661,7 @@ int oxygen_pci_probe(struct pci_dev *pci, int index, char *id, ...@@ -661,6 +661,7 @@ int oxygen_pci_probe(struct pci_dev *pci, int index, char *id,
goto err_card; goto err_card;
} }
chip->irq = pci->irq; chip->irq = pci->irq;
card->sync_irq = chip->irq;
strcpy(card->driver, chip->model.chip); strcpy(card->driver, chip->model.chip);
strcpy(card->shortname, chip->model.shortname); strcpy(card->shortname, chip->model.shortname);
...@@ -743,7 +744,6 @@ static int oxygen_pci_suspend(struct device *dev) ...@@ -743,7 +744,6 @@ static int oxygen_pci_suspend(struct device *dev)
oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, 0); oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, 0);
spin_unlock_irq(&chip->reg_lock); spin_unlock_irq(&chip->reg_lock);
synchronize_irq(chip->irq);
flush_work(&chip->spdif_input_bits_work); flush_work(&chip->spdif_input_bits_work);
flush_work(&chip->gpio_work); flush_work(&chip->gpio_work);
chip->interrupt_mask = saved_interrupt_mask; chip->interrupt_mask = saved_interrupt_mask;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment