static int __init i915_init(void) { if (!intel_agp_enabled) { DRM_ERROR("drm/i915 can't work without intel_agp module!\n"); return -ENODEV; } driver.num_ioctls = i915_max_ioctl; #if defined(CONFIG_DRM_I915_KMS) if (i915_modeset != 0) driver.driver_features |= DRIVER_MODESET; #endif if (i915_modeset == 1) driver.driver_features |= DRIVER_MODESET; #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && i915_modeset == -1) driver.driver_features &= ~DRIVER_MODESET; #endif if (!(driver.driver_features & DRIVER_MODESET)) driver.get_vblank_timestamp = NULL; return drm_pci_init(&driver, &i915_pci_driver); }
static int __init radeon_init(void) { driver = &driver_old; 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; 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; driver->driver_features |= DRIVER_MODESET; driver->num_ioctls = radeon_max_kms_ioctl; } /* if the vga console setting is enabled still * let modprobe override it */ return drm_init(driver); }
static int __init i915_init(void) { driver.num_ioctls = i915_max_ioctl; /* * If CONFIG_DRM_I915_KMS is set, default to KMS unless * explicitly disabled with the module pararmeter. * * Otherwise, just follow the parameter (defaulting to off). * * Allow optional vga_text_mode_force boot option to override * the default behavior. */ #if defined(CONFIG_DRM_I915_KMS) if (i915_modeset != 0) driver.driver_features |= DRIVER_MODESET; #endif if (i915_modeset == 1) driver.driver_features |= DRIVER_MODESET; #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && i915_modeset == -1) driver.driver_features &= ~DRIVER_MODESET; #endif return drm_init(&driver); }
static int __init i915_init(void) { driver.num_ioctls = i915_max_ioctl; /* * Enable KMS by default, unless explicitly overriden by * either the i915.modeset prarameter or by the * vga_text_mode_force boot option. */ if (i915.modeset == 0) driver.driver_features &= ~DRIVER_MODESET; if (vgacon_text_force() && i915.modeset == -1) driver.driver_features &= ~DRIVER_MODESET; if (!(driver.driver_features & DRIVER_MODESET)) { /* Silently fail loading to not upset userspace. */ DRM_DEBUG_DRIVER("KMS and UMS disabled.\n"); return 0; } if (i915.nuclear_pageflip) driver.driver_features |= DRIVER_ATOMIC; return drm_pci_init(&driver, &i915_pci_driver); }
static int __init i915_init(void) { driver.num_ioctls = i915_max_ioctl; /* * If CONFIG_DRM_I915_KMS is set, default to KMS unless * explicitly disabled with the module pararmeter. * * Otherwise, just follow the parameter (defaulting to off). * * Allow optional vga_text_mode_force boot option to override * the default behavior. */ #if defined(CONFIG_DRM_I915_KMS) if (i915_modeset != 0) driver.driver_features |= DRIVER_MODESET; #endif if (i915_modeset == 1) driver.driver_features |= DRIVER_MODESET; #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && i915_modeset == -1) driver.driver_features &= ~DRIVER_MODESET; #endif if (!(driver.driver_features & DRIVER_MODESET)) { driver.get_vblank_timestamp = NULL; #ifndef CONFIG_DRM_I915_UMS /* Silently fail loading to not upset userspace. */ return 0; #endif } return drm_pci_init(&driver, &i915_pci_driver); }
static int __init i915_init(void) { if (!intel_agp_enabled) { DRM_ERROR("drm/i915 can't work without intel_agp module!\n"); return -ENODEV; } driver.num_ioctls = i915_max_ioctl; /* * If CONFIG_DRM_I915_KMS is set, default to KMS unless * explicitly disabled with the module pararmeter. * * Otherwise, just follow the parameter (defaulting to off). * * Allow optional vga_text_mode_force boot option to override * the default behavior. */ #if defined(CONFIG_DRM_I915_KMS) if (i915_modeset != 0) driver.driver_features |= DRIVER_MODESET; #endif if (i915_modeset == 1) driver.driver_features |= DRIVER_MODESET; #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && i915_modeset == -1) driver.driver_features &= ~DRIVER_MODESET; #endif if (!(driver.driver_features & DRIVER_MODESET)) driver.get_vblank_timestamp = NULL; return drm_pci_init(&driver, &i915_pci_driver); }
static int __init ast_init(void) { if (vgacon_text_force() && ast_modeset == -1) return -EINVAL; if (ast_modeset == 0) return -EINVAL; return pci_register_driver(&ast_pci_driver); }
static int __init mgag200_init(void) { if (vgacon_text_force() && mgag200_modeset == -1) return -EINVAL; if (mgag200_modeset == 0) return -EINVAL; return drm_pci_init(&driver, &mgag200_pci_driver); }
static int __init cirrus_init(void) { if (vgacon_text_force() && cirrus_modeset == -1) return -EINVAL; if (cirrus_modeset == 0) return -EINVAL; return pci_register_driver(&cirrus_pci_driver); }
static int __init cirrus_init(void) { if (vgacon_text_force() && cirrus_modeset == -1) return -EINVAL; if (cirrus_modeset == 0) return -EINVAL; return drm_pci_init(&driver, &cirrus_pci_driver); }
static int __init ast_init(void) { if (vgacon_text_force() && ast_modeset == -1) return -EINVAL; if (ast_modeset == 0) return -EINVAL; return drm_pci_init(&driver, &ast_pci_driver); }
static int virtio_gpu_probe(struct virtio_device *vdev) { if (vgacon_text_force() && virtio_gpu_modeset == -1) return -EINVAL; if (virtio_gpu_modeset == 0) return -EINVAL; return drm_virtio_init(&driver, vdev); }
static int __init mgag200_init(void) { #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && mgag200_modeset == -1) return -EINVAL; #endif if (mgag200_modeset == 0) return -EINVAL; return drm_pci_init(&driver, &mgag200_pci_driver); }
static int virtio_gpu_probe(struct virtio_device *vdev) { #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && virtio_gpu_modeset == -1) return -EINVAL; #endif if (virtio_gpu_modeset == 0) return -EINVAL; return drm_virtio_init(&driver, vdev); }
static int __init vmwgfx_init(void) { int ret; if (vgacon_text_force()) return -EINVAL; ret = drm_pci_init(&driver, &vmw_pci_driver); if (ret) DRM_ERROR("Failed initializing DRM.\n"); return ret; }
static int __init vbox_init(void) { #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && vbox_modeset == -1) return -EINVAL; #endif if (vbox_modeset == 0) return -EINVAL; return pci_register_driver(&vbox_pci_driver); }
static int __init mgag200_init(void) { #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && mgag200_modeset == -1) return -EINVAL; #endif if (mgag200_modeset == 0) return -EINVAL; switch (mgag200_preferred_depth) { case 0: /* driver default */ case 16: case 24: break; default: return -EINVAL; } return drm_pci_init(&driver, &mgag200_pci_driver); }
static int __init vbox_init(void) { unsigned i; #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && vbox_modeset == -1) return -EINVAL; #endif if (vbox_modeset == 0) return -EINVAL; /* Do not load if any of the virtual consoles is in graphics mode to be * sure that we do not pick a fight with a user-mode driver or VESA. */ for (i = 0; i < MAX_NR_CONSOLES - 1; ++i) if (vc_cons[i].d && vc_cons[i].d->vc_mode == KD_GRAPHICS) return -EINVAL; return drm_pci_init(&driver, &vbox_pci_driver); }
static int virtio_gpu_probe(struct virtio_device *vdev) { struct drm_device *dev; int ret; if (vgacon_text_force() && virtio_gpu_modeset == -1) return -EINVAL; if (virtio_gpu_modeset == 0) return -EINVAL; dev = drm_dev_alloc(&driver, &vdev->dev); if (IS_ERR(dev)) return PTR_ERR(dev); vdev->priv = dev; if (!strcmp(vdev->dev.parent->bus->name, "pci")) { ret = virtio_gpu_pci_quirk(dev, vdev); if (ret) goto err_free; } ret = virtio_gpu_init(dev); if (ret) goto err_free; ret = drm_dev_register(dev, 0); if (ret) goto err_free; drm_fbdev_generic_setup(vdev->priv, 32); return 0; err_free: drm_dev_put(dev); return ret; }
static int __init radeon_init(void) { #ifdef CONFIG_VGA_CONSOLE if (vgacon_text_force() && radeon_modeset == -1) { DRM_INFO("VGACON disable radeon kernel modesetting.\n"); radeon_modeset = 0; } #endif /* set to modesetting by default if not nomodeset */ if (radeon_modeset == -1) radeon_modeset = 1; if (radeon_modeset == 1) { DRM_INFO("radeon kernel modesetting enabled.\n"); driver = &kms_driver; pdriver = &radeon_kms_pci_driver; driver->driver_features |= DRIVER_MODESET; driver->num_ioctls = radeon_max_kms_ioctl; radeon_register_atpx_handler(); } else { #ifdef CPTCFG_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 } /* let modprobe override vga console setting */ return drm_pci_init(driver, pdriver); }
static int __init i915_init(void) { bool use_kms = true; /* * Enable KMS by default, unless explicitly overriden by * either the i915.modeset prarameter or by the * vga_text_mode_force boot option. */ if (i915.modeset == 0) use_kms = false; if (vgacon_text_force() && i915.modeset == -1) use_kms = false; if (!use_kms) { /* Silently fail loading to not upset userspace. */ DRM_DEBUG_DRIVER("KMS disabled.\n"); return 0; } return pci_register_driver(&i915_pci_driver); }