diff options
author | Steven Toth <stoth@kernellabs.com> | 2010-07-31 15:29:34 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-21 07:54:58 -0200 |
commit | b31f1222990c02bccb73805648493b5e132a52f9 (patch) | |
tree | cc9ca91a3a3ea3592b458accffae5291734526f1 /drivers/media/video/saa7164/saa7164-core.c | |
parent | f6eeece8ec2a323f004265527282f443e083d25a (diff) | |
download | op-kernel-dev-b31f1222990c02bccb73805648493b5e132a52f9.zip op-kernel-dev-b31f1222990c02bccb73805648493b5e132a52f9.tar.gz |
[media] saa7164: mundane buffer debugging changes to track issues
Code is removed in future patches in this set.
Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/saa7164/saa7164-core.c')
-rw-r--r-- | drivers/media/video/saa7164/saa7164-core.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/drivers/media/video/saa7164/saa7164-core.c b/drivers/media/video/saa7164/saa7164-core.c index ad619b3..09f7a64 100644 --- a/drivers/media/video/saa7164/saa7164-core.c +++ b/drivers/media/video/saa7164/saa7164-core.c @@ -316,9 +316,9 @@ static void saa7164_work_enchandler(struct work_struct *w) if (buf->idx == rp) { crc = crc32(0, buf->cpu, buf->actual_size); - if (crc != port->shadow_crc[rp]) - printk(KERN_ERR "%s crc didn't match shadow was 0x%x now 0x%x\n", - __func__, port->shadow_crc[rp], crc); +// if (crc != port->shadow_crc[rp]) +// printk(KERN_ERR "%s crc didn't match shadow was 0x%x now 0x%x\n", +// __func__, port->shadow_crc[rp], crc); /* Found the buffer, deal with it */ dprintk(DBGLVL_IRQ, "%s() wp: %d processing: %d crc32: 0x%x\n", @@ -350,12 +350,6 @@ static void saa7164_work_enchandler(struct work_struct *w) else ok = 0; - if (ok == 0) - printk(KERN_ERR - "rp: %d dmacrc: 0x%08x shadcrc: 0x%08x ubufcrc: 0x%08x %s\n", - rp, buf->crc, port->shadow_crc[rp], ubuf->crc, - ok ? "crcgood" : "crcbad"); - /* Requeue the buffer on the free list */ ubuf->pos = 0; @@ -430,6 +424,7 @@ static irqreturn_t saa7164_irq_encoder(struct saa7164_port *port) struct list_head *c, *n; int wp, rp, i = 0; u8 *p; + u32 *up, j; /* Find the current write point from the hardware */ wp = saa7164_readl(port->bufcounter); @@ -438,6 +433,8 @@ static irqreturn_t saa7164_irq_encoder(struct saa7164_port *port) return 0; } + printk(KERN_ERR "port %p wp = %d\n", port, wp); + /* Find the previous buffer to the current write point */ if (wp == 0) rp = 7; @@ -449,6 +446,11 @@ static irqreturn_t saa7164_irq_encoder(struct saa7164_port *port) return 0; } + if (rp == port->last_irq_rp) { + printk(KERN_ERR "%s() Duplicate rp = %d port %p\n", + __func__, rp, port); + } + if (rp != ((port->last_irq_rp + 1) % 8)) { printk(KERN_ERR "%s() Multiple bufs on interrupt, port %p\n", __func__, port); @@ -503,16 +505,17 @@ static irqreturn_t saa7164_irq_encoder(struct saa7164_port *port) } if (buf->idx == rp) { - - memcpy_fromio(port->shadow_buf[rp], buf->cpu, buf->actual_size); - + up = (u32 *)port->shadow_buf[rp]; + for (j = 0 ; j < (buf->actual_size / sizeof(u32)); j++) { + *(up + j) = (rp << 28) | port->counter++; + } port->shadow_crc[rp] = crc32(0, port->shadow_buf[rp], buf->actual_size); buf->crc = crc32(0, buf->cpu, buf->actual_size); - if (port->shadow_crc[rp] != buf->crc) - printk(KERN_ERR "%s() crc check failed 0x%x vs 0x%x\n", - __func__, port->shadow_crc[rp], buf->crc); +// if (port->shadow_crc[rp] != buf->crc) +// printk(KERN_ERR "%s() crc check failed 0x%x vs 0x%x\n", +// __func__, port->shadow_crc[rp], buf->crc); break; } |