aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2017-05-24 10:51:40 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2017-06-20 04:41:03 -0400
commit10631d724deff712343d96dd3017cd323349f761 (patch)
tree280d7d7a05cb5242b19e5b045e2b86e7353cbbf4
parent5c484cee7ef9c4fd29fa0ba09640d55960977145 (diff)
drm/pci: Deprecate drm_pci_init/exit completely
The magic switching between proper pci driver and shadow-attach isn't useful anymore since there's no ums+kms drivers left. Let's split this up properly, calling pci_register_driver for kms drivers and renaming the shadow-attach init to drm_legacy_pci_init/exit. Acked-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170524145212.27837-6-daniel.vetter@ffwll.ch
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c4
-rw-r--r--drivers/gpu/drm/ast/ast_drv.c4
-rw-r--r--drivers/gpu/drm/bochs/bochs_drv.c4
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_drv.c4
-rw-r--r--drivers/gpu/drm/drm_pci.c39
-rw-r--r--drivers/gpu/drm/gma500/psb_drv.c4
-rw-r--r--drivers/gpu/drm/i810/i810_drv.c4
-rw-r--r--drivers/gpu/drm/mga/mga_drv.c4
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_drv.c5
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_drm.c11
-rw-r--r--drivers/gpu/drm/qxl/qxl_drv.c4
-rw-r--r--drivers/gpu/drm/r128/r128_drv.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.c5
-rw-r--r--drivers/gpu/drm/savage/savage_drv.c4
-rw-r--r--drivers/gpu/drm/sis/sis_drv.c4
-rw-r--r--drivers/gpu/drm/tdfx/tdfx_drv.c4
-rw-r--r--drivers/gpu/drm/via/via_drv.c4
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_drv.c4
-rw-r--r--include/drm/drm_pci.h4
19 files changed, 56 insertions, 64 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index e7a4bce6358d..4911d304d8b9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -816,7 +816,7 @@ static int __init amdgpu_init(void)
816 driver->num_ioctls = amdgpu_max_kms_ioctl; 816 driver->num_ioctls = amdgpu_max_kms_ioctl;
817 amdgpu_register_atpx_handler(); 817 amdgpu_register_atpx_handler();
818 /* let modprobe override vga console setting */ 818 /* let modprobe override vga console setting */
819 return drm_pci_init(driver, pdriver); 819 return pci_register_driver(pdriver);
820 820
821error_sched: 821error_sched:
822 amdgpu_fence_slab_fini(); 822 amdgpu_fence_slab_fini();
@@ -831,7 +831,7 @@ error_sync:
831static void __exit amdgpu_exit(void) 831static void __exit amdgpu_exit(void)
832{ 832{
833 amdgpu_amdkfd_fini(); 833 amdgpu_amdkfd_fini();
834 drm_pci_exit(driver, pdriver); 834 pci_unregister_driver(pdriver);
835 amdgpu_unregister_atpx_handler(); 835 amdgpu_unregister_atpx_handler();
836 amdgpu_sync_fini(); 836 amdgpu_sync_fini();
837 amd_sched_fence_slab_fini(); 837 amd_sched_fence_slab_fini();
diff --git a/drivers/gpu/drm/ast/ast_drv.c b/drivers/gpu/drm/ast/ast_drv.c
index f6794745a024..3022b39c00f3 100644
--- a/drivers/gpu/drm/ast/ast_drv.c
+++ b/drivers/gpu/drm/ast/ast_drv.c
@@ -220,11 +220,11 @@ static int __init ast_init(void)
220 220
221 if (ast_modeset == 0) 221 if (ast_modeset == 0)
222 return -EINVAL; 222 return -EINVAL;
223 return drm_pci_init(&driver, &ast_pci_driver); 223 return pci_register_driver(&ast_pci_driver);
224} 224}
225static void __exit ast_exit(void) 225static void __exit ast_exit(void)
226{ 226{
227 drm_pci_exit(&driver, &ast_pci_driver); 227 pci_unregister_driver(&ast_pci_driver);
228} 228}
229 229
230module_init(ast_init); 230module_init(ast_init);
diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
index 8fccd3cf000d..a1d28845da5f 100644
--- a/drivers/gpu/drm/bochs/bochs_drv.c
+++ b/drivers/gpu/drm/bochs/bochs_drv.c
@@ -223,12 +223,12 @@ static int __init bochs_init(void)
223 if (bochs_modeset == 0) 223 if (bochs_modeset == 0)
224 return -EINVAL; 224 return -EINVAL;
225 225
226 return drm_pci_init(&bochs_driver, &bochs_pci_driver); 226 return pci_register_driver(&bochs_pci_driver);
227} 227}
228 228
229static void __exit bochs_exit(void) 229static void __exit bochs_exit(void)
230{ 230{
231 drm_pci_exit(&bochs_driver, &bochs_pci_driver); 231 pci_unregister_driver(&bochs_pci_driver);
232} 232}
233 233
234module_init(bochs_init); 234module_init(bochs_init);
diff --git a/drivers/gpu/drm/cirrus/cirrus_drv.c b/drivers/gpu/drm/cirrus/cirrus_drv.c
index c48b9eb76712..910c300f5c37 100644
--- a/drivers/gpu/drm/cirrus/cirrus_drv.c
+++ b/drivers/gpu/drm/cirrus/cirrus_drv.c
@@ -165,12 +165,12 @@ static int __init cirrus_init(void)
165 165
166 if (cirrus_modeset == 0) 166 if (cirrus_modeset == 0)
167 return -EINVAL; 167 return -EINVAL;
168 return drm_pci_init(&driver, &cirrus_pci_driver); 168 return pci_register_driver(&cirrus_pci_driver);
169} 169}
170 170
171static void __exit cirrus_exit(void) 171static void __exit cirrus_exit(void)
172{ 172{
173 drm_pci_exit(&driver, &cirrus_pci_driver); 173 pci_unregister_driver(&cirrus_pci_driver);
174} 174}
175 175
176module_init(cirrus_init); 176module_init(cirrus_init);
diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c
index ad31d95e77c9..1235c9877d6f 100644
--- a/drivers/gpu/drm/drm_pci.c
+++ b/drivers/gpu/drm/drm_pci.c
@@ -280,20 +280,15 @@ err_free:
280EXPORT_SYMBOL(drm_get_pci_dev); 280EXPORT_SYMBOL(drm_get_pci_dev);
281 281
282/** 282/**
283 * drm_pci_init - Register matching PCI devices with the DRM subsystem 283 * drm_legacy_pci_init - shadow-attach a legacy DRM PCI driver
284 * @driver: DRM device driver 284 * @driver: DRM device driver
285 * @pdriver: PCI device driver 285 * @pdriver: PCI device driver
286 * 286 *
287 * Initializes a drm_device structures, registering the stubs and initializing 287 * This is only used by legacy dri1 drivers and deprecated.
288 * the AGP device.
289 *
290 * NOTE: This function is deprecated. Modern modesetting drm drivers should use
291 * pci_register_driver() directly, this function only provides shadow-binding
292 * support for old legacy drivers on top of that core pci function.
293 * 288 *
294 * Return: 0 on success or a negative error code on failure. 289 * Return: 0 on success or a negative error code on failure.
295 */ 290 */
296int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver) 291int drm_legacy_pci_init(struct drm_driver *driver, struct pci_driver *pdriver)
297{ 292{
298 struct pci_dev *pdev = NULL; 293 struct pci_dev *pdev = NULL;
299 const struct pci_device_id *pid; 294 const struct pci_device_id *pid;
@@ -301,8 +296,8 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver)
301 296
302 DRM_DEBUG("\n"); 297 DRM_DEBUG("\n");
303 298
304 if (!(driver->driver_features & DRIVER_LEGACY)) 299 if (WARN_ON(!(driver->driver_features & DRIVER_LEGACY)))
305 return pci_register_driver(pdriver); 300 return -EINVAL;
306 301
307 /* If not using KMS, fall back to stealth mode manual scanning. */ 302 /* If not using KMS, fall back to stealth mode manual scanning. */
308 INIT_LIST_HEAD(&driver->legacy_dev_list); 303 INIT_LIST_HEAD(&driver->legacy_dev_list);
@@ -329,6 +324,7 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver)
329 } 324 }
330 return 0; 325 return 0;
331} 326}
327EXPORT_SYMBOL(drm_legacy_pci_init);
332 328
333int drm_pcie_get_speed_cap_mask(struct drm_device *dev, u32 *mask) 329int drm_pcie_get_speed_cap_mask(struct drm_device *dev, u32 *mask)
334{ 330{
@@ -390,11 +386,6 @@ EXPORT_SYMBOL(drm_pcie_get_max_link_width);
390 386
391#else 387#else
392 388
393int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver)
394{
395 return -1;
396}
397
398void drm_pci_agp_destroy(struct drm_device *dev) {} 389void drm_pci_agp_destroy(struct drm_device *dev) {}
399 390
400int drm_irq_by_busid(struct drm_device *dev, void *data, 391int drm_irq_by_busid(struct drm_device *dev, void *data,
@@ -404,27 +395,21 @@ int drm_irq_by_busid(struct drm_device *dev, void *data,
404} 395}
405#endif 396#endif
406 397
407EXPORT_SYMBOL(drm_pci_init);
408
409/** 398/**
410 * drm_pci_exit - Unregister matching PCI devices from the DRM subsystem 399 * drm_legacy_pci_exit - unregister shadow-attach legacy DRM driver
411 * @driver: DRM device driver 400 * @driver: DRM device driver
412 * @pdriver: PCI device driver 401 * @pdriver: PCI device driver
413 * 402 *
414 * Unregisters one or more devices matched by a PCI driver from the DRM 403 * Unregister a DRM driver shadow-attached through drm_legacy_pci_init(). This
415 * subsystem. 404 * is deprecated and only used by dri1 drivers.
416 *
417 * NOTE: This function is deprecated. Modern modesetting drm drivers should use
418 * pci_unregister_driver() directly, this function only provides shadow-binding
419 * support for old legacy drivers on top of that core pci function.
420 */ 405 */
421void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver) 406void drm_legacy_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver)
422{ 407{
423 struct drm_device *dev, *tmp; 408 struct drm_device *dev, *tmp;
424 DRM_DEBUG("\n"); 409 DRM_DEBUG("\n");
425 410
426 if (!(driver->driver_features & DRIVER_LEGACY)) { 411 if (!(driver->driver_features & DRIVER_LEGACY)) {
427 pci_unregister_driver(pdriver); 412 WARN_ON(1);
428 } else { 413 } else {
429 list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list, 414 list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list,
430 legacy_dev_list) { 415 legacy_dev_list) {
@@ -434,4 +419,4 @@ void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver)
434 } 419 }
435 DRM_INFO("Module unloaded\n"); 420 DRM_INFO("Module unloaded\n");
436} 421}
437EXPORT_SYMBOL(drm_pci_exit); 422EXPORT_SYMBOL(drm_legacy_pci_exit);
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index 37d4c36c80f2..747c06b227c5 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -516,12 +516,12 @@ static struct pci_driver psb_pci_driver = {
516 516
517static int __init psb_init(void) 517static int __init psb_init(void)
518{ 518{
519 return drm_pci_init(&driver, &psb_pci_driver); 519 return pci_register_driver(&psb_pci_driver);
520} 520}
521 521
522static void __exit psb_exit(void) 522static void __exit psb_exit(void)
523{ 523{
524 drm_pci_exit(&driver, &psb_pci_driver); 524 pci_unregister_driver(&psb_pci_driver);
525} 525}
526 526
527late_initcall(psb_init); 527late_initcall(psb_init);
diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c
index e1c35c710e24..c69d5c487f51 100644
--- a/drivers/gpu/drm/i810/i810_drv.c
+++ b/drivers/gpu/drm/i810/i810_drv.c
@@ -82,12 +82,12 @@ static int __init i810_init(void)
82 return -EINVAL; 82 return -EINVAL;
83 } 83 }
84 driver.num_ioctls = i810_max_ioctl; 84 driver.num_ioctls = i810_max_ioctl;
85 return drm_pci_init(&driver, &i810_pci_driver); 85 return drm_legacy_pci_init(&driver, &i810_pci_driver);
86} 86}
87 87
88static void __exit i810_exit(void) 88static void __exit i810_exit(void)
89{ 89{
90 drm_pci_exit(&driver, &i810_pci_driver); 90 drm_legacy_pci_exit(&driver, &i810_pci_driver);
91} 91}
92 92
93module_init(i810_init); 93module_init(i810_init);
diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c
index 2a36ec611a44..1aad27813c23 100644
--- a/drivers/gpu/drm/mga/mga_drv.c
+++ b/drivers/gpu/drm/mga/mga_drv.c
@@ -89,12 +89,12 @@ static struct pci_driver mga_pci_driver = {
89static int __init mga_init(void) 89static int __init mga_init(void)
90{ 90{
91 driver.num_ioctls = mga_max_ioctl; 91 driver.num_ioctls = mga_max_ioctl;
92 return drm_pci_init(&driver, &mga_pci_driver); 92 return drm_legacy_pci_init(&driver, &mga_pci_driver);
93} 93}
94 94
95static void __exit mga_exit(void) 95static void __exit mga_exit(void)
96{ 96{
97 drm_pci_exit(&driver, &mga_pci_driver); 97 drm_legacy_pci_exit(&driver, &mga_pci_driver);
98} 98}
99 99
100module_init(mga_init); 100module_init(mga_init);
diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c
index 53a5982a04c7..4189160af726 100644
--- a/drivers/gpu/drm/mgag200/mgag200_drv.c
+++ b/drivers/gpu/drm/mgag200/mgag200_drv.c
@@ -119,12 +119,13 @@ static int __init mgag200_init(void)
119 119
120 if (mgag200_modeset == 0) 120 if (mgag200_modeset == 0)
121 return -EINVAL; 121 return -EINVAL;
122 return drm_pci_init(&driver, &mgag200_pci_driver); 122
123 return pci_register_driver(&mgag200_pci_driver);
123} 124}
124 125
125static void __exit mgag200_exit(void) 126static void __exit mgag200_exit(void)
126{ 127{
127 drm_pci_exit(&driver, &mgag200_pci_driver); 128 pci_unregister_driver(&mgag200_pci_driver);
128} 129}
129 130
130module_init(mgag200_init); 131module_init(mgag200_init);
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 3e1a8da9b20f..efa5489c5aed 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -1120,7 +1120,12 @@ nouveau_drm_init(void)
1120 1120
1121 nouveau_register_dsm_handler(); 1121 nouveau_register_dsm_handler();
1122 nouveau_backlight_ctor(); 1122 nouveau_backlight_ctor();
1123 return drm_pci_init(&driver_pci, &nouveau_drm_pci_driver); 1123
1124#ifdef CONFIG_PCI
1125 return pci_register_driver(&nouveau_drm_pci_driver);
1126#else
1127 return 0;
1128#endif
1124} 1129}
1125 1130
1126static void __exit 1131static void __exit
@@ -1129,7 +1134,9 @@ nouveau_drm_exit(void)
1129 if (!nouveau_modeset) 1134 if (!nouveau_modeset)
1130 return; 1135 return;
1131 1136
1132 drm_pci_exit(&driver_pci, &nouveau_drm_pci_driver); 1137#ifdef CONFIG_PCI
1138 pci_unregister_driver(&nouveau_drm_pci_driver);
1139#endif
1133 nouveau_backlight_dtor(); 1140 nouveau_backlight_dtor();
1134 nouveau_unregister_dsm_handler(); 1141 nouveau_unregister_dsm_handler();
1135 1142
diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c
index bb2d8da7e553..15c97b16ee21 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.c
+++ b/drivers/gpu/drm/qxl/qxl_drv.c
@@ -301,12 +301,12 @@ static int __init qxl_init(void)
301 if (qxl_modeset == 0) 301 if (qxl_modeset == 0)
302 return -EINVAL; 302 return -EINVAL;
303 qxl_driver.num_ioctls = qxl_max_ioctls; 303 qxl_driver.num_ioctls = qxl_max_ioctls;
304 return drm_pci_init(&qxl_driver, &qxl_pci_driver); 304 return pci_register_driver(&qxl_pci_driver);
305} 305}
306 306
307static void __exit qxl_exit(void) 307static void __exit qxl_exit(void)
308{ 308{
309 drm_pci_exit(&qxl_driver, &qxl_pci_driver); 309 pci_unregister_driver(&qxl_pci_driver);
310} 310}
311 311
312module_init(qxl_init); 312module_init(qxl_init);
diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c
index 1d43c434328d..0d2b7e42b3a7 100644
--- a/drivers/gpu/drm/r128/r128_drv.c
+++ b/drivers/gpu/drm/r128/r128_drv.c
@@ -95,12 +95,12 @@ static int __init r128_init(void)
95{ 95{
96 driver.num_ioctls = r128_max_ioctl; 96 driver.num_ioctls = r128_max_ioctl;
97 97
98 return drm_pci_init(&driver, &r128_pci_driver); 98 return drm_legacy_pci_init(&driver, &r128_pci_driver);
99} 99}
100 100
101static void __exit r128_exit(void) 101static void __exit r128_exit(void)
102{ 102{
103 drm_pci_exit(&driver, &r128_pci_driver); 103 drm_legacy_pci_exit(&driver, &r128_pci_driver);
104} 104}
105 105
106module_init(r128_init); 106module_init(r128_init);
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index dd5e86dafb29..0d02349674f6 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -619,14 +619,13 @@ static int __init radeon_init(void)
619 return -EINVAL; 619 return -EINVAL;
620 } 620 }
621 621
622 /* let modprobe override vga console setting */ 622 return pci_register_driver(pdriver);
623 return drm_pci_init(driver, pdriver);
624} 623}
625 624
626static void __exit radeon_exit(void) 625static void __exit radeon_exit(void)
627{ 626{
628 radeon_kfd_fini(); 627 radeon_kfd_fini();
629 drm_pci_exit(driver, pdriver); 628 pci_unregister_driver(pdriver);
630 radeon_unregister_atpx_handler(); 629 radeon_unregister_atpx_handler();
631} 630}
632 631
diff --git a/drivers/gpu/drm/savage/savage_drv.c b/drivers/gpu/drm/savage/savage_drv.c
index 2a08da09dbcf..2bddeb8bf457 100644
--- a/drivers/gpu/drm/savage/savage_drv.c
+++ b/drivers/gpu/drm/savage/savage_drv.c
@@ -74,12 +74,12 @@ static struct pci_driver savage_pci_driver = {
74static int __init savage_init(void) 74static int __init savage_init(void)
75{ 75{
76 driver.num_ioctls = savage_max_ioctl; 76 driver.num_ioctls = savage_max_ioctl;
77 return drm_pci_init(&driver, &savage_pci_driver); 77 return drm_legacy_pci_init(&driver, &savage_pci_driver);
78} 78}
79 79
80static void __exit savage_exit(void) 80static void __exit savage_exit(void)
81{ 81{
82 drm_pci_exit(&driver, &savage_pci_driver); 82 drm_legacy_pci_exit(&driver, &savage_pci_driver);
83} 83}
84 84
85module_init(savage_init); 85module_init(savage_init);
diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c
index cdaced381f5d..e04a92658cd7 100644
--- a/drivers/gpu/drm/sis/sis_drv.c
+++ b/drivers/gpu/drm/sis/sis_drv.c
@@ -124,12 +124,12 @@ static struct pci_driver sis_pci_driver = {
124static int __init sis_init(void) 124static int __init sis_init(void)
125{ 125{
126 driver.num_ioctls = sis_max_ioctl; 126 driver.num_ioctls = sis_max_ioctl;
127 return drm_pci_init(&driver, &sis_pci_driver); 127 return drm_legacy_pci_init(&driver, &sis_pci_driver);
128} 128}
129 129
130static void __exit sis_exit(void) 130static void __exit sis_exit(void)
131{ 131{
132 drm_pci_exit(&driver, &sis_pci_driver); 132 drm_legacy_pci_exit(&driver, &sis_pci_driver);
133} 133}
134 134
135module_init(sis_init); 135module_init(sis_init);
diff --git a/drivers/gpu/drm/tdfx/tdfx_drv.c b/drivers/gpu/drm/tdfx/tdfx_drv.c
index acd5f8162bb6..3a1476818c65 100644
--- a/drivers/gpu/drm/tdfx/tdfx_drv.c
+++ b/drivers/gpu/drm/tdfx/tdfx_drv.c
@@ -71,12 +71,12 @@ static struct pci_driver tdfx_pci_driver = {
71 71
72static int __init tdfx_init(void) 72static int __init tdfx_init(void)
73{ 73{
74 return drm_pci_init(&driver, &tdfx_pci_driver); 74 return drm_legacy_pci_init(&driver, &tdfx_pci_driver);
75} 75}
76 76
77static void __exit tdfx_exit(void) 77static void __exit tdfx_exit(void)
78{ 78{
79 drm_pci_exit(&driver, &tdfx_pci_driver); 79 drm_legacy_pci_exit(&driver, &tdfx_pci_driver);
80} 80}
81 81
82module_init(tdfx_init); 82module_init(tdfx_init);
diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c
index 0ca4e0489c0b..aaf766f7cca2 100644
--- a/drivers/gpu/drm/via/via_drv.c
+++ b/drivers/gpu/drm/via/via_drv.c
@@ -106,12 +106,12 @@ static int __init via_init(void)
106{ 106{
107 driver.num_ioctls = via_max_ioctl; 107 driver.num_ioctls = via_max_ioctl;
108 via_init_command_verifier(); 108 via_init_command_verifier();
109 return drm_pci_init(&driver, &via_pci_driver); 109 return drm_legacy_pci_init(&driver, &via_pci_driver);
110} 110}
111 111
112static void __exit via_exit(void) 112static void __exit via_exit(void)
113{ 113{
114 drm_pci_exit(&driver, &via_pci_driver); 114 drm_legacy_pci_exit(&driver, &via_pci_driver);
115} 115}
116 116
117module_init(via_init); 117module_init(via_init);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 63218033b0be..204bf181b69e 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -1570,7 +1570,7 @@ static int __init vmwgfx_init(void)
1570 if (vgacon_text_force()) 1570 if (vgacon_text_force())
1571 return -EINVAL; 1571 return -EINVAL;
1572 1572
1573 ret = drm_pci_init(&driver, &vmw_pci_driver); 1573 ret = pci_register_driver(&vmw_pci_driver);
1574 if (ret) 1574 if (ret)
1575 DRM_ERROR("Failed initializing DRM.\n"); 1575 DRM_ERROR("Failed initializing DRM.\n");
1576 return ret; 1576 return ret;
@@ -1578,7 +1578,7 @@ static int __init vmwgfx_init(void)
1578 1578
1579static void __exit vmwgfx_exit(void) 1579static void __exit vmwgfx_exit(void)
1580{ 1580{
1581 drm_pci_exit(&driver, &vmw_pci_driver); 1581 pci_unregister_driver(&vmw_pci_driver);
1582} 1582}
1583 1583
1584module_init(vmwgfx_init); 1584module_init(vmwgfx_init);
diff --git a/include/drm/drm_pci.h b/include/drm/drm_pci.h
index 961b16f9b553..674599025d7d 100644
--- a/include/drm/drm_pci.h
+++ b/include/drm/drm_pci.h
@@ -43,8 +43,8 @@ struct drm_dma_handle *drm_pci_alloc(struct drm_device *dev, size_t size,
43 size_t align); 43 size_t align);
44void drm_pci_free(struct drm_device *dev, struct drm_dma_handle * dmah); 44void drm_pci_free(struct drm_device *dev, struct drm_dma_handle * dmah);
45 45
46int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver); 46int drm_legacy_pci_init(struct drm_driver *driver, struct pci_driver *pdriver);
47void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver); 47void drm_legacy_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver);
48#ifdef CONFIG_PCI 48#ifdef CONFIG_PCI
49int drm_get_pci_dev(struct pci_dev *pdev, 49int drm_get_pci_dev(struct pci_dev *pdev,
50 const struct pci_device_id *ent, 50 const struct pci_device_id *ent,