[Savage40] Sync issues and Building new DRM modules
William Uther
willu.mailingLists at cse.unsw.edu.au
Sat Jan 8 00:49:47 PST 2005
Hi,
I've tracked down the MythTV tearing issues a little further (this is
separate to the interlace modeline sync issues I was referring to in
previous emails.) It seems there are two strange things going on.
i) Apparently many drivers Xv implementations implement page flipping
during the next vertical blank. The savage drivers don't.
ii) With Xv not syncing automatically, I need to build DRM so that
the playback system knows when the vertical blank will occur.
So, I've been trying to build the savage DRM modules following these
instructions: http://dri.freedesktop.org/wiki/Building
I get this error when building (make in the linux-core dir):
% make LINUXDIR=/data/src/linux-2.6.10 # this is the 2.6.10 release
from kernel.org
make -C /data/src/linux-2.6.10 SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
make[1]: Entering directory `/data/src/linux-2.6.10'
CC [M] /data/src/Xorg/drm/linux-core/drm_auth.o
In file included from /data/src/Xorg/drm/linux-core/drmP.h:759,
from /data/src/Xorg/drm/linux-core/drm_auth.c:36:
/data/src/Xorg/drm/linux-core/drm_memory.h: In function
`drm_follow_page':
/data/src/Xorg/drm/linux-core/drm_memory.h:143: error: `pud_t'
undeclared (first use in this function)
/data/src/Xorg/drm/linux-core/drm_memory.h:143: error: (Each undeclared
identifier is reported only once
/data/src/Xorg/drm/linux-core/drm_memory.h:143: error: for each
function it appears in.)
/data/src/Xorg/drm/linux-core/drm_memory.h:143: error: `pud' undeclared
(first use in this function)
/data/src/Xorg/drm/linux-core/drm_memory.h:143: warning: implicit
declaration of function `pud_offset'
make[2]: *** [/data/src/Xorg/drm/linux-core/drm_auth.o] Error 1
make[1]: *** [_module_/data/src/Xorg/drm/linux-core] Error 2
make[1]: Leaving directory `/data/src/linux-2.6.10'
make: *** [modules] Error 2
The kernel source is configured. A grep for pud_t in the kernel source
and the drm dir doesn't find anything (except that single reference in
linux-core/drm_memory.h).
Looking at that header I see:
#if LINUX_VERSION_CODE < 0x02060a /* KERNEL_VERSION(2,6,10) */
pmd_t *pmd = pmd_offset(pgd, (unsigned long)vaddr);
#else
pud_t *pud = pud_offset(pgd, (unsigned long) vaddr);
pmd_t *pmd = pmd_offset(pud, (unsigned long) vaddr);
#endif
I assume that this 'pud' was something that was going to be introduced
but was pushed back to a later kernel version?
Changing the 0x02060a to 0x02060b seems to let things build (postpones
the problem?). Does this seem right to people?
Cheers,
Will :-}
--
Dr William Uther National ICT Australia
Phone: +61 2 9385 6357 School of Computer Science and
Engineering
Email: willu at cse.unsw.edu.au University of New South Wales
Web: http://www.cse.unsw.edu.au/~willu/ Sydney, Australia
More information about the Savage40
mailing list