[Unichrome-devel] VBlank interrupts and Xv DMA transfers
Brought to you by:
dwdeath
From: Simon F. <sim...@on...> - 2007-07-05 08:10:33
|
Hello, I'm trying to chase a problem with VBlank interrupts not being delivered when I use DMA to transfer video to the VT3122 chip. We're using the DRM supplied in kernel 2.6.21, and I've tried the latest git version of the driver; I've had to up the number of waits in ViaHQVFlipInitWait (via_video.c) to 15000, as this chip seems to be taking around 1750-1800 loops to finish flipping. Looking at /proc/interrupts, and at DRM debug output in kernel messages, it appears that I don't get vblank interrupts if there's a DMA transfer using the blitter. In desperation, I've tried changing ViaSwovCopyDMA (under the /* hrm */ comment) to either offer the blitter many more lines (I tried line lengths of 1 byte and of 704 bytes, as my source video is 704x576), or to blit line by line. Both of these worked, but didn't restore my vblank interrupts. I've also tried disabling the DRM code that polls the blitter for end of DMA transfer, but this just resulted in DMA never completing, and interrupts not coming through regularly either. I've attached a compressed Xorg.log, in case it helps; it was created at logverbose 99. -- Simon Farnsworth |