I have two v4l2 testing programs using "grabdisplay" mode which are both working okay with a bt878a card and the bttv driver, but both failing on an identical machine which has a "Taiwan special" saa7134 card and the saa7134 driver (using 0.9.5). The systems are running linux-2.4.20 with "Kraxel mods" for v4l2. The symptom is that, after queueing mmapped buffers with VIDIOC_QBUF and starting streaming, when a VIDIOC_DQBUF ioctl is issued an EIO error is returned. Reading the code, it appears that this error is being caused by a dma timeout, but I'm not sure how to proceed with further debugging. I'm not sure what the "proper" card-description for this unit is, but I have tried all possibilities with similar results. I loaded the module (manually forcing it with card=2) with core_debug, video_debug and i2c_debug enabled, and the resulting dump is attached. Any suggestions will be greatly appreciated! Bill
saa7130/34: v4l2 driver version 0.2.4 loaded saa7134[0]: found at 02:04.0, rev: 1, irq: 16, latency: 32, mmio: 0xfb025000 saa7134[0]: subsystem: 1131:0000, board: LifeView FlyVIDEO3000 [card=2,insmod option] saa7134[0]/video: set tv norm = PAL saa7134[0]/video: video input = 0 [Television] saa7134[0]/video: set tv norm = PAL tuner: probing saa7134[0] i2c adapter [id=0x90000] tuner: chip found @ 0xc0 tuner: type set to 5 (Philips PAL_BG (FI1216 and compatibles)) i2c-core.o: client [Philips PAL_BG (FI1216 and compa] registered to adapter [saa7134[0]](pos. 0). saa7134[0]/video: DCSDT: no signal tda9887: probing saa7134[0] i2c adapter [id=0x90000] i2c-core.o: adapter saa7134[0] registered as adapter 0. saa7134[0]: Huh, no eeprom present (err=-5)? saa7134[0]: registered device video0 [v4l2] saa7134[0]: registered device vbi0 saa7134[0]: registered device radio0 saa7134[0]/video: DCSDT: no signal saa7134[0]/video: open minor=0 radio=0 type=video-cap saa7134[0]/video: set tv norm = PAL saa7134[0]/video: video input = 0 [Television] saa7134[0]/video: set tv norm = PAL saa7134[0]: ioctl 0xc04c561a (v4l2, rw, VIDIOC_ENUMINPUT) saa7134[0]: ioctl 0xc04c561a (v4l2, rw, VIDIOC_ENUMINPUT) saa7134[0]: ioctl 0xc04c561a (v4l2, rw, VIDIOC_ENUMINPUT) saa7134[0]: ioctl 0xc04c561a (v4l2, rw, VIDIOC_ENUMINPUT) saa7134[0]: ioctl 0xc04c561a (v4l2, rw, VIDIOC_ENUMINPUT) saa7134[0]: ioctl 0xc0405619 (v4l2, rw, VIDIOC_ENUMSTD) saa7134[0]: ioctl 0xc0405619 (v4l2, rw, VIDIOC_ENUMSTD) saa7134[0]: ioctl 0xc0405619 (v4l2, rw, VIDIOC_ENUMSTD) saa7134[0]: ioctl 0xc0405619 (v4l2, rw, VIDIOC_ENUMSTD) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0xc0405602 (v4l2, rw, VIDIOC_ENUM_PIXFMT) saa7134[0]: ioctl 0x80685600 (v4l2, r-, VIDIOC_QUERYCAP) saa7134[0]: ioctl 0xc0045627 (v4l2, rw, VIDIOC_S_INPUT) saa7134[0]/video: video input = 1 [Composite1] saa7134[0]/video: set tv norm = PAL saa7134[0]: ioctl 0x40085618 (v4l2, -w, VIDIOC_S_STD) saa7134[0]/video: set tv norm = PAL saa7134[0]: ioctl 0xc0cc5604 (v4l2, rw, VIDIOC_G_FMT) saa7134[0]: ioctl 0xc0cc5605 (v4l2, rw, VIDIOC_S_FMT) saa7134[0]: ioctl 0xc0145608 (v4l2, rw, VIDIOC_REQBUFS) saa7134[0]: ioctl 0xc0445609 (v4l2, rw, VIDIOC_QUERYBUF) saa7134[0]: ioctl 0xc0445609 (v4l2, rw, VIDIOC_QUERYBUF) saa7134[0]: ioctl 0xc0445609 (v4l2, rw, VIDIOC_QUERYBUF) saa7134[0]: ioctl 0xc044560f (v4l2, rw, VIDIOC_QBUF) saa7134[0]/video: buffer_prepare [0,size=720x576,bytes=1244160,fields=interlaced,24 bpp RGB, le] saa7134[0]: ioctl 0xc044560f (v4l2, rw, VIDIOC_QBUF) saa7134[0]/video: buffer_prepare [1,size=720x576,bytes=1244160,fields=interlaced,24 bpp RGB, le] saa7134[0]: ioctl 0xc044560f (v4l2, rw, VIDIOC_QBUF) saa7134[0]/video: buffer_prepare [2,size=720x576,bytes=1244160,fields=interlaced,24 bpp RGB, le] saa7134[0]: ioctl 0x40045612 (v4l2, -w, VIDIOC_STREAMON) saa7134[0]/video: res: get 2 saa7134[0]/core: buffer_queue ecf443c0 saa7134[0]/video: buffer_activate buf=ecf443c0 saa7134[0]/video: prescale=1 xscale=1024 yscale=1024 saa7134[0]/video: yscale LPI yscale=1024 saa7134[0]/core: dmabits: task=0x01 ctrl=0x01 irq=0x3 split=yes saa7134[0]/core: buffer_queue e66db8c0 saa7134[0]/core: buffer_queue ecf44940 saa7134[0]/core: timeout on ecf443c0 saa7134[0]/core: buffer_finish ecf443c0 saa7134[0]/core: buffer_next e66db8c0 [prev=ecf4498c/next=e66db90c] saa7134[0]/video: buffer_activate buf=e66db8c0 saa7134[0]/video: prescale=1 xscale=1024 yscale=1024 saa7134[0]/video: yscale LPI yscale=1024 saa7134[0]: ioctl 0xc0445611 (v4l2, rw, VIDIOC_DQBUF) saa7134[0]/core: dmabits: task=0x01 ctrl=0x01 irq=0x3 split=yes saa7134[0]/core: buffer_next #2 prev=ecf4498c/next=ecf4498c saa7134[0]/core: timeout on e66db8c0 saa7134[0]/core: buffer_finish e66db8c0 saa7134[0]/core: buffer_next ecf44940 [prev=ecf4498c/next=ecf4498c] saa7134[0]/video: buffer_activate buf=ecf44940 saa7134[0]/video: prescale=1 xscale=1024 yscale=1024 saa7134[0]/video: yscale LPI yscale=1024 saa7134[0]/core: dmabits: task=0x01 ctrl=0x01 irq=0x3 split=yes saa7134[0]/core: buffer_next #2 prev=eb052d44/next=eb052d44 saa7134[0]/core: timeout on ecf44940 saa7134[0]/core: buffer_finish ecf44940 saa7134[0]/core: buffer_next 00000000 saa7134[0]/core: dmabits: task=0x00 ctrl=0x00 irq=0x0 split=yes saa7134[0]/video: res: put 2