diff options
author | Owain Ainsworth <oga@cvs.openbsd.org> | 2008-10-30 21:33:01 +0000 |
---|---|---|
committer | Owain Ainsworth <oga@cvs.openbsd.org> | 2008-10-30 21:33:01 +0000 |
commit | 793278ac0b373bc2753da1a915c183c1fb34b90f (patch) | |
tree | b6a28b27df0ff0f9c577f3857b2be19dd1ad68a1 /sys/dev/pci/drm/i915_drv.h | |
parent | 4b7745662014fc8c07efbf1f5e73a9e842d9a590 (diff) |
Bunch of cleanup. Kill some dead variables and some stupid code.
Some ideas taken from upstream.
Diffstat (limited to 'sys/dev/pci/drm/i915_drv.h')
-rw-r--r-- | sys/dev/pci/drm/i915_drv.h | 80 |
1 files changed, 15 insertions, 65 deletions
diff --git a/sys/dev/pci/drm/i915_drv.h b/sys/dev/pci/drm/i915_drv.h index f7d255cb5ec..3a728c411ca 100644 --- a/sys/dev/pci/drm/i915_drv.h +++ b/sys/dev/pci/drm/i915_drv.h @@ -39,6 +39,11 @@ #define DRIVER_DESC "Intel Graphics" #define DRIVER_DATE "20080312" +enum pipe { + PIPE_A = 0, + PIPE_B, +}; + /* Interface history: * * 1.1: Original. @@ -48,25 +53,13 @@ * 1.5: Add vblank pipe configuration * 1.6: - New ioctl for scheduling buffer swaps on vertical blank * - Support vertical blank on secondary display pipe - * 1.8: New ioctl for ARB_Occlusion_Query - * 1.9: Usable page flipping and triple buffering - * 1.10: Plane/pipe disentangling - * 1.11: TTM superioctl - * 1.12: TTM relocation optimization */ #define DRIVER_MAJOR 1 #define DRIVER_MINOR 6 #define DRIVER_PATCHLEVEL 0 -enum pipe { - PIPE_A = 0, - PIPE_B, -}; - typedef struct _drm_i915_ring_buffer { int tail_mask; - unsigned long Start; - unsigned long End; unsigned long Size; u8 *virtual_start; int head; @@ -91,22 +84,6 @@ typedef struct _drm_i915_vbl_swap { int flip; } drm_i915_vbl_swap_t; -#ifdef __linux__ -struct opregion_header; -struct opregion_acpi; -struct opregion_swsci; -struct opregion_asle; - -struct intel_opregion { - struct opregion_header *header; - struct opregion_acpi *acpi; - struct opregion_swsci *swsci; - struct opregion_asle *asle; - - int enabled; -}; -#endif - typedef struct drm_i915_private { drm_local_map_t *sarea; drm_local_map_t *mmio_map; @@ -125,14 +102,12 @@ typedef struct drm_i915_private { wait_queue_head_t irq_queue; atomic_t irq_received; - atomic_t irq_emitted; /* Protects user_irq_refcount and irq_mask reg */ DRM_SPINTYPE user_irq_lock; /* Refcount for user irq, only enabled when needed */ int user_irq_refcount; /* Cached value of IMR to avoid reads in updating the bitfield */ u_int32_t irq_mask_reg; - int irq_enabled; int tex_lru_log_granularity; int allow_batchbuffer; @@ -144,10 +119,6 @@ typedef struct drm_i915_private { drm_i915_vbl_swap_t vbl_swaps; unsigned int swaps_pending; -#ifdef __linux__ - struct intel_opregion opregion; -#endif - /* Register state */ u8 saveLBB; u32 saveDSPACNTR; @@ -273,7 +244,6 @@ extern irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS); extern void i915_driver_irq_preinstall(struct drm_device * dev); extern int i915_driver_irq_postinstall(struct drm_device * dev); extern void i915_driver_irq_uninstall(struct drm_device * dev); -extern void i915_enable_interrupt(struct drm_device *dev); extern int i915_vblank_pipe_set(struct drm_device *dev, void *data, struct drm_file *file_priv); extern int i915_vblank_pipe_get(struct drm_device *dev, void *data, @@ -284,8 +254,8 @@ extern void i915_disable_vblank(struct drm_device *dev, int crtc); extern u32 i915_get_vblank_counter(struct drm_device *dev, int crtc); extern int i915_vblank_swap(struct drm_device *dev, void *data, struct drm_file *file_priv); -extern void i915_user_irq_on(drm_i915_private_t *dev_priv); -extern void i915_user_irq_off(drm_i915_private_t *dev_priv); +extern void i915_user_irq_get(struct drm_device *dev); +extern void i915_user_irq_put(struct drm_device *dev); /* i915_mem.c */ extern int i915_mem_alloc(struct drm_device *dev, void *data, @@ -305,21 +275,6 @@ extern void i915_mem_release(struct drm_device * dev, extern int i915_save_state(struct drm_device *dev); extern int i915_restore_state(struct drm_device *dev); -#ifdef __linux__ -/* i915_opregion.c */ -extern int intel_opregion_init(struct drm_device *dev); -extern void intel_opregion_free(struct drm_device *dev); -extern void opregion_asle_intr(struct drm_device *dev); -extern void opregion_enable_asle(struct drm_device *dev); -#endif - -#ifdef __linux__ -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) -extern void intel_init_chipset_flush_compat(struct drm_device *dev); -extern void intel_fini_chipset_flush_compat(struct drm_device *dev); -#endif -#endif - /* ioctls */ extern int i915_dma_init(struct drm_device *, void *, struct drm_file *); extern int i915_flush_ioctl(struct drm_device *, void *, struct drm_file *); @@ -338,23 +293,16 @@ extern int i915_set_status_page(struct drm_device *, void *, struct drm_file *); #define I915_READ8(reg) DRM_READ8(dev_priv->mmio_map, (reg)) #define I915_WRITE8(reg,val) DRM_WRITE8(dev_priv->mmio_map, (reg), (val)) -#if defined(__FreeBSD__) -typedef boolean_t bool; -#endif - #define I915_VERBOSE 0 -#define PRIMARY_RINGBUFFER_SIZE (128*1024) - #define RING_LOCALS unsigned int outring, ringmask, outcount; \ volatile char *virt; #define BEGIN_LP_RING(n) do { \ if (I915_VERBOSE) \ - DRM_DEBUG("BEGIN_LP_RING(%d)\n", \ - (n)); \ - if (dev_priv->ring.space < (n)*4) \ - i915_wait_ring(dev, (n)*4, __FUNCTION__); \ + DRM_DEBUG("BEGIN_LP_RING(%d)\n", (n)); \ + if (dev_priv->ring.space < (n)*4) \ + i915_wait_ring(dev, (n)*4, __func__); \ outcount = 0; \ outring = dev_priv->ring.tail; \ ringmask = dev_priv->ring.tail_mask; \ @@ -363,7 +311,7 @@ typedef boolean_t bool; #define OUT_RING(n) do { \ if (I915_VERBOSE) DRM_DEBUG(" OUT_RING %x\n", (int)(n)); \ - *(volatile unsigned int *)(virt + outring) = (n); \ + *(volatile unsigned int *)(virt + outring) = (n); \ outcount++; \ outring += 4; \ outring &= ringmask; \ @@ -478,6 +426,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); #define MI_STORE_DWORD_IMM MI_INSTR(0x20, 1) #define MI_MEM_VIRTUAL (1 << 22) /* 965+ only */ #define MI_STORE_DWORD_INDEX MI_INSTR(0x21, 1) +#define MI_STORE_DWORD_INDEX_SHIFT 2 #define MI_LOAD_REGISTER_IMM MI_INSTR(0x22, 1) #define MI_BATCH_BUFFER MI_INSTR(0x30, 1) #define MI_BATCH_NON_SECURE (1) @@ -487,8 +436,6 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); #define BREADCRUMB_BITS 31 #define BREADCRUMB_MASK ((1U << BREADCRUMB_BITS) - 1) -#define READ_BREADCRUMB(dev_priv) (((volatile u32*)(dev_priv->hw_status_page))[5]) - /** * Reads a dword out of the status page, which is written to from the command * queue by automatic updates, MI_REPORT_HEAD, MI_STORE_DATA_INDEX, or @@ -503,6 +450,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); * The area from dword 0x10 to 0x3ff is available for driver usage. */ #define READ_HWSP(dev_priv, reg) (((volatile u32*)(dev_priv->hw_status_page))[reg]) +#define READ_BREADCRUMB(dev_priv) READ_HWSP(dev_priv, 5) #define I915_GEM_HWS_INDEX 0x10 /* @@ -1804,4 +1752,6 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); #define I915_NEED_GFX_HWS(dev) (IS_G33(dev) || IS_GM45(dev) || IS_G4X(dev)) +#define PRIMARY_RINGBUFFER_SIZE (128*1024) + #endif |