[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: xfree86 4.2.0-0pre1v3 (source,i386) available at the X Strike Force



[Please followup to debian-x.  I am not subscribed to debian-hppa.]

On Sun, Sep 01, 2002 at 06:29:44PM -0500, Branden Robinson wrote:
> On Sun, Aug 25, 2002 at 02:20:17AM +0900, ISHIKAWA Mutsumi wrote:
> >  On m68k, mac64 dynamic loading driver cannot have worked from
> > before. Because xf86WriteMmio32Be is not defined anywhere.
> > 
> >  Perhaps, we should define xf86WriteMmio32Be function in
> > xc/programs/Xserver/hw/xfree86/common/compiler.h.
> 
> I think this is a bug in ati/atimach64.c:
> 
> apocalypse:~/packages/xfree86/4.2.0/xfree86-4.2.0/build-tree/xc/programs/Xserver/hw/xfree86> grep -r xf86WriteMmio32Be *
> common/compiler.h:xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset,
> common/compiler.h:xf86WriteMmio32BeNB(__volatile__ void *base, const unsigned long offset,
> common/compiler.h:xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset,
> common/compiler.h:xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset,
> common/compiler.h:    xf86WriteMmio32Be(base, offset, (CARD32)(val))
> common/compiler.h:    xf86WriteMmio32Be(base, offset, (CARD32)(val))
> common/compiler.h:    xf86WriteMmio32Be(base, offset, (CARD32)(val))
> common/compiler.h:    xf86WriteMmio32BeNB(base, offset, (CARD32)(val))
> common/compiler.h:    xf86WriteMmio32Be(base, offset, (CARD32)(val))
> drivers/ati/atimach64.c:                case  0:  xf86WriteMmio32Be(pDst +  0, 0, *(pSrc +  0));
> drivers/ati/atimach64.c:                case  1:  xf86WriteMmio32Be(pDst +  1, 0, *(pSrc +  1));
> drivers/ati/atimach64.c:                case  2:  xf86WriteMmio32Be(pDst +  2, 0, *(pSrc +  2));
> drivers/ati/atimach64.c:                case  3:  xf86WriteMmio32Be(pDst +  3, 0, *(pSrc +  3));
> drivers/ati/atimach64.c:                case  4:  xf86WriteMmio32Be(pDst +  4, 0, *(pSrc +  4));
> drivers/ati/atimach64.c:                case  5:  xf86WriteMmio32Be(pDst +  5, 0, *(pSrc +  5));
> drivers/ati/atimach64.c:                case  6:  xf86WriteMmio32Be(pDst +  6, 0, *(pSrc +  6));
> drivers/ati/atimach64.c:                case  7:  xf86WriteMmio32Be(pDst +  7, 0, *(pSrc +  7));
> drivers/ati/atimach64.c:                case  8:  xf86WriteMmio32Be(pDst +  8, 0, *(pSrc +  8));
> drivers/ati/atimach64.c:                case  9:  xf86WriteMmio32Be(pDst +  9, 0, *(pSrc +  9));
> drivers/ati/atimach64.c:                case 10:  xf86WriteMmio32Be(pDst + 10, 0, *(pSrc + 10));
> drivers/ati/atimach64.c:                case 11:  xf86WriteMmio32Be(pDst + 11, 0, *(pSrc + 11));
> drivers/ati/atimach64.c:                case 12:  xf86WriteMmio32Be(pDst + 12, 0, *(pSrc + 12));
> drivers/ati/atimach64.c:                case 13:  xf86WriteMmio32Be(pDst + 13, 0, *(pSrc + 13));
> drivers/ati/atimach64.c:                case 14:  xf86WriteMmio32Be(pDst + 14, 0, *(pSrc + 14));
> drivers/ati/atimach64.c:                case 15:  xf86WriteMmio32Be(pDst + 15, 0, *(pSrc + 15));
> 
> This file is the only part of any XFree86 video driver code that ever
> references any of the xf86WriteMmio functions.
> 
> The other files that reference them are:
> 
> loader/xf86sym.c
> os-support/bsd/bsd_video.c
> os-support/linux/lnx_video.c
> 
> Therefore I get the feeling that atimach64.c is doing something wrong.
> compiler.h does go to a lot of trouble to set up macros that expand to
> these various functions.
> 
> I'll see if I can puzzle it out.

I found the problem.  It's a Debianism.

The inappropriate xf86WriteMmio32Be() stuff comes from patch #100, PCI
domain support, applied for the benefit of our SPARC users.

Patch #400 turns that stuff off for hppa.

I think the original code from patch #100 is wrong, so I am dropping
that hunk of the patch, and patch #400 entirely since it just #ifdefs
off the patch I'm dropping.

I will want to hear from Mach64 users on SPARC, m68k, and HP-PA as to
what the effects of my changes are.  (I'm pretty sure it will compile,
since I'm essentially restoring this part atimach64.c to its current
state on xf-4_2-branch.)

This code path is excercised in accelerated color expansion fills, so a
good test case is probably some fast text scrolling in an xterm with XAA
enabled.  (I.e., make sure you're not disabling acceleration in your
XF86Config-4 file.)

-- 
G. Branden Robinson                |    The first thing the communists do
Debian GNU/Linux                   |    when they take over a country is to
branden@debian.org                 |    outlaw cockfighting.
http://people.debian.org/~branden/ |    -- Oklahoma State Senator John Monks

Attachment: pgpGxx3AoUbEw.pgp
Description: PGP signature


Reply to: