2005-04-16 15:20:36 -07:00
/* i915_drv.c -- i830,i845,i855,i865,i915 driver -*- linux-c -*-
*/
2006-01-02 20:14:23 +11:00
/*
2005-06-23 22:46:46 +10:00
*
2005-04-16 15:20:36 -07:00
* Copyright 2003 Tungsten Graphics , Inc . , Cedar Park , Texas .
* All Rights Reserved .
2005-06-23 22:46:46 +10:00
*
* 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 TUNGSTEN GRAPHICS 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 .
*
2006-01-02 20:14:23 +11:00
*/
2005-04-16 15:20:36 -07:00
# include "drmP.h"
# include "drm.h"
# include "i915_drm.h"
# include "i915_drv.h"
# include "drm_pciids.h"
static struct pci_device_id pciidlist [ ] = {
i915_PCI_IDS
} ;
static struct drm_driver driver = {
2005-11-11 23:30:27 +11:00
/* don't use mtrr's here, the Xserver or user space app should
* deal with them for intel hardware .
*/
2005-09-25 14:28:13 +10:00
. driver_features =
2005-11-11 23:30:27 +11:00
DRIVER_USE_AGP | DRIVER_REQUIRE_AGP | /* DRIVER_USE_MTRR |*/
2006-10-24 22:28:51 +10:00
DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_IRQ_VBL |
DRIVER_IRQ_VBL2 ,
2005-11-10 22:16:34 +11:00
. load = i915_driver_load ,
. lastclose = i915_driver_lastclose ,
. preclose = i915_driver_preclose ,
2005-07-10 17:31:26 +10:00
. device_is_agp = i915_driver_device_is_agp ,
2006-01-02 20:14:23 +11:00
. vblank_wait = i915_driver_vblank_wait ,
2006-10-24 22:28:51 +10:00
. vblank_wait2 = i915_driver_vblank_wait2 ,
2005-04-16 15:20:36 -07:00
. irq_preinstall = i915_driver_irq_preinstall ,
. irq_postinstall = i915_driver_irq_postinstall ,
. irq_uninstall = i915_driver_irq_uninstall ,
. irq_handler = i915_driver_irq_handler ,
. reclaim_buffers = drm_core_reclaim_buffers ,
. get_map_ofs = drm_core_get_map_ofs ,
. get_reg_ofs = drm_core_get_reg_ofs ,
. ioctls = i915_ioctls ,
. 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-07-07 21:51:26 +10:00
# ifdef CONFIG_COMPAT
2005-09-25 14:28:13 +10:00
. compat_ioctl = i915_compat_ioctl ,
2005-07-07 21:51:26 +10:00
# endif
2005-11-10 22:16:34 +11:00
} ,
2005-04-16 15:20:36 -07: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-04-16 15:20:36 -07:00
} ;
static int __init i915_init ( void )
{
driver . num_ioctls = i915_max_ioctl ;
return drm_init ( & driver ) ;
}
static void __exit i915_exit ( void )
{
drm_exit ( & driver ) ;
}
module_init ( i915_init ) ;
module_exit ( i915_exit ) ;
2005-09-25 14:28:13 +10:00
MODULE_AUTHOR ( DRIVER_AUTHOR ) ;
MODULE_DESCRIPTION ( DRIVER_DESC ) ;
2005-04-16 15:20:36 -07:00
MODULE_LICENSE ( " GPL and additional rights " ) ;