diff options
author | Andy Walls <awalls@radix.net> | 2008-11-07 21:57:46 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-12-30 06:38:03 -0500 |
commit | ac50441720332f22a9d85ac03151d6acb7bc55d6 (patch) | |
tree | 4c7e9b213cccf24f6cff3f614c61c80a7b96932a /drivers/media/video/cx18/cx18-irq.c | |
parent | d670b6ff4ef32d3a0804ec26ad53a2a7712cec98 (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.c | 3 |
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)) { |