On Mon, Dec 10, 2001 at 11:45:40PM +0100, Rene Rebe wrote: > On Mon, 10 Dec 2001 23:00:05 +0100 > Thomas Winischhofer <[EMAIL PROTECTED]> wrote: > > > I read about some people actually using DRM/DRI on the SiS630. I > > assume that these people are using DRM module from Xfree CVS (since > > there's no such module in the kernel tree). > > > > Are you people using this on an LCD panel (as well)? > > > > Does this require including sisfb into the kernel? (Bad because this > > oopes my machine) > > Oopses here, too. > > > Why is the DRM module for SiS chipset not included in the main kernel? > > (And why is it not mentioned on DRI website?) > > It is included. Since 2.4.16 (or was it a 2.4.17-pre?)! > > > What's the status of this module? Does it actually work? > > Doesn't work for me. It fails not in a sis specific method - but in > a normal framebuffer one (was it register_fb or s.th). I mailed some > oopses to the kernel / fb people - but got no positive feedback ... > Attached is a patch that came in to the patches list for the drm kernel modules.
It'd be nice if those who have SiS 300/530/630 chipsets could test this. Alan. --- drm.orig/sis.h Tue Jun 12 15:25:57 2001 +++ drm/sis.h Sun Nov 18 22:26:39 2001 @@ -47,4 +47,10 @@ #define DRIVER_AGP_BUFFERS_MAP( dev ) \ ((drm_sis_private_t *)((dev)->dev_private))->buffers +extern int sis_init_context(int context); +extern int sis_final_context(int context); + +#define DRIVER_CTX_CTOR sis_init_context +#define DRIVER_CTX_DTOR sis_final_context + #endif --- drm.orig/drm_context.h Tue Jun 12 15:25:57 2001 +++ drm/drm_context.h Sun Nov 18 22:45:49 2001 @@ -27,6 +27,10 @@ * Authors: * Rickard E. (Rik) Faith <[EMAIL PROTECTED]> * Gareth Hughes <[EMAIL PROTECTED]> + * ChangeLog: + * 2001-11-16 Torsten Duwe <[EMAIL PROTECTED]> + * added context constructor/destructor hooks, + * needed by SiS driver's memory management. */ #define __NO_VERSION__ @@ -306,6 +310,10 @@ /* Should this return -EBUSY instead? */ return -ENOMEM; } +#ifdef DRIVER_CTX_CTOR + if ( ctx.handle != DRM_KERNEL_CONTEXT ) + DRIVER_CTX_CTOR(ctx.handle); /* XXX: also pass dev ? */ +#endif if ( copy_to_user( (drm_ctx_t *)arg, &ctx, sizeof(ctx) ) ) return -EFAULT; @@ -380,6 +388,9 @@ priv->remove_auth_on_close = 1; } if ( ctx.handle != DRM_KERNEL_CONTEXT ) { +#ifdef DRIVER_CTX_DTOR + DRIVER_CTX_DTOR(ctx.handle); /* XXX: also pass dev ? */ +#endif DRM(ctxbitmap_free)( dev, ctx.handle ); } --- drm.orig/sis_mm.c Tue Jun 12 15:25:57 2001 +++ drm/sis_mm.c Sun Nov 18 22:30:04 2001 @@ -72,7 +72,7 @@ } /* fb management via fb device */ -#if 0 +#if 1 int sis_fb_alloc(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) { @@ -90,7 +90,7 @@ fb.offset = req.offset; fb.free = req.offset; if(!add_alloc_set(fb.context, VIDEO_TYPE, fb.free)){ - DRM_DEBUG("adding to allocation set fails"); + DRM_DEBUG("adding to allocation set fails\n"); sis_free(req.offset); retval = -1; } @@ -185,7 +185,7 @@ agp.offset = block->ofs; agp.free = (unsigned int)block; if(!add_alloc_set(agp.context, AGP_TYPE, agp.free)){ - DRM_DEBUG("adding to allocation set fails"); + DRM_DEBUG("adding to allocation set fails\n"); mmFreeMem((PMemBlock)agp.free); retval = -1; } @@ -279,9 +279,7 @@ retval = setFirst(set, &item); while(retval){ DRM_DEBUG("free video memory 0x%x\n", item); -#if 0 sis_free(item); -#endif retval = setNext(set, &item); } setDestroy(set); _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert