aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx23885/cx23885.h
diff options
context:
space:
mode:
authorAndy Walls <awalls@md.metrocast.net>2010-07-19 00:19:43 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-08-08 22:42:55 -0400
commitdbe83a3b921328e12b2abe894fc692afba293d7f (patch)
treee13443d29b6b929a61584b06dec5f3eff84e2111 /drivers/media/video/cx23885/cx23885.h
parent98d109f90fc02ce8baf1c2471ffcf8d66fb0d8e6 (diff)
V4L/DVB: cx23885: Protect PCI interrupt mask manipulations with a spinlock
This patch encapsulates access to the PCI_INT_MSK register and dev->pci_irqmask variable and protects them with a spinlock. This is needed because both the hard IRQ handler and a workhandler will need to manipulate the mask to disable the AV_CORE interrupt. Signed-off-by: Andy Walls <awalls@md.metrocast.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx23885/cx23885.h')
-rw-r--r--drivers/media/video/cx23885/cx23885.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index 460f430d028f..5bf6ed09c970 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -325,6 +325,7 @@ struct cx23885_dev {
325 u32 __iomem *lmmio; 325 u32 __iomem *lmmio;
326 u8 __iomem *bmmio; 326 u8 __iomem *bmmio;
327 int pci_irqmask; 327 int pci_irqmask;
328 spinlock_t pci_irqmask_lock; /* protects mask reg too */
328 int hwrevision; 329 int hwrevision;
329 330
330 /* This valud is board specific and is used to configure the 331 /* This valud is board specific and is used to configure the
@@ -485,6 +486,10 @@ extern u32 cx23885_gpio_get(struct cx23885_dev *dev, u32 mask);
485extern void cx23885_gpio_enable(struct cx23885_dev *dev, u32 mask, 486extern void cx23885_gpio_enable(struct cx23885_dev *dev, u32 mask,
486 int asoutput); 487 int asoutput);
487 488
489extern void cx23885_irq_add_enable(struct cx23885_dev *dev, u32 mask);
490extern void cx23885_irq_enable(struct cx23885_dev *dev, u32 mask);
491extern void cx23885_irq_disable(struct cx23885_dev *dev, u32 mask);
492extern void cx23885_irq_remove(struct cx23885_dev *dev, u32 mask);
488 493
489/* ----------------------------------------------------------- */ 494/* ----------------------------------------------------------- */
490/* cx23885-cards.c */ 495/* cx23885-cards.c */