aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18/cx18-irq.c
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2008-11-07 21:57:46 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-30 06:38:03 -0500
commitac50441720332f22a9d85ac03151d6acb7bc55d6 (patch)
tree4c7e9b213cccf24f6cff3f614c61c80a7b96932a /drivers/media/video/cx18/cx18-irq.c
parentd670b6ff4ef32d3a0804ec26ad53a2a7712cec98 (diff)
V4L/DVB (9595): cx18: Improve handling of outgoing mailboxes detected to be busy
cx18: Improve handling of outgoing mailboxes detected to be busy. When encountering a busy mailbox, sleep instead of polling, and wait for interrupt or timeout. If the mailbox is still busy, force it free. When sending commands, make sure we never create a situation where we mark the mailbox busy upon sending, and ensure we always have a method to cleanly recover from a busy mailbox. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx18/cx18-irq.c')
-rw-r--r--drivers/media/video/cx18/cx18-irq.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/video/cx18/cx18-irq.c b/drivers/media/video/cx18/cx18-irq.c
index 37b931055d3a..4912b3c8e6a5 100644
--- a/drivers/media/video/cx18/cx18-irq.c
+++ b/drivers/media/video/cx18/cx18-irq.c
@@ -167,7 +167,8 @@ irqreturn_t cx18_irq_handler(int irq, void *dev_id)
167 cx18_write_reg_expect(cx, hw2, HW2_INT_CLR_STATUS, ~hw2, hw2); 167 cx18_write_reg_expect(cx, hw2, HW2_INT_CLR_STATUS, ~hw2, hw2);
168 168
169 if (sw1 || sw2 || hw2) 169 if (sw1 || sw2 || hw2)
170 CX18_DEBUG_HI_IRQ("SW1: %x SW2: %x HW2: %x\n", sw1, sw2, hw2); 170 CX18_DEBUG_HI_IRQ("received interrupts "
171 "SW1: %x SW2: %x HW2: %x\n", sw1, sw2, hw2);
171 172
172 /* To do: interrupt-based I2C handling 173 /* To do: interrupt-based I2C handling
173 if (hw2 & (HW2_I2C1_INT|HW2_I2C2_INT)) { 174 if (hw2 & (HW2_I2C1_INT|HW2_I2C2_INT)) {