diff options
| -rw-r--r-- | sound/soc/codecs/rt5514-spi.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/soc/codecs/rt5514-spi.c b/sound/soc/codecs/rt5514-spi.c index d03756913dd9..36e0a58ffc87 100644 --- a/sound/soc/codecs/rt5514-spi.c +++ b/sound/soc/codecs/rt5514-spi.c | |||
| @@ -473,11 +473,21 @@ static int rt5514_suspend(struct device *dev) | |||
| 473 | 473 | ||
| 474 | static int rt5514_resume(struct device *dev) | 474 | static int rt5514_resume(struct device *dev) |
| 475 | { | 475 | { |
| 476 | struct snd_soc_platform *platform = snd_soc_lookup_platform(dev); | ||
| 477 | struct rt5514_dsp *rt5514_dsp = | ||
| 478 | snd_soc_platform_get_drvdata(platform); | ||
| 476 | int irq = to_spi_device(dev)->irq; | 479 | int irq = to_spi_device(dev)->irq; |
| 480 | u8 buf[8]; | ||
| 477 | 481 | ||
| 478 | if (device_may_wakeup(dev)) | 482 | if (device_may_wakeup(dev)) |
| 479 | disable_irq_wake(irq); | 483 | disable_irq_wake(irq); |
| 480 | 484 | ||
| 485 | if (rt5514_dsp->substream) { | ||
| 486 | rt5514_spi_burst_read(RT5514_IRQ_CTRL, (u8 *)&buf, sizeof(buf)); | ||
| 487 | if (buf[0] & RT5514_IRQ_STATUS_BIT) | ||
| 488 | rt5514_schedule_copy(rt5514_dsp); | ||
| 489 | } | ||
| 490 | |||
| 481 | return 0; | 491 | return 0; |
| 482 | } | 492 | } |
| 483 | 493 | ||
