summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx18/cx18-mailbox.c
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2008-10-25 22:27:06 -0400
committerAndy Walls <awalls@radix.net>2008-10-25 22:27:06 -0400
commit709958b74274a916790bc589e5d31ef95f90be86 (patch)
treea092d6612715429e48346c0aaf3e68ae34e85456 /linux/drivers/media/video/cx18/cx18-mailbox.c
parent2d12eca3a86debc804db4960c4136098fb750c0d (diff)
downloadmediapointer-dvb-s2-709958b74274a916790bc589e5d31ef95f90be86.tar.gz
mediapointer-dvb-s2-709958b74274a916790bc589e5d31ef95f90be86.tar.bz2
cx18: Disable write retries for registers that always change - part 1.
From: Andy Walls <awalls@radix.net> cx18: Disable write retries for registers that always change - part 1. Interrupt related registers will likely not read back the value we just wrote. Disable retries for these registers for now to avoid accidently discarding interrupts. More intelligent read back verification criteria are needed for these and other registers (e.g. GPIO line registers), which will be addressed in subsequent changes. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
Diffstat (limited to 'linux/drivers/media/video/cx18/cx18-mailbox.c')
-rw-r--r--linux/drivers/media/video/cx18/cx18-mailbox.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/linux/drivers/media/video/cx18/cx18-mailbox.c b/linux/drivers/media/video/cx18/cx18-mailbox.c
index 9d18dd22d..87f7c8e2c 100644
--- a/linux/drivers/media/video/cx18/cx18-mailbox.c
+++ b/linux/drivers/media/video/cx18/cx18-mailbox.c
@@ -176,7 +176,7 @@ long cx18_mb_ack(struct cx18 *cx, const struct cx18_mailbox *mb)
cx18_setup_page(cx, SCB_OFFSET);
cx18_write_sync(cx, mb->request, &ack_mb->ack);
- cx18_write_reg(cx, ack_irq, SW2_INT_SET);
+ cx18_write_reg_noretry(cx, ack_irq, SW2_INT_SET);
return 0;
}
@@ -225,7 +225,7 @@ static int cx18_api_call(struct cx18 *cx, u32 cmd, int args, u32 data[])
}
if (info->flags & API_FAST)
timeout /= 2;
- cx18_write_reg(cx, irq, SW1_INT_SET);
+ cx18_write_reg_noretry(cx, irq, SW1_INT_SET);
while (!sig && cx18_readl(cx, &mb->ack) != cx18_readl(cx, &mb->request)
&& cnt < 660) {