Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
gpu
drm
r128
r128_drv.c
Go to the documentation of this file.
1
/* r128_drv.c -- ATI Rage 128 driver -*- linux-c -*-
2
* Created: Mon Dec 13 09:47:27 1999 by faith@precisioninsight.com
3
*
4
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
5
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
6
* All Rights Reserved.
7
*
8
* Permission is hereby granted, free of charge, to any person obtaining a
9
* copy of this software and associated documentation files (the "Software"),
10
* to deal in the Software without restriction, including without limitation
11
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
12
* and/or sell copies of the Software, and to permit persons to whom the
13
* Software is furnished to do so, subject to the following conditions:
14
*
15
* The above copyright notice and this permission notice (including the next
16
* paragraph) shall be included in all copies or substantial portions of the
17
* Software.
18
*
19
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22
* VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25
* OTHER DEALINGS IN THE SOFTWARE.
26
*
27
* Authors:
28
* Rickard E. (Rik) Faith <faith@valinux.com>
29
* Gareth Hughes <gareth@valinux.com>
30
*/
31
32
#include <linux/module.h>
33
34
#include <
drm/drmP.h
>
35
#include <
drm/r128_drm.h
>
36
#include "
r128_drv.h
"
37
38
#include <
drm/drm_pciids.h
>
39
40
static
struct
pci_device_id
pciidlist[] = {
41
r128_PCI_IDS
42
};
43
44
static
const
struct
file_operations
r128_driver_fops = {
45
.owner =
THIS_MODULE
,
46
.open =
drm_open
,
47
.release =
drm_release
,
48
.unlocked_ioctl =
drm_ioctl
,
49
.mmap =
drm_mmap
,
50
.poll =
drm_poll
,
51
.fasync =
drm_fasync
,
52
#ifdef CONFIG_COMPAT
53
.compat_ioctl =
r128_compat_ioctl
,
54
#endif
55
.llseek =
noop_llseek
,
56
};
57
58
static
struct
drm_driver
driver
= {
59
.driver_features =
60
DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG |
61
DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
62
.dev_priv_size =
sizeof
(
drm_r128_buf_priv_t
),
63
.
load
=
r128_driver_load
,
64
.preclose =
r128_driver_preclose
,
65
.lastclose =
r128_driver_lastclose
,
66
.get_vblank_counter =
r128_get_vblank_counter
,
67
.enable_vblank =
r128_enable_vblank
,
68
.disable_vblank =
r128_disable_vblank
,
69
.irq_preinstall =
r128_driver_irq_preinstall
,
70
.irq_postinstall =
r128_driver_irq_postinstall
,
71
.irq_uninstall =
r128_driver_irq_uninstall
,
72
.
irq_handler
=
r128_driver_irq_handler
,
73
.
ioctls
=
r128_ioctls
,
74
.dma_ioctl =
r128_cce_buffers
,
75
.
fops
= &r128_driver_fops,
76
.
name
=
DRIVER_NAME
,
77
.
desc
=
DRIVER_DESC
,
78
.
date
=
DRIVER_DATE
,
79
.major =
DRIVER_MAJOR
,
80
.minor =
DRIVER_MINOR
,
81
.patchlevel =
DRIVER_PATCHLEVEL
,
82
};
83
84
int
r128_driver_load
(
struct
drm_device
*
dev
,
unsigned
long
flags
)
85
{
86
pci_set_master
(dev->pdev);
87
return
drm_vblank_init
(dev, 1);
88
}
89
90
static
struct
pci_driver
r128_pci_driver = {
91
.name =
DRIVER_NAME
,
92
.id_table = pciidlist,
93
};
94
95
static
int
__init
r128_init(
void
)
96
{
97
driver
.num_ioctls =
r128_max_ioctl
;
98
99
return
drm_pci_init
(&
driver
, &r128_pci_driver);
100
}
101
102
static
void
__exit
r128_exit(
void
)
103
{
104
drm_pci_exit
(&
driver
, &r128_pci_driver);
105
}
106
107
module_init
(r128_init);
108
module_exit
(r128_exit);
109
110
MODULE_AUTHOR
(
DRIVER_AUTHOR
);
111
MODULE_DESCRIPTION
(
DRIVER_DESC
);
112
MODULE_LICENSE
(
"GPL and additional rights"
);
Generated on Thu Jan 10 2013 13:32:58 for Linux Kernel by
1.8.2