The following code that recently made its way into the saa7134 driver appears to be broken: saa7134-video.c: /* make sure we have seen both fields */ if ((status & 0x10) == 0x00) { dev->video_q.curr->top_seen = 1; goto done; } This was originally : /* make sure we have seen both fields */ if ((status & 0x10) == 0x10) { dev->video_q.curr->top_seen = 1; goto done; } Changing it back caused correct field order for me on my flyvideo 3000. The person who the test with 0x00 worked for mentioned that it was only a workaround, as the new behaviour clashes with the documentation for the chip. It is possible that either there are different revisions of the chip or more likely that the workaround solved a symtom of another unrelated problem. I'm guessing the latter as occasionally I've seen field order perfect with the 0x00 code only to find it revert to being swapped when rebooting or reloading the module. On my setup it appears to have been consistently correct since changing it back to 0x10, correct field order also appears to remain correct between module reloads. Richard -- Richard Jones <richard@xxxxxxxxxxxx>