aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/saa7134/saa7134-core.c8
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