2005-04-16 15:20:36 -07:00
/* radeon_drv.h -- Private header for radeon driver -*- linux-c -*-
*
* Copyright 1999 Precision Insight , Inc . , Cedar Park , Texas .
* Copyright 2000 VA Linux Systems , Inc . , Fremont , California .
* All rights reserved .
*
* Permission is hereby granted , free of charge , to any person obtaining a
* copy of this software and associated documentation files ( the " Software " ) ,
* to deal in the Software without restriction , including without limitation
* the rights to use , copy , modify , merge , publish , distribute , sublicense ,
* and / or sell copies of the Software , and to permit persons to whom the
* Software is furnished to do so , subject to the following conditions :
*
* The above copyright notice and this permission notice ( including the next
* paragraph ) shall be included in all copies or substantial portions of the
* Software .
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
* IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL
* PRECISION INSIGHT AND / OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM , DAMAGES OR
* OTHER LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE ,
* ARISING FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE .
*
* Authors :
* Kevin E . Martin < martin @ valinux . com >
* Gareth Hughes < gareth @ valinux . com >
*/
# ifndef __RADEON_DRV_H__
# define __RADEON_DRV_H__
2009-08-29 14:53:51 +01:00
# include <linux/firmware.h>
# include <linux/platform_device.h>
2014-09-10 12:43:49 +02:00
# include <drm/drm_legacy.h>
2009-08-29 14:53:51 +01:00
2009-09-22 08:50:10 +10:00
# include "radeon_family.h"
2005-04-16 15:20:36 -07:00
/* General customization:
*/
# define DRIVER_AUTHOR "Gareth Hughes, Keith Whitwell, others."
# define DRIVER_NAME "radeon"
# define DRIVER_DESC "ATI Radeon"
2008-05-28 13:52:28 +10:00
# define DRIVER_DATE "20080528"
2005-04-16 15:20:36 -07:00
/* Interface history:
*
* 1.1 - ? ?
* 1.2 - Add vertex2 ioctl ( keith )
* - Add stencil capability to clear ioctl ( gareth , keith )
* - Increase MAX_TEXTURE_LEVELS ( brian )
* 1.3 - Add cmdbuf ioctl ( keith )
* - Add support for new radeon packets ( keith )
* - Add getparam ioctl ( keith )
* - Add flip - buffers ioctl , deprecate fullscreen foo ( keith ) .
* 1.4 - Add scratch registers to get_param ioctl .
* 1.5 - Add r200 packets to cmdbuf ioctl
* - Add r200 function to init ioctl
* - Add ' scalar2 ' instruction to cmdbuf
* 1.6 - Add static GART memory manager
* Add irq handler ( won ' t be turned on unless X server knows to )
* Add irq ioctls and irq_active getparam .
* Add wait command for cmdbuf ioctl
* Add GART offset query for getparam
* 1.7 - Add support for cube map registers : R200_PP_CUBIC_FACES_ [ 0. .5 ]
* and R200_PP_CUBIC_OFFSET_F1_ [ 0. .5 ] .
* Added packets R200_EMIT_PP_CUBIC_FACES_ [ 0. .5 ] and
* R200_EMIT_PP_CUBIC_OFFSETS_ [ 0. .5 ] . ( brian )
* 1.8 - Remove need to call cleanup ioctls on last client exit ( keith )
* Add ' GET ' queries for starting additional clients on different VT ' s .
* 1.9 - Add DRM_IOCTL_RADEON_CP_RESUME ioctl .
* Add texture rectangle support for r100 .
* 1.10 - Add SETPARAM ioctl ; first parameter to set is FB_LOCATION , which
2005-09-25 14:28:13 +10:00
* clients use to tell the DRM where they think the framebuffer is
2005-04-16 15:20:36 -07:00
* located in the card ' s address space
* 1.11 - Add packet R200_EMIT_RB3D_BLENDCOLOR to support GL_EXT_blend_color
* and GL_EXT_blend_ [ func | equation ] _separate on r200
* 1.12 - Add R300 CP microcode support - this just loads the CP on r300
2006-01-02 21:32:48 +11:00
* ( No 3 D support yet - just microcode loading ) .
2005-04-16 15:20:36 -07:00
* 1.13 - Add packet R200_EMIT_TCL_POINT_SPRITE_CNTL for ARB_point_parameters
* - Add hyperz support , add hyperz flags to clear ioctl .
* 1.14 - Add support for color tiling
* - Add R100 / R200 surface allocation / free support
* 1.15 - Add support for texture micro tiling
* - Add support for r100 cube maps
* 1.16 - Add R200_EMIT_PP_TRI_PERF_CNTL packet to support brilinear
* texture filtering on r200
2005-08-16 20:43:16 +10:00
* 1.17 - Add initial support for R300 ( 3 D ) .
2005-09-11 19:55:53 +10:00
* 1.18 - Add support for GL_ATI_fragment_shader , new packets
* R200_EMIT_PP_AFS_0 / 1 , R200_EMIT_PP_TXCTLALL_0 - 5 ( replaces
* R200_EMIT_PP_TXFILTER_0 - 5 , 2 more regs ) and R200_EMIT_ATF_TFACTOR
* ( replaces R200_EMIT_TFACTOR_0 ( 8 consts instead of 6 )
2005-09-11 20:28:11 +10:00
* 1.19 - Add support for gart table in FB memory and PCIE r300
2006-01-02 21:32:48 +11:00
* 1.20 - Add support for r300 texrect
* 1.21 - Add support for card type getparam
2006-02-18 15:51:35 +11:00
* 1.22 - Add support for texture cache flushes ( R300_TX_CNTL )
2006-03-19 19:37:55 +11:00
* 1.23 - Add new radeon memory map work from benh
2006-03-19 19:45:26 +11:00
* 1.24 - Add general - purpose packet for manipulating scratch registers ( r300 )
2006-06-24 17:04:07 +10:00
* 1.25 - Add support for r200 vertex programs ( R200_EMIT_VAP_PVS_CNTL ,
* new packet type )
2007-05-08 15:19:23 +10:00
* 1.26 - Add support for variable size PCI ( E ) gart aperture
* 1.27 - Add support for IGP GART
2007-07-11 12:16:01 +10:00
* 1.28 - Add support for VBL on CRTC2
2008-05-28 13:52:28 +10:00
* 1.29 - R500 3 D cmd buffer support
2009-04-17 15:55:09 +02:00
* 1.30 - Add support for occlusion queries
2009-08-19 19:11:39 -04:00
* 1.31 - Add support for num Z pipes from GET_PARAM
2010-02-20 09:17:18 +10:00
* 1.32 - fixes for rv740 setup
2010-03-26 15:26:51 -04:00
* 1.33 - Add r6xx / r7xx const buffer support
2013-12-02 16:11:39 -05:00
* 1.34 - fix evergreen / cayman GS register
2005-04-16 15:20:36 -07:00
*/
# define DRIVER_MAJOR 1
2013-12-02 16:11:39 -05:00
# define DRIVER_MINOR 34
2005-04-16 15:20:36 -07:00
# define DRIVER_PATCHLEVEL 0
2012-09-17 14:40:31 +10:00
long radeon_drm_ioctl ( struct file * filp ,
unsigned int cmd , unsigned long arg ) ;
2005-09-25 14:28:13 +10:00
# endif /* __RADEON_DRV_H__ */