diff options
author | Dave Airlie <airlied@redhat.com> | 2010-03-01 00:41:26 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-03-01 00:41:26 -0500 |
commit | cf7934a2a0ec55759fcf6861a868baadfd522300 (patch) | |
tree | 97fb4aac01d1b4e112126b2bd3852e3646d4b408 /drivers/gpu/drm/i915/i915_drv.c | |
parent | aa71fa3cd5b7b4f669cd74c5a16de57d2938cd85 (diff) | |
parent | 6070a4a928f8c92b9fae7d6717ebbb05f425d6b2 (diff) |
Merge remote branch 'anholt/drm-intel-next' into drm-next-stage
* anholt/drm-intel-next: (103 commits)
drm/i915: Use a dmi quirk to skip a broken SDVO TV output.
drm/i915: enable/disable LVDS port at DPMS time
drm/i915: check for multiple write domains in pin_and_relocate
drm/i915: clean-up i915_gem_flush_gpu_write_domain
drm/i915: reuse i915_gpu_idle helper
drm/i915: ensure lru ordering of fence_list
drm/i915: extract fence stealing code
drm/i915: fixup active list locking in object_unbind
drm/i915: reuse i915_gem_object_put_fence_reg for fence stealing code
drm/i915: Add dependency on the intel agp module
drm/i915: More s/IS_IRONLAKE/HAS_PCH_SPLIT for Sandybridge.
drm/i915: Correct the Sandybridge chipset info structs.
drm/i915: Disable the hangcheck reset on Sandybridge until we add support.
drm/i915: Add a new mobile Sandybridge PCI ID.
agp/intel: Add a new Sandybridge HB/IG PCI ID combo.
drm/i915, agp/intel: Fix stolen memory size on Sandybridge
drm/i915: Correct locking in the modesetting failure path, fixing a BUG_ON.
drm/i915: Disable the surface tile swizzling on Sandybridge.
agp/intel: Use a non-reserved value for the cache field of the PTEs.
drm/i915: Fix sandybridge status page setup.
...
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index cf4cb3e9a0c2..85ad020125c8 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -49,6 +49,7 @@ unsigned int i915_lvds_downclock = 0; | |||
49 | module_param_named(lvds_downclock, i915_lvds_downclock, int, 0400); | 49 | module_param_named(lvds_downclock, i915_lvds_downclock, int, 0400); |
50 | 50 | ||
51 | static struct drm_driver driver; | 51 | static struct drm_driver driver; |
52 | extern int intel_agp_enabled; | ||
52 | 53 | ||
53 | #define INTEL_VGA_DEVICE(id, info) { \ | 54 | #define INTEL_VGA_DEVICE(id, info) { \ |
54 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ | 55 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ |
@@ -136,6 +137,16 @@ const static struct intel_device_info intel_ironlake_m_info = { | |||
136 | .has_hotplug = 1, | 137 | .has_hotplug = 1, |
137 | }; | 138 | }; |
138 | 139 | ||
140 | const static struct intel_device_info intel_sandybridge_d_info = { | ||
141 | .is_i965g = 1, .is_i9xx = 1, .need_gfx_hws = 1, | ||
142 | .has_hotplug = 1, | ||
143 | }; | ||
144 | |||
145 | const static struct intel_device_info intel_sandybridge_m_info = { | ||
146 | .is_i965g = 1, .is_mobile = 1, .is_i9xx = 1, .need_gfx_hws = 1, | ||
147 | .has_hotplug = 1, | ||
148 | }; | ||
149 | |||
139 | const static struct pci_device_id pciidlist[] = { | 150 | const static struct pci_device_id pciidlist[] = { |
140 | INTEL_VGA_DEVICE(0x3577, &intel_i830_info), | 151 | INTEL_VGA_DEVICE(0x3577, &intel_i830_info), |
141 | INTEL_VGA_DEVICE(0x2562, &intel_845g_info), | 152 | INTEL_VGA_DEVICE(0x2562, &intel_845g_info), |
@@ -167,6 +178,8 @@ const static struct pci_device_id pciidlist[] = { | |||
167 | INTEL_VGA_DEVICE(0xa011, &intel_pineview_info), | 178 | INTEL_VGA_DEVICE(0xa011, &intel_pineview_info), |
168 | INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info), | 179 | INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info), |
169 | INTEL_VGA_DEVICE(0x0046, &intel_ironlake_m_info), | 180 | INTEL_VGA_DEVICE(0x0046, &intel_ironlake_m_info), |
181 | INTEL_VGA_DEVICE(0x0102, &intel_sandybridge_d_info), | ||
182 | INTEL_VGA_DEVICE(0x0106, &intel_sandybridge_m_info), | ||
170 | {0, 0, 0} | 183 | {0, 0, 0} |
171 | }; | 184 | }; |
172 | 185 | ||
@@ -546,6 +559,11 @@ static struct drm_driver driver = { | |||
546 | 559 | ||
547 | static int __init i915_init(void) | 560 | static int __init i915_init(void) |
548 | { | 561 | { |
562 | if (!intel_agp_enabled) { | ||
563 | DRM_ERROR("drm/i915 can't work without intel_agp module!\n"); | ||
564 | return -ENODEV; | ||
565 | } | ||
566 | |||
549 | driver.num_ioctls = i915_max_ioctl; | 567 | driver.num_ioctls = i915_max_ioctl; |
550 | 568 | ||
551 | i915_gem_shrinker_init(); | 569 | i915_gem_shrinker_init(); |
@@ -571,6 +589,11 @@ static int __init i915_init(void) | |||
571 | driver.driver_features &= ~DRIVER_MODESET; | 589 | driver.driver_features &= ~DRIVER_MODESET; |
572 | #endif | 590 | #endif |
573 | 591 | ||
592 | if (!(driver.driver_features & DRIVER_MODESET)) { | ||
593 | driver.suspend = i915_suspend; | ||
594 | driver.resume = i915_resume; | ||
595 | } | ||
596 | |||
574 | return drm_init(&driver); | 597 | return drm_init(&driver); |
575 | } | 598 | } |
576 | 599 | ||