2004-06-10 06:45:38 -06:00
|
|
|
/* i915.h -- Intel I915 DRM template customization -*- linux-c -*-
|
|
|
|
*/
|
|
|
|
/**************************************************************************
|
|
|
|
*
|
|
|
|
* Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
|
|
|
|
* All Rights Reserved.
|
|
|
|
*
|
|
|
|
**************************************************************************/
|
|
|
|
|
|
|
|
#ifndef __I915_H__
|
|
|
|
#define __I915_H__
|
|
|
|
|
|
|
|
/* This remains constant for all DRM template files.
|
|
|
|
*/
|
|
|
|
#define DRM(x) i915_##x
|
|
|
|
|
|
|
|
/* General customization:
|
|
|
|
*/
|
|
|
|
#define __HAVE_AGP 1
|
|
|
|
#define __MUST_HAVE_AGP 1
|
|
|
|
#define __HAVE_MTRR 1
|
|
|
|
#define __HAVE_CTX_BITMAP 1
|
|
|
|
|
|
|
|
#define DRIVER_AUTHOR "Tungsten Graphics, Inc."
|
|
|
|
|
|
|
|
#define DRIVER_NAME "i915"
|
|
|
|
#define DRIVER_DESC "Intel Graphics"
|
|
|
|
#define DRIVER_DATE "20040405"
|
|
|
|
|
|
|
|
/* Interface history:
|
|
|
|
*
|
|
|
|
* 1.1: Original.
|
|
|
|
*/
|
|
|
|
#define DRIVER_MAJOR 1
|
|
|
|
#define DRIVER_MINOR 1
|
|
|
|
#define DRIVER_PATCHLEVEL 0
|
|
|
|
|
|
|
|
|
|
|
|
#define DRIVER_IOCTLS \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_INIT)] = { i915_dma_init, 1, 1 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_FLUSH)] = { i915_flush_ioctl, 1, 0 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_FLIP)] = { i915_flip_bufs, 1, 0 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_BATCHBUFFER)] = { i915_batchbuffer, 1, 0 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_IRQ_EMIT)] = { i915_irq_emit, 1, 0 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_IRQ_WAIT)] = { i915_irq_wait, 1, 0 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_GETPARAM)] = { i915_getparam, 1, 0 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_SETPARAM)] = { i915_setparam, 1, 1 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_ALLOC)] = { i915_mem_alloc, 1, 0 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_FREE)] = { i915_mem_free, 1, 0 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_INIT_HEAP)] = { i915_mem_init_heap, 1, 1 }, \
|
|
|
|
[DRM_IOCTL_NR(DRM_IOCTL_I915_CMDBUFFER)] = { i915_cmdbuffer, 1, 0 }
|
|
|
|
|
|
|
|
|
|
|
|
#define __HAVE_COUNTERS 4
|
|
|
|
#define __HAVE_COUNTER6 _DRM_STAT_IRQ
|
|
|
|
#define __HAVE_COUNTER7 _DRM_STAT_PRIMARY
|
|
|
|
#define __HAVE_COUNTER8 _DRM_STAT_SECONDARY
|
|
|
|
#define __HAVE_COUNTER9 _DRM_STAT_DMA
|
|
|
|
|
|
|
|
/* Driver customization:
|
|
|
|
*/
|
|
|
|
#define DRIVER_PRETAKEDOWN(dev) do { \
|
|
|
|
if ( dev->dev_private ) { \
|
|
|
|
drm_i915_private_t *dev_priv = dev->dev_private; \
|
|
|
|
i915_mem_takedown( &(dev_priv->agp_heap) ); \
|
|
|
|
} \
|
2004-08-02 05:45:23 -06:00
|
|
|
i915_dma_cleanup( dev ); \
|
2004-06-10 06:45:38 -06:00
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
|
/* When a client dies:
|
|
|
|
* - Free any alloced agp memory.
|
|
|
|
*/
|
|
|
|
#define DRIVER_PRERELEASE() \
|
|
|
|
do { \
|
|
|
|
if ( dev->dev_private ) { \
|
|
|
|
drm_i915_private_t *dev_priv = dev->dev_private; \
|
|
|
|
i915_mem_release( dev, filp, dev_priv->agp_heap ); \
|
|
|
|
} \
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* We use our own dma mechanisms, not the drm template code. However,
|
|
|
|
* the shared IRQ code is useful to us:
|
|
|
|
*/
|
|
|
|
#define __HAVE_DMA 0
|
|
|
|
#define __HAVE_IRQ 1
|
|
|
|
#define __HAVE_SHARED_IRQ 1
|
|
|
|
|
|
|
|
|
|
|
|
#define __HAVE_PM 1
|
|
|
|
|
|
|
|
#endif
|