Fix for glint_drv.so found, all release versions of driver do work now.
It was a typical endianess issue.

See 
Xorg_alanc/X-src-20070227__20070401sun/X-src-20070227/XW_NV/open-src/xserver/xorg/xorg-server-1.2.0/hw/xfree86/common/compiler.h
 
from lines 1699 to 1741:

# elif defined(__sparc__) || defined(sparc)
 /*
  * Like powerpc, we provide byteswapping and no byteswapping functions
  * here with byteswapping as default, drivers that don't need byteswapping
  * should define SPARC_MMIO_IS_BE (perhaps create a generic macro so that we
  * do not need to use PPC_MMIO_IS_BE and the sparc one in all the same places
  * of drivers?).
  */
#  define MMIO_IN8(base, offset) xf86ReadMmio8(base, offset)
#  define MMIO_OUT8(base, offset, val) \
    xf86WriteMmio8(base, offset, (CARD8)(val))
#  define MMIO_ONB8(base, offset, val) \
    xf86WriteMmio8NB(base, offset, (CARD8)(val))

#  if defined(SPARC_MMIO_IS_BE) /* No byteswapping */
#   define MMIO_IN16(base, offset) xf86ReadMmio16Be(base, offset)
#   define MMIO_IN32(base, offset) xf86ReadMmio32Be(base, offset)
#   define MMIO_OUT16(base, offset, val) \
     xf86WriteMmio16Be(base, offset, (CARD16)(val))
#   define MMIO_OUT32(base, offset, val) \
     xf86WriteMmio32Be(base, offset, (CARD32)(val))
#   define MMIO_ONB16(base, offset, val) \
     xf86WriteMmio16BeNB(base, offset, (CARD16)(val))
#   define MMIO_ONB32(base, offset, val) \
     xf86WriteMmio32BeNB(base, offset, (CARD32)(val))
#  else /* byteswapping is the default */
#   define MMIO_IN16(base, offset) xf86ReadMmio16Le(base, offset)
#   define MMIO_IN32(base, offset) xf86ReadMmio32Le(base, offset)
#   define MMIO_OUT16(base, offset, val) \
     xf86WriteMmio16Le(base, offset, (CARD16)(val))
#   define MMIO_OUT32(base, offset, val) \
     xf86WriteMmio32Le(base, offset, (CARD32)(val))
#   define MMIO_ONB16(base, offset, val) \
     xf86WriteMmio16LeNB(base, offset, (CARD16)(val))
#   define MMIO_ONB32(base, offset, val) \
     xf86WriteMmio32LeNB(base, offset, (CARD32)(val))
#  endif

#  define MMIO_MOVE32(base, offset, val) \
       xf86WriteMmio32Be(base, offset, (CARD32)(val))

# else /* !__alpha__ && !__powerpc__ && !__sparc__ */

--->>
So 
#  if defined(SPARC_MMIO_IS_BE) /* No byteswapping */
needs to evaluate to true.

Here is a working Makefile fix for glint (for MSB ppc and sparc) :

CPPFLAGS+= -DPPC_MMIO_IS_BE -DSPARC_MMIO_IS_BE

btw, I purchased a few more (so far unsupported/untested) frame buffers, which 
will arrive soon:

Two items XVR-1000 (ffb3 with the java cpu)
Expert 3d
Expert 3d lite
XVR-500
XVR-600

TurboGX, TurboGXPlus  (they just arrived yesterday, so I can actually test our 
cg6 driver now)


~m

p.s. I do include your patched wsfb_drv.so now [both patches], but in a 
location where it is not found by default, it now gets installed to  
/export/home/bochnig/projects/Xorg_alanc/X-src-20070227__20070401sun/X-src-20070227/XW_NV/proto-sun4-svr4/usr/X11/lib/modules/drivers/opensolaris/wsfb_drv.so
 (so that it doesn't affect the native drivers during bus scanning by default, 
but is still available for testing and can be symlinked-over for that purpose)
I'm also doing exactly the same with vesa_drv.so and vga_drv.so, which 
currently don't fully work with any card on sparc, but maybe we can get them 
flirting with the wildcat chipsets some day, at least the VESA driver ...  ??

--
Best regards,
Martin Bochnig
 
 
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
[EMAIL PROTECTED]

Reply via email to