]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - drivers/gpu/drm/radeon/radeon_drv.c
drm/radeon: Deprecate UMS support v2
[linux-imx.git] / drivers / gpu / drm / radeon / radeon_drv.c
index d9bf96ee299acc88181f003b1eff5dc226f7ced4..833484da12d97206d6d47bf72aed846d1aed3ace 100644 (file)
@@ -123,15 +123,25 @@ struct dma_buf *radeon_gem_prime_export(struct drm_device *dev,
                                        int flags);
 struct drm_gem_object *radeon_gem_prime_import(struct drm_device *dev,
                                               struct dma_buf *dma_buf);
+extern long radeon_kms_compat_ioctl(struct file *filp, unsigned int cmd,
+                                   unsigned long arg);
 
 #if defined(CONFIG_DEBUG_FS)
 int radeon_debugfs_init(struct drm_minor *minor);
 void radeon_debugfs_cleanup(struct drm_minor *minor);
 #endif
 
+/* atpx handler */
+#if defined(CONFIG_VGA_SWITCHEROO)
+void radeon_register_atpx_handler(void);
+void radeon_unregister_atpx_handler(void);
+#else
+static inline void radeon_register_atpx_handler(void) {}
+static inline void radeon_unregister_atpx_handler(void) {}
+#endif
 
 int radeon_no_wb;
-int radeon_modeset = -1;
+int radeon_modeset = 1;
 int radeon_dynclks = -1;
 int radeon_r4xx_atom = 0;
 int radeon_agpmode = 0;
@@ -199,6 +209,14 @@ module_param_named(msi, radeon_msi, int, 0444);
 MODULE_PARM_DESC(lockup_timeout, "GPU lockup timeout in ms (defaul 10000 = 10 seconds, 0 = disable)");
 module_param_named(lockup_timeout, radeon_lockup_timeout, int, 0444);
 
+static struct pci_device_id pciidlist[] = {
+       radeon_PCI_IDS
+};
+
+MODULE_DEVICE_TABLE(pci, pciidlist);
+
+#ifdef CONFIG_DRM_RADEON_UMS
+
 static int radeon_suspend(struct drm_device *dev, pm_message_t state)
 {
        drm_radeon_private_t *dev_priv = dev->dev_private;
@@ -227,14 +245,6 @@ static int radeon_resume(struct drm_device *dev)
        return 0;
 }
 
-static struct pci_device_id pciidlist[] = {
-       radeon_PCI_IDS
-};
-
-#if defined(CONFIG_DRM_RADEON_KMS)
-MODULE_DEVICE_TABLE(pci, pciidlist);
-#endif
-
 static const struct file_operations radeon_driver_old_fops = {
        .owner = THIS_MODULE,
        .open = drm_open,
@@ -284,6 +294,8 @@ static struct drm_driver driver_old = {
        .patchlevel = DRIVER_PATCHLEVEL,
 };
 
+#endif
+
 static struct drm_driver kms_driver;
 
 static int radeon_kick_out_firmware_fb(struct pci_dev *pdev)
@@ -411,10 +423,12 @@ static struct drm_driver kms_driver = {
 static struct drm_driver *driver;
 static struct pci_driver *pdriver;
 
+#ifdef CONFIG_DRM_RADEON_UMS
 static struct pci_driver radeon_pci_driver = {
        .name = DRIVER_NAME,
        .id_table = pciidlist,
 };
+#endif
 
 static struct pci_driver radeon_kms_pci_driver = {
        .name = DRIVER_NAME,
@@ -427,28 +441,6 @@ static struct pci_driver radeon_kms_pci_driver = {
 
 static int __init radeon_init(void)
 {
-       driver = &driver_old;
-       pdriver = &radeon_pci_driver;
-       driver->num_ioctls = radeon_max_ioctl;
-#ifdef CONFIG_VGA_CONSOLE
-       if (vgacon_text_force() && radeon_modeset == -1) {
-               DRM_INFO("VGACON disable radeon kernel modesetting.\n");
-               driver = &driver_old;
-               pdriver = &radeon_pci_driver;
-               driver->driver_features &= ~DRIVER_MODESET;
-               radeon_modeset = 0;
-       }
-#endif
-       /* if enabled by default */
-       if (radeon_modeset == -1) {
-#ifdef CONFIG_DRM_RADEON_KMS
-               DRM_INFO("radeon defaulting to kernel modesetting.\n");
-               radeon_modeset = 1;
-#else
-               DRM_INFO("radeon defaulting to userspace modesetting.\n");
-               radeon_modeset = 0;
-#endif
-       }
        if (radeon_modeset == 1) {
                DRM_INFO("radeon kernel modesetting enabled.\n");
                driver = &kms_driver;
@@ -456,9 +448,21 @@ static int __init radeon_init(void)
                driver->driver_features |= DRIVER_MODESET;
                driver->num_ioctls = radeon_max_kms_ioctl;
                radeon_register_atpx_handler();
+
+       } else {
+#ifdef CONFIG_DRM_RADEON_UMS
+               DRM_INFO("radeon userspace modesetting enabled.\n");
+               driver = &driver_old;
+               pdriver = &radeon_pci_driver;
+               driver->driver_features &= ~DRIVER_MODESET;
+               driver->num_ioctls = radeon_max_ioctl;
+#else
+               DRM_ERROR("No UMS support in radeon module!\n");
+               return -EINVAL;
+#endif
        }
-       /* if the vga console setting is enabled still
-        * let modprobe override it */
+
+       /* let modprobe override vga console setting */
        return drm_pci_init(driver, pdriver);
 }