The patch number 9476 was added via Mauro Carvalho Chehab <[EMAIL PROTECTED]>
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        [EMAIL PROTECTED]

------

From: Mauro Carvalho Chehab  <[EMAIL PROTECTED]>
merge: http://linuxtv.org/hg/~awalls/cx18-bugfix


Priority: normal

Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>


---

 linux/drivers/media/video/cx18/cx18-driver.c  |    2 --
 linux/drivers/media/video/cx18/cx18-io.c      |    4 ++--
 linux/drivers/media/video/cx18/cx18-irq.c     |    6 +++---
 linux/drivers/media/video/cx18/cx18-mailbox.c |    4 ++--
 4 files changed, 7 insertions(+), 9 deletions(-)

diff -r 534445ecb653 -r 8d49e3f706ac 
linux/drivers/media/video/cx18/cx18-driver.c
--- a/linux/drivers/media/video/cx18/cx18-driver.c      Tue Oct 28 01:27:37 
2008 +0000
+++ b/linux/drivers/media/video/cx18/cx18-driver.c      Thu Oct 30 05:51:07 
2008 -0200
@@ -732,8 +732,6 @@ static int __devinit cx18_probe(struct p
                cx->std = V4L2_STD_NTSC_M;
 
        if (cx->options.tuner == -1) {
-               int i;
-
                for (i = 0; i < CX18_CARD_MAX_TUNERS; i++) {
                        if ((cx->std & cx->card->tuners[i].std) == 0)
                                continue;
diff -r 534445ecb653 -r 8d49e3f706ac linux/drivers/media/video/cx18/cx18-io.c
--- a/linux/drivers/media/video/cx18/cx18-io.c  Tue Oct 28 01:27:37 2008 +0000
+++ b/linux/drivers/media/video/cx18/cx18-io.c  Thu Oct 30 05:51:07 2008 -0200
@@ -218,7 +218,7 @@ void cx18_sw1_irq_enable(struct cx18 *cx
 void cx18_sw1_irq_enable(struct cx18 *cx, u32 val)
 {
        u32 r;
-       cx18_write_reg(cx, val, SW1_INT_STATUS);
+       cx18_write_reg_noretry(cx, val, SW1_INT_STATUS);
        r = cx18_read_reg(cx, SW1_INT_ENABLE_PCI);
        cx18_write_reg(cx, r | val, SW1_INT_ENABLE_PCI);
 }
@@ -233,7 +233,7 @@ void cx18_sw2_irq_enable(struct cx18 *cx
 void cx18_sw2_irq_enable(struct cx18 *cx, u32 val)
 {
        u32 r;
-       cx18_write_reg(cx, val, SW2_INT_STATUS);
+       cx18_write_reg_noretry(cx, val, SW2_INT_STATUS);
        r = cx18_read_reg(cx, SW2_INT_ENABLE_PCI);
        cx18_write_reg(cx, r | val, SW2_INT_ENABLE_PCI);
 }
diff -r 534445ecb653 -r 8d49e3f706ac linux/drivers/media/video/cx18/cx18-irq.c
--- a/linux/drivers/media/video/cx18/cx18-irq.c Tue Oct 28 01:27:37 2008 +0000
+++ b/linux/drivers/media/video/cx18/cx18-irq.c Thu Oct 30 05:51:07 2008 -0200
@@ -153,9 +153,9 @@ irqreturn_t cx18_irq_handler(int irq, vo
        sw1_mask = cx18_read_reg(cx, SW1_INT_ENABLE_PCI) | IRQ_EPU_TO_HPU;
        sw1 = cx18_read_reg(cx, SW1_INT_STATUS) & sw1_mask;
 
-       cx18_write_reg(cx, sw2&sw2_mask, SW2_INT_STATUS);
-       cx18_write_reg(cx, sw1&sw1_mask, SW1_INT_STATUS);
-       cx18_write_reg(cx, hw2&hw2_mask, HW2_INT_CLR_STATUS);
+       cx18_write_reg_noretry(cx, sw2&sw2_mask, SW2_INT_STATUS);
+       cx18_write_reg_noretry(cx, sw1&sw1_mask, SW1_INT_STATUS);
+       cx18_write_reg_noretry(cx, hw2&hw2_mask, HW2_INT_CLR_STATUS);
 
        if (sw1 || sw2 || hw2)
                CX18_DEBUG_HI_IRQ("SW1: %x  SW2: %x  HW2: %x\n", sw1, sw2, hw2);
diff -r 534445ecb653 -r 8d49e3f706ac 
linux/drivers/media/video/cx18/cx18-mailbox.c
--- a/linux/drivers/media/video/cx18/cx18-mailbox.c     Tue Oct 28 01:27:37 
2008 +0000
+++ b/linux/drivers/media/video/cx18/cx18-mailbox.c     Thu Oct 30 05:51:07 
2008 -0200
@@ -176,7 +176,7 @@ long cx18_mb_ack(struct cx18 *cx, const 
 
        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
        }
        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) {


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/8d49e3f706ac7db321705ccd725dc9c2a337def5

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to