Hi Michael,
Please try the enclosed patch. It is just a hack.
Please, post the dmesg, working or not.
Cheers,
Mauro.
diff -r 62d749961694 linux/drivers/media/video/videobuf-core.c
--- a/linux/drivers/media/video/videobuf-core.c Fri Aug 24 02:22:15 2007 +0200
+++ b/linux/drivers/media/video/videobuf-core.c Sun Oct 07 00:48:50 2007 -0300
@@ -92,10 +92,25 @@ int videobuf_iolock(struct videobuf_queu
int videobuf_iolock(struct videobuf_queue* q, struct videobuf_buffer *vb,
struct v4l2_framebuffer *fbuf)
{
+ int rc;
+
+printk("%s: init\n",__FUNCTION__);
+
MAGIC_CHECK(vb->magic,MAGIC_BUFFER);
MAGIC_CHECK(q->int_ops->magic,MAGIC_QTYPE_OPS);
- return CALL(q,iolock,q,vb,fbuf);
+ schedule();
+
+// mutex_lock(&q->lock);
+
+printk("%s: calling actual handler\n",__FUNCTION__);
+
+ rc = CALL(q,iolock,q,vb,fbuf);
+// mutex_unlock(&q->lock);
+
+printk("%s: return\n",__FUNCTION__);
+
+ return rc;
}
/* --------------------------------------------------------------------- */
@@ -915,12 +930,18 @@ int videobuf_mmap_mapper(struct videobuf
{
int retval;
- MAGIC_CHECK(q->int_ops->magic,MAGIC_QTYPE_OPS);
+printk("%s: init\n",__FUNCTION__);
mutex_lock(&q->lock);
+
+ MAGIC_CHECK(q->int_ops->magic,MAGIC_QTYPE_OPS);
+printk("%s: calling actual handler\n",__FUNCTION__);
+
retval=CALL(q,mmap_mapper,q,vma);
+
mutex_unlock(&q->lock);
+printk("%s: returning\n",__FUNCTION__);
return retval;
}
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb