diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/gpu/drm/i810 | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'drivers/gpu/drm/i810')
-rw-r--r-- | drivers/gpu/drm/i810/i810_dma.c | 19 | ||||
-rw-r--r-- | drivers/gpu/drm/i810/i810_drv.c | 23 |
2 files changed, 15 insertions, 27 deletions
diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c index fb07e73581e8..8f371e8d630f 100644 --- a/drivers/gpu/drm/i810/i810_dma.c +++ b/drivers/gpu/drm/i810/i810_dma.c | |||
@@ -37,7 +37,6 @@ | |||
37 | #include <linux/interrupt.h> /* For task queue support */ | 37 | #include <linux/interrupt.h> /* For task queue support */ |
38 | #include <linux/delay.h> | 38 | #include <linux/delay.h> |
39 | #include <linux/slab.h> | 39 | #include <linux/slab.h> |
40 | #include <linux/smp_lock.h> | ||
41 | #include <linux/pagemap.h> | 40 | #include <linux/pagemap.h> |
42 | 41 | ||
43 | #define I810_BUF_FREE 2 | 42 | #define I810_BUF_FREE 2 |
@@ -94,7 +93,6 @@ static int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma) | |||
94 | struct drm_buf *buf; | 93 | struct drm_buf *buf; |
95 | drm_i810_buf_priv_t *buf_priv; | 94 | drm_i810_buf_priv_t *buf_priv; |
96 | 95 | ||
97 | lock_kernel(); | ||
98 | dev = priv->minor->dev; | 96 | dev = priv->minor->dev; |
99 | dev_priv = dev->dev_private; | 97 | dev_priv = dev->dev_private; |
100 | buf = dev_priv->mmap_buffer; | 98 | buf = dev_priv->mmap_buffer; |
@@ -104,7 +102,6 @@ static int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma) | |||
104 | vma->vm_file = filp; | 102 | vma->vm_file = filp; |
105 | 103 | ||
106 | buf_priv->currently_mapped = I810_BUF_MAPPED; | 104 | buf_priv->currently_mapped = I810_BUF_MAPPED; |
107 | unlock_kernel(); | ||
108 | 105 | ||
109 | if (io_remap_pfn_range(vma, vma->vm_start, | 106 | if (io_remap_pfn_range(vma, vma->vm_start, |
110 | vma->vm_pgoff, | 107 | vma->vm_pgoff, |
@@ -116,9 +113,10 @@ static int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma) | |||
116 | static const struct file_operations i810_buffer_fops = { | 113 | static const struct file_operations i810_buffer_fops = { |
117 | .open = drm_open, | 114 | .open = drm_open, |
118 | .release = drm_release, | 115 | .release = drm_release, |
119 | .unlocked_ioctl = i810_ioctl, | 116 | .unlocked_ioctl = drm_ioctl, |
120 | .mmap = i810_mmap_buffers, | 117 | .mmap = i810_mmap_buffers, |
121 | .fasync = drm_fasync, | 118 | .fasync = drm_fasync, |
119 | .llseek = noop_llseek, | ||
122 | }; | 120 | }; |
123 | 121 | ||
124 | static int i810_map_buffer(struct drm_buf *buf, struct drm_file *file_priv) | 122 | static int i810_map_buffer(struct drm_buf *buf, struct drm_file *file_priv) |
@@ -1241,19 +1239,6 @@ int i810_driver_dma_quiescent(struct drm_device *dev) | |||
1241 | return 0; | 1239 | return 0; |
1242 | } | 1240 | } |
1243 | 1241 | ||
1244 | /* | ||
1245 | * call the drm_ioctl under the big kernel lock because | ||
1246 | * to lock against the i810_mmap_buffers function. | ||
1247 | */ | ||
1248 | long i810_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | ||
1249 | { | ||
1250 | int ret; | ||
1251 | lock_kernel(); | ||
1252 | ret = drm_ioctl(file, cmd, arg); | ||
1253 | unlock_kernel(); | ||
1254 | return ret; | ||
1255 | } | ||
1256 | |||
1257 | struct drm_ioctl_desc i810_ioctls[] = { | 1242 | struct drm_ioctl_desc i810_ioctls[] = { |
1258 | DRM_IOCTL_DEF_DRV(I810_INIT, i810_dma_init, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY|DRM_UNLOCKED), | 1243 | DRM_IOCTL_DEF_DRV(I810_INIT, i810_dma_init, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY|DRM_UNLOCKED), |
1259 | DRM_IOCTL_DEF_DRV(I810_VERTEX, i810_dma_vertex, DRM_AUTH|DRM_UNLOCKED), | 1244 | DRM_IOCTL_DEF_DRV(I810_VERTEX, i810_dma_vertex, DRM_AUTH|DRM_UNLOCKED), |
diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c index b4250b2cac1f..6f98d059f68a 100644 --- a/drivers/gpu/drm/i810/i810_drv.c +++ b/drivers/gpu/drm/i810/i810_drv.c | |||
@@ -52,22 +52,16 @@ static struct drm_driver driver = { | |||
52 | .device_is_agp = i810_driver_device_is_agp, | 52 | .device_is_agp = i810_driver_device_is_agp, |
53 | .reclaim_buffers_locked = i810_driver_reclaim_buffers_locked, | 53 | .reclaim_buffers_locked = i810_driver_reclaim_buffers_locked, |
54 | .dma_quiescent = i810_driver_dma_quiescent, | 54 | .dma_quiescent = i810_driver_dma_quiescent, |
55 | .get_map_ofs = drm_core_get_map_ofs, | ||
56 | .get_reg_ofs = drm_core_get_reg_ofs, | ||
57 | .ioctls = i810_ioctls, | 55 | .ioctls = i810_ioctls, |
58 | .fops = { | 56 | .fops = { |
59 | .owner = THIS_MODULE, | 57 | .owner = THIS_MODULE, |
60 | .open = drm_open, | 58 | .open = drm_open, |
61 | .release = drm_release, | 59 | .release = drm_release, |
62 | .unlocked_ioctl = i810_ioctl, | 60 | .unlocked_ioctl = drm_ioctl, |
63 | .mmap = drm_mmap, | 61 | .mmap = drm_mmap, |
64 | .poll = drm_poll, | 62 | .poll = drm_poll, |
65 | .fasync = drm_fasync, | 63 | .fasync = drm_fasync, |
66 | }, | 64 | .llseek = noop_llseek, |
67 | |||
68 | .pci_driver = { | ||
69 | .name = DRIVER_NAME, | ||
70 | .id_table = pciidlist, | ||
71 | }, | 65 | }, |
72 | 66 | ||
73 | .name = DRIVER_NAME, | 67 | .name = DRIVER_NAME, |
@@ -78,15 +72,24 @@ static struct drm_driver driver = { | |||
78 | .patchlevel = DRIVER_PATCHLEVEL, | 72 | .patchlevel = DRIVER_PATCHLEVEL, |
79 | }; | 73 | }; |
80 | 74 | ||
75 | static struct pci_driver i810_pci_driver = { | ||
76 | .name = DRIVER_NAME, | ||
77 | .id_table = pciidlist, | ||
78 | }; | ||
79 | |||
81 | static int __init i810_init(void) | 80 | static int __init i810_init(void) |
82 | { | 81 | { |
82 | if (num_possible_cpus() > 1) { | ||
83 | pr_err("drm/i810 does not support SMP\n"); | ||
84 | return -EINVAL; | ||
85 | } | ||
83 | driver.num_ioctls = i810_max_ioctl; | 86 | driver.num_ioctls = i810_max_ioctl; |
84 | return drm_init(&driver); | 87 | return drm_pci_init(&driver, &i810_pci_driver); |
85 | } | 88 | } |
86 | 89 | ||
87 | static void __exit i810_exit(void) | 90 | static void __exit i810_exit(void) |
88 | { | 91 | { |
89 | drm_exit(&driver); | 92 | drm_pci_exit(&driver, &i810_pci_driver); |
90 | } | 93 | } |
91 | 94 | ||
92 | module_init(i810_init); | 95 | module_init(i810_init); |