New DRM driver model - gets rid of DRM() macros!
Eric Anholt
eta at lclark.edu
Wed Sep 29 17:00:40 PDT 2004
On Wed, 2004-09-29 at 07:25, Keith Whitwell wrote:
> Jon Smirl wrote:
> >
> > Drivers provide these callbacks......
> >
> > struct drm_driver_fn {
> > u32 driver_features;
> > int dev_priv_size;
> > int permanent_maps;
> > drm_ioctl_desc_t *ioctls;
> > int num_ioctls;
>
> > int (*preinit)(struct drm_device *, unsigned long flags);
> > void (*prerelease)(struct drm_device *, struct file *filp);
> > void (*pretakedown)(struct drm_device *);
> > int (*postcleanup)(struct drm_device *);
> > int (*presetup)(struct drm_device *);
> > int (*postsetup)(struct drm_device *);
> > int (*dma_ioctl)( DRM_IOCTL_ARGS );
> > /* these are opposites at the moment */
> > int (*open_helper)(struct drm_device *, drm_file_t *);
> > void (*free_filp_priv)(struct drm_device *, drm_file_t *);
>
> > void (*release)(struct drm_device *, struct file *filp);
> > void (*dma_ready)(struct drm_device *);
>
> Is this used by any driver?
>
> > int (*dma_quiescent)(struct drm_device *);
>
> > int (*context_ctor)(struct drm_device *dev, int context);
> > int (*context_dtor)(struct drm_device *dev, int context);
> > int (*kernel_context_switch)(struct drm_device *dev, int old, int new);
> > int (*kernel_context_switch_unlock)(struct drm_device *dev);
>
> The whole context thing in the kernel is pretty much cruft. The gamma module
> used to rely on it, maybe the ffb module if that still exists? It would be
> good to see this disappear.
>
> Though the drivers don't rely on it, I don't know if the server-side code
> persists in setting it up regardless, which might make it hard to get rid of.
SiS relies on context ctor/dtor (dtor only, when I'm done) for its
kernel memory manager.
--
Eric Anholt eta at lclark.edu
http://people.freebsd.org/~anholt/ anholt at FreeBSD.org
More information about the xorg
mailing list