diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index e0d996ed9026..cbee41c32417 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -33,11 +33,22 @@ | |||
33 | #include "i915_drv.h" | 33 | #include "i915_drv.h" |
34 | 34 | ||
35 | #include "drm_pciids.h" | 35 | #include "drm_pciids.h" |
36 | #include <linux/console.h> | ||
37 | |||
38 | unsigned int i915_modeset = -1; | ||
39 | module_param_named(modeset, i915_modeset, int, 0400); | ||
40 | |||
41 | unsigned int i915_fbpercrtc = 0; | ||
42 | module_param_named(fbpercrtc, i915_fbpercrtc, int, 0400); | ||
36 | 43 | ||
37 | static struct pci_device_id pciidlist[] = { | 44 | static struct pci_device_id pciidlist[] = { |
38 | i915_PCI_IDS | 45 | i915_PCI_IDS |
39 | }; | 46 | }; |
40 | 47 | ||
48 | #if defined(CONFIG_DRM_I915_KMS) | ||
49 | MODULE_DEVICE_TABLE(pci, pciidlist); | ||
50 | #endif | ||
51 | |||
41 | static int i915_suspend(struct drm_device *dev, pm_message_t state) | 52 | static int i915_suspend(struct drm_device *dev, pm_message_t state) |
42 | { | 53 | { |
43 | struct drm_i915_private *dev_priv = dev->dev_private; | 54 | struct drm_i915_private *dev_priv = dev->dev_private; |
@@ -148,6 +159,28 @@ static struct drm_driver driver = { | |||
148 | static int __init i915_init(void) | 159 | static int __init i915_init(void) |
149 | { | 160 | { |
150 | driver.num_ioctls = i915_max_ioctl; | 161 | driver.num_ioctls = i915_max_ioctl; |
162 | |||
163 | /* | ||
164 | * If CONFIG_DRM_I915_KMS is set, default to KMS unless | ||
165 | * explicitly disabled with the module pararmeter. | ||
166 | * | ||
167 | * Otherwise, just follow the parameter (defaulting to off). | ||
168 | * | ||
169 | * Allow optional vga_text_mode_force boot option to override | ||
170 | * the default behavior. | ||
171 | */ | ||
172 | #if defined(CONFIG_DRM_I915_KMS) | ||
173 | if (i915_modeset != 0) | ||
174 | driver.driver_features |= DRIVER_MODESET; | ||
175 | #endif | ||
176 | if (i915_modeset == 1) | ||
177 | driver.driver_features |= DRIVER_MODESET; | ||
178 | |||
179 | #ifdef CONFIG_VGA_CONSOLE | ||
180 | if (vgacon_text_force() && i915_modeset == -1) | ||
181 | driver.driver_features &= ~DRIVER_MODESET; | ||
182 | #endif | ||
183 | |||
151 | return drm_init(&driver); | 184 | return drm_init(&driver); |
152 | } | 185 | } |
153 | 186 | ||