diff options
-rw-r--r-- | drivers/media/video/saa7134/saa7134-core.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index 40cdec26a7f4..85c165d17301 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c | |||
@@ -1181,8 +1181,13 @@ static int saa7134_suspend(struct pci_dev *pci_dev , pm_message_t state) | |||
1181 | saa_writel(SAA7134_IRQ2, 0); | 1181 | saa_writel(SAA7134_IRQ2, 0); |
1182 | saa_writel(SAA7134_MAIN_CTRL, 0); | 1182 | saa_writel(SAA7134_MAIN_CTRL, 0); |
1183 | 1183 | ||
1184 | synchronize_irq(pci_dev->irq); | ||
1185 | dev->insuspend = 1; | 1184 | dev->insuspend = 1; |
1185 | synchronize_irq(pci_dev->irq); | ||
1186 | |||
1187 | /* ACK interrupts once more, just in case, | ||
1188 | since the IRQ handler won't ack them anymore*/ | ||
1189 | |||
1190 | saa_writel(SAA7134_IRQ_REPORT, saa_readl(SAA7134_IRQ_REPORT)); | ||
1186 | 1191 | ||
1187 | /* Disable timeout timers - if we have active buffers, we will | 1192 | /* Disable timeout timers - if we have active buffers, we will |
1188 | fill them on resume*/ | 1193 | fill them on resume*/ |
@@ -1246,6 +1251,7 @@ static int saa7134_resume(struct pci_dev *pci_dev) | |||
1246 | 1251 | ||
1247 | /* start DMA now*/ | 1252 | /* start DMA now*/ |
1248 | dev->insuspend = 0; | 1253 | dev->insuspend = 0; |
1254 | smp_wmb(); | ||
1249 | saa7134_set_dmabits(dev); | 1255 | saa7134_set_dmabits(dev); |
1250 | spin_unlock_irqrestore(&dev->slock, flags); | 1256 | spin_unlock_irqrestore(&dev->slock, flags); |
1251 | 1257 | ||