Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/gpu/drm/i810/i810_drv.c
15112 views
1
/* i810_drv.c -- I810 driver -*- linux-c -*-
2
* Created: Mon Dec 13 01:56:22 1999 by [email protected]
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 <[email protected]>
29
* Jeff Hartmann <[email protected]>
30
* Gareth Hughes <[email protected]>
31
*/
32
33
#include "drmP.h"
34
#include "drm.h"
35
#include "i810_drm.h"
36
#include "i810_drv.h"
37
38
#include "drm_pciids.h"
39
40
static struct pci_device_id pciidlist[] = {
41
i810_PCI_IDS
42
};
43
44
static struct drm_driver driver = {
45
.driver_features =
46
DRIVER_USE_AGP | DRIVER_REQUIRE_AGP | DRIVER_USE_MTRR |
47
DRIVER_HAVE_DMA | DRIVER_DMA_QUEUE,
48
.dev_priv_size = sizeof(drm_i810_buf_priv_t),
49
.load = i810_driver_load,
50
.lastclose = i810_driver_lastclose,
51
.preclose = i810_driver_preclose,
52
.device_is_agp = i810_driver_device_is_agp,
53
.reclaim_buffers_locked = i810_driver_reclaim_buffers_locked,
54
.dma_quiescent = i810_driver_dma_quiescent,
55
.ioctls = i810_ioctls,
56
.fops = {
57
.owner = THIS_MODULE,
58
.open = drm_open,
59
.release = drm_release,
60
.unlocked_ioctl = drm_ioctl,
61
.mmap = drm_mmap,
62
.poll = drm_poll,
63
.fasync = drm_fasync,
64
.llseek = noop_llseek,
65
},
66
67
.name = DRIVER_NAME,
68
.desc = DRIVER_DESC,
69
.date = DRIVER_DATE,
70
.major = DRIVER_MAJOR,
71
.minor = DRIVER_MINOR,
72
.patchlevel = DRIVER_PATCHLEVEL,
73
};
74
75
static struct pci_driver i810_pci_driver = {
76
.name = DRIVER_NAME,
77
.id_table = pciidlist,
78
};
79
80
static int __init i810_init(void)
81
{
82
if (num_possible_cpus() > 1) {
83
pr_err("drm/i810 does not support SMP\n");
84
return -EINVAL;
85
}
86
driver.num_ioctls = i810_max_ioctl;
87
return drm_pci_init(&driver, &i810_pci_driver);
88
}
89
90
static void __exit i810_exit(void)
91
{
92
drm_pci_exit(&driver, &i810_pci_driver);
93
}
94
95
module_init(i810_init);
96
module_exit(i810_exit);
97
98
MODULE_AUTHOR(DRIVER_AUTHOR);
99
MODULE_DESCRIPTION(DRIVER_DESC);
100
MODULE_LICENSE("GPL and additional rights");
101
102