From 5fc868a82dada847b3e5d92c980410ef19a4ff87 Mon Sep 17 00:00:00 2001 From: Maxim Levitsky Date: Sun, 4 Nov 2007 19:34:23 -0300 Subject: [PATCH] --- yaml --- r: 76477 b: refs/heads/master c: 3203cb86d22c63504f8368151029bf9dad014ddb h: refs/heads/master i: 76475: 28efce5cc9fd545e635d92bb49973b80a7a65368 v: v3 --- [refs] | 2 +- trunk/drivers/media/video/saa7134/saa7134-core.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index c0430e1ba1fa..81cd37ae3082 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0d65cd4f2bfe70872e4218d9d35d37a7000d6739 +refs/heads/master: 3203cb86d22c63504f8368151029bf9dad014ddb diff --git a/trunk/drivers/media/video/saa7134/saa7134-core.c b/trunk/drivers/media/video/saa7134/saa7134-core.c index 40cdec26a7f4..85c165d17301 100644 --- a/trunk/drivers/media/video/saa7134/saa7134-core.c +++ b/trunk/drivers/media/video/saa7134/saa7134-core.c @@ -1181,8 +1181,13 @@ static int saa7134_suspend(struct pci_dev *pci_dev , pm_message_t state) saa_writel(SAA7134_IRQ2, 0); saa_writel(SAA7134_MAIN_CTRL, 0); - synchronize_irq(pci_dev->irq); dev->insuspend = 1; + synchronize_irq(pci_dev->irq); + + /* ACK interrupts once more, just in case, + since the IRQ handler won't ack them anymore*/ + + saa_writel(SAA7134_IRQ_REPORT, saa_readl(SAA7134_IRQ_REPORT)); /* Disable timeout timers - if we have active buffers, we will fill them on resume*/ @@ -1246,6 +1251,7 @@ static int saa7134_resume(struct pci_dev *pci_dev) /* start DMA now*/ dev->insuspend = 0; + smp_wmb(); saa7134_set_dmabits(dev); spin_unlock_irqrestore(&dev->slock, flags);