Home | History | Annotate | Line # | Download | only in shared-core
      1 /* sis_drv.h -- Private header for sis driver -*- linux-c -*- */
      2 /*
      3  * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
      4  * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
      5  * All rights reserved.
      6  *
      7  * Permission is hereby granted, free of charge, to any person obtaining a
      8  * copy of this software and associated documentation files (the "Software"),
      9  * to deal in the Software without restriction, including without limitation
     10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     11  * and/or sell copies of the Software, and to permit persons to whom the
     12  * Software is furnished to do so, subject to the following conditions:
     13  *
     14  * The above copyright notice and this permission notice (including the next
     15  * paragraph) shall be included in all copies or substantial portions of the
     16  * Software.
     17  *
     18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     21  * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
     22  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     23  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     24  * DEALINGS IN THE SOFTWARE.
     25  *
     26  */
     27 
     28 #ifndef _SIS_DRV_H_
     29 #define _SIS_DRV_H_
     30 
     31 /* General customization:
     32  */
     33 
     34 #define DRIVER_AUTHOR		"SIS, Tungsten Graphics"
     35 #define DRIVER_NAME		"sis"
     36 #define DRIVER_DESC		"SIS 300/630/540 and XGI V3XE/V5/V8"
     37 #define DRIVER_DATE		"20070626"
     38 #define DRIVER_MAJOR		1
     39 #define DRIVER_MINOR		3
     40 #define DRIVER_PATCHLEVEL	0
     41 
     42 enum sis_family {
     43 	SIS_OTHER = 0,
     44 	SIS_CHIP_315 = 1,
     45 };
     46 
     47 #if defined(__linux__)
     48 #define SIS_HAVE_CORE_MM
     49 #endif
     50 
     51 #ifdef SIS_HAVE_CORE_MM
     52 #include "drm_sman.h"
     53 
     54 #define SIS_BASE (dev_priv->mmio)
     55 #define SIS_READ(reg)	 DRM_READ32(SIS_BASE, reg);
     56 #define SIS_WRITE(reg, val)   DRM_WRITE32(SIS_BASE, reg, val);
     57 
     58 typedef struct drm_sis_private {
     59 	drm_local_map_t *mmio;
     60 	unsigned int idle_fault;
     61 	struct drm_sman sman;
     62 	unsigned int chipset;
     63 	int vram_initialized;
     64 	int agp_initialized;
     65 	unsigned long vram_offset;
     66 	unsigned long agp_offset;
     67 } drm_sis_private_t;
     68 
     69 extern int sis_idle(struct drm_device *dev);
     70 extern void sis_reclaim_buffers_locked(struct drm_device *dev,
     71 				       struct drm_file *file_priv);
     72 extern void sis_lastclose(struct drm_device *dev);
     73 
     74 #else
     75 #include "sis_ds.h"
     76 
     77 typedef struct drm_sis_private {
     78 	memHeap_t *AGPHeap;
     79 	memHeap_t *FBHeap;
     80 } drm_sis_private_t;
     81 
     82 extern int sis_init_context(struct drm_device * dev, int context);
     83 extern int sis_final_context(struct drm_device * dev, int context);
     84 
     85 #endif
     86 
     87 extern struct drm_ioctl_desc sis_ioctls[];
     88 extern int sis_max_ioctl;
     89 
     90 #endif
     91