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 linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb