1952d751a140e961f7ac67f743cf94d1a37c736e8Dave Airlie/* sis_drv.h -- Private header for sis driver -*- linux-c -*- */ 2952d751a140e961f7ac67f743cf94d1a37c736e8Dave Airlie/* 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * All rights reserved. 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Permission is hereby granted, free of charge, to any person obtaining a 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * copy of this software and associated documentation files (the "Software"), 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * to deal in the Software without restriction, including without limitation 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * the rights to use, copy, modify, merge, publish, distribute, sublicense, 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * and/or sell copies of the Software, and to permit persons to whom the 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Software is furnished to do so, subject to the following conditions: 13b5e89ed53ed8d24f83ba1941c07382af00ed238eDave Airlie * 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * The above copyright notice and this permission notice (including the next 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * paragraph) shall be included in all copies or substantial portions of the 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Software. 17b5e89ed53ed8d24f83ba1941c07382af00ed238eDave Airlie * 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * DEALINGS IN THE SOFTWARE. 25b5e89ed53ed8d24f83ba1941c07382af00ed238eDave Airlie * 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _SIS_DRV_H_ 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _SIS_DRV_H_ 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 314f03b1fc1eb286b73d453c03cdb45a3827726a44Daniel Vetter#include <drm/drm_legacy.h> 324f03b1fc1eb286b73d453c03cdb45a3827726a44Daniel Vetter 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* General customization: 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 36ce65a44de07f73ceda1749812b75086b7add408dThomas Hellstrom#define DRIVER_AUTHOR "SIS, Tungsten Graphics" 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DRIVER_NAME "sis" 38ad5c980fdef0f339eb7c5888525acf9ce33855ecIan Romanick#define DRIVER_DESC "SIS 300/630/540 and XGI V3XE/V5/V8" 39ad5c980fdef0f339eb7c5888525acf9ce33855ecIan Romanick#define DRIVER_DATE "20070626" 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DRIVER_MAJOR 1 41ad5c980fdef0f339eb7c5888525acf9ce33855ecIan Romanick#define DRIVER_MINOR 3 42ad5c980fdef0f339eb7c5888525acf9ce33855ecIan Romanick#define DRIVER_PATCHLEVEL 0 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 447981bf7d494a6c4d45e22c54b0da887e5a67e705Thomas Hellstromenum sis_family { 457981bf7d494a6c4d45e22c54b0da887e5a67e705Thomas Hellstrom SIS_OTHER = 0, 467981bf7d494a6c4d45e22c54b0da887e5a67e705Thomas Hellstrom SIS_CHIP_315 = 1, 477981bf7d494a6c4d45e22c54b0da887e5a67e705Thomas Hellstrom}; 487981bf7d494a6c4d45e22c54b0da887e5a67e705Thomas Hellstrom 49760285e7e7ab282c25b5e90816f7c47000557f4fDavid Howells#include <drm/drm_mm.h> 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 519698b4dba42eb758ad98012c21e5fbdb372fe2d9Dave Airlie 527981bf7d494a6c4d45e22c54b0da887e5a67e705Thomas Hellstrom#define SIS_BASE (dev_priv->mmio) 53497888cf69bf607ac1fe061a6437e0a670b0022fPhil Carmody#define SIS_READ(reg) DRM_READ32(SIS_BASE, reg) 54497888cf69bf607ac1fe061a6437e0a670b0022fPhil Carmody#define SIS_WRITE(reg, val) DRM_WRITE32(SIS_BASE, reg, val) 557981bf7d494a6c4d45e22c54b0da887e5a67e705Thomas Hellstrom 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct drm_sis_private { 57ce65a44de07f73ceda1749812b75086b7add408dThomas Hellstrom drm_local_map_t *mmio; 58ce65a44de07f73ceda1749812b75086b7add408dThomas Hellstrom unsigned int idle_fault; 59ce65a44de07f73ceda1749812b75086b7add408dThomas Hellstrom unsigned int chipset; 60ce65a44de07f73ceda1749812b75086b7add408dThomas Hellstrom int vram_initialized; 61ce65a44de07f73ceda1749812b75086b7add408dThomas Hellstrom int agp_initialized; 62ce65a44de07f73ceda1749812b75086b7add408dThomas Hellstrom unsigned long vram_offset; 63ce65a44de07f73ceda1749812b75086b7add408dThomas Hellstrom unsigned long agp_offset; 64be2fb9da32cb88a1311350de3d1db8f9e461ae9fDaniel Vetter struct drm_mm vram_mm; 65be2fb9da32cb88a1311350de3d1db8f9e461ae9fDaniel Vetter struct drm_mm agp_mm; 666de8a748881f1cd9d795454da2b6db616d5ca3d7Daniel Vetter /** Mapping of userspace keys to mm objects */ 676de8a748881f1cd9d795454da2b6db616d5ca3d7Daniel Vetter struct idr object_idr; 681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} drm_sis_private_t; 691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7084b1fd103dbbe01b5905db1444d3fc8afa9a7207Dave Airlieextern int sis_idle(struct drm_device *dev); 716c340eac0285f3d62406d2d902d0e96fbf2a5dc0Eric Anholtextern void sis_reclaim_buffers_locked(struct drm_device *dev, 726c340eac0285f3d62406d2d902d0e96fbf2a5dc0Eric Anholt struct drm_file *file_priv); 7384b1fd103dbbe01b5905db1444d3fc8afa9a7207Dave Airlieextern void sis_lastclose(struct drm_device *dev); 741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 75baa7094355a10b432bbccacb925da4bdac861c8dRob Clarkextern const struct drm_ioctl_desc sis_ioctls[]; 76b3a83639895a422b25f72eec0a5d1d88c3ac4e9eDave Airlieextern int sis_max_ioctl; 77b3a83639895a422b25f72eec0a5d1d88c3ac4e9eDave Airlie 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 79