2005-08-07 15:43:54 +10:00
/* savage_drv.c -- Savage driver for Linux
*
* Copyright 2004 Felix Kuehling
* 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 , sub license ,
* 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
* NON - INFRINGEMENT . IN NO EVENT SHALL FELIX KUEHLING 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 .
*/
# include "drmP.h"
# include "savage_drm.h"
# include "savage_drv.h"
# include "drm_pciids.h"
static struct pci_device_id pciidlist [ ] = {
savage_PCI_IDS
} ;
static struct drm_driver driver = {
. driver_features =
2005-09-25 14:28:13 +10:00
DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_HAVE_DMA | DRIVER_PCI_DMA ,
2005-08-07 15:43:54 +10:00
. dev_priv_size = sizeof ( drm_savage_buf_priv_t ) ,
2005-11-10 22:16:34 +11:00
. load = savage_driver_load ,
. firstopen = savage_driver_firstopen ,
. lastclose = savage_driver_lastclose ,
. unload = savage_driver_unload ,
2005-08-07 15:43:54 +10:00
. reclaim_buffers = savage_reclaim_buffers ,
. get_map_ofs = drm_core_get_map_ofs ,
. get_reg_ofs = drm_core_get_reg_ofs ,
. ioctls = savage_ioctls ,
. dma_ioctl = savage_bci_buffers ,
. fops = {
2005-09-25 14:28:13 +10:00
. owner = THIS_MODULE ,
. open = drm_open ,
. release = drm_release ,
. ioctl = drm_ioctl ,
. mmap = drm_mmap ,
. poll = drm_poll ,
. fasync = drm_fasync ,
2005-11-10 22:16:34 +11:00
} ,
2005-08-07 15:43:54 +10:00
. pci_driver = {
2005-11-10 22:16:34 +11:00
. name = DRIVER_NAME ,
. id_table = pciidlist ,
} ,
. name = DRIVER_NAME ,
. desc = DRIVER_DESC ,
. date = DRIVER_DATE ,
. major = DRIVER_MAJOR ,
. minor = DRIVER_MINOR ,
. patchlevel = DRIVER_PATCHLEVEL ,
2005-08-07 15:43:54 +10:00
} ;
static int __init savage_init ( void )
{
driver . num_ioctls = savage_max_ioctl ;
return drm_init ( & driver ) ;
}
static void __exit savage_exit ( void )
{
drm_exit ( & driver ) ;
}
module_init ( savage_init ) ;
module_exit ( savage_exit ) ;
2005-09-25 14:28:13 +10:00
MODULE_AUTHOR ( DRIVER_AUTHOR ) ;
MODULE_DESCRIPTION ( DRIVER_DESC ) ;
2005-08-07 15:43:54 +10:00
MODULE_LICENSE ( " GPL and additional rights " ) ;