diff options
| -rw-r--r-- | MAINTAINERS | 4 | ||||
| -rw-r--r-- | drivers/char/agp/intel-agp.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/Makefile | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_debugfs.c | 9 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 33 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 11 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 39 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_evict.c | 14 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_execbuffer.c | 18 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 174 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 46 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_suspend.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_crt.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_ddi.c | 755 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 371 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 33 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 278 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_i2c.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 92 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.h | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_sdvo.c | 11 |
22 files changed, 1627 insertions, 292 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 707163365a93..90e7e226a90c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -2373,10 +2373,10 @@ F: drivers/gpu/drm/ | |||
| 2373 | F: include/drm/ | 2373 | F: include/drm/ |
| 2374 | 2374 | ||
| 2375 | INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets) | 2375 | INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets) |
| 2376 | M: Keith Packard <keithp@keithp.com> | 2376 | M: Daniel Vetter <daniel.vetter@ffwll.ch> |
| 2377 | L: intel-gfx@lists.freedesktop.org (subscribers-only) | 2377 | L: intel-gfx@lists.freedesktop.org (subscribers-only) |
| 2378 | L: dri-devel@lists.freedesktop.org | 2378 | L: dri-devel@lists.freedesktop.org |
| 2379 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/keithp/linux.git | 2379 | T: git git://people.freedesktop.org/~danvet/drm-intel |
| 2380 | S: Supported | 2380 | S: Supported |
| 2381 | F: drivers/gpu/drm/i915 | 2381 | F: drivers/gpu/drm/i915 |
| 2382 | F: include/drm/i915* | 2382 | F: include/drm/i915* |
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index 74c2d9274c53..764f70c5e690 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c | |||
| @@ -908,6 +908,10 @@ static struct pci_device_id agp_intel_pci_table[] = { | |||
| 908 | ID(PCI_DEVICE_ID_INTEL_IVYBRIDGE_M_HB), | 908 | ID(PCI_DEVICE_ID_INTEL_IVYBRIDGE_M_HB), |
| 909 | ID(PCI_DEVICE_ID_INTEL_IVYBRIDGE_S_HB), | 909 | ID(PCI_DEVICE_ID_INTEL_IVYBRIDGE_S_HB), |
| 910 | ID(PCI_DEVICE_ID_INTEL_VALLEYVIEW_HB), | 910 | ID(PCI_DEVICE_ID_INTEL_VALLEYVIEW_HB), |
| 911 | ID(PCI_DEVICE_ID_INTEL_HASWELL_HB), | ||
| 912 | ID(PCI_DEVICE_ID_INTEL_HASWELL_M_HB), | ||
| 913 | ID(PCI_DEVICE_ID_INTEL_HASWELL_S_HB), | ||
| 914 | ID(PCI_DEVICE_ID_INTEL_HASWELL_E_HB), | ||
| 911 | { } | 915 | { } |
| 912 | }; | 916 | }; |
| 913 | 917 | ||
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index 8b8bbc70f86b..0ca7f7646ab5 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile | |||
| @@ -19,6 +19,7 @@ i915-y := i915_drv.o i915_dma.o i915_irq.o \ | |||
| 19 | intel_crt.o \ | 19 | intel_crt.o \ |
| 20 | intel_lvds.o \ | 20 | intel_lvds.o \ |
| 21 | intel_bios.o \ | 21 | intel_bios.o \ |
| 22 | intel_ddi.o \ | ||
| 22 | intel_dp.o \ | 23 | intel_dp.o \ |
| 23 | intel_hdmi.o \ | 24 | intel_hdmi.o \ |
| 24 | intel_sdvo.o \ | 25 | intel_sdvo.o \ |
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 950f72a0d729..eb2b3c25b9e1 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c | |||
| @@ -699,6 +699,7 @@ static int i915_error_state(struct seq_file *m, void *unused) | |||
| 699 | struct drm_device *dev = error_priv->dev; | 699 | struct drm_device *dev = error_priv->dev; |
| 700 | drm_i915_private_t *dev_priv = dev->dev_private; | 700 | drm_i915_private_t *dev_priv = dev->dev_private; |
| 701 | struct drm_i915_error_state *error = error_priv->error; | 701 | struct drm_i915_error_state *error = error_priv->error; |
| 702 | struct intel_ring_buffer *ring; | ||
| 702 | int i, j, page, offset, elt; | 703 | int i, j, page, offset, elt; |
| 703 | 704 | ||
| 704 | if (!error) { | 705 | if (!error) { |
| @@ -706,7 +707,6 @@ static int i915_error_state(struct seq_file *m, void *unused) | |||
| 706 | return 0; | 707 | return 0; |
| 707 | } | 708 | } |
| 708 | 709 | ||
| 709 | |||
| 710 | seq_printf(m, "Time: %ld s %ld us\n", error->time.tv_sec, | 710 | seq_printf(m, "Time: %ld s %ld us\n", error->time.tv_sec, |
| 711 | error->time.tv_usec); | 711 | error->time.tv_usec); |
| 712 | seq_printf(m, "PCI ID: 0x%04x\n", dev->pci_device); | 712 | seq_printf(m, "PCI ID: 0x%04x\n", dev->pci_device); |
| @@ -722,11 +722,8 @@ static int i915_error_state(struct seq_file *m, void *unused) | |||
| 722 | seq_printf(m, "DONE_REG: 0x%08x\n", error->done_reg); | 722 | seq_printf(m, "DONE_REG: 0x%08x\n", error->done_reg); |
| 723 | } | 723 | } |
| 724 | 724 | ||
| 725 | i915_ring_error_state(m, dev, error, RCS); | 725 | for_each_ring(ring, dev_priv, i) |
| 726 | if (HAS_BLT(dev)) | 726 | i915_ring_error_state(m, dev, error, i); |
| 727 | i915_ring_error_state(m, dev, error, BCS); | ||
| 728 | if (HAS_BSD(dev)) | ||
| 729 | i915_ring_error_state(m, dev, error, VCS); | ||
| 730 | 727 | ||
| 731 | if (error->active_bo) | 728 | if (error->active_bo) |
| 732 | print_error_buffers(m, "Active", | 729 | print_error_buffers(m, "Active", |
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 42d91e841629..f94792626b94 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
| @@ -980,10 +980,10 @@ static int i915_getparam(struct drm_device *dev, void *data, | |||
| 980 | value = 1; | 980 | value = 1; |
| 981 | break; | 981 | break; |
| 982 | case I915_PARAM_HAS_BSD: | 982 | case I915_PARAM_HAS_BSD: |
| 983 | value = HAS_BSD(dev); | 983 | value = intel_ring_initialized(&dev_priv->ring[VCS]); |
| 984 | break; | 984 | break; |
| 985 | case I915_PARAM_HAS_BLT: | 985 | case I915_PARAM_HAS_BLT: |
| 986 | value = HAS_BLT(dev); | 986 | value = intel_ring_initialized(&dev_priv->ring[BCS]); |
| 987 | break; | 987 | break; |
| 988 | case I915_PARAM_HAS_RELAXED_FENCING: | 988 | case I915_PARAM_HAS_RELAXED_FENCING: |
| 989 | value = 1; | 989 | value = 1; |
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 77b7a50e2014..d3e194853061 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
| @@ -345,6 +345,13 @@ static const struct pci_device_id pciidlist[] = { /* aka */ | |||
| 345 | INTEL_VGA_DEVICE(0x0162, &intel_ivybridge_d_info), /* GT2 desktop */ | 345 | INTEL_VGA_DEVICE(0x0162, &intel_ivybridge_d_info), /* GT2 desktop */ |
| 346 | INTEL_VGA_DEVICE(0x015a, &intel_ivybridge_d_info), /* GT1 server */ | 346 | INTEL_VGA_DEVICE(0x015a, &intel_ivybridge_d_info), /* GT1 server */ |
| 347 | INTEL_VGA_DEVICE(0x016a, &intel_ivybridge_d_info), /* GT2 server */ | 347 | INTEL_VGA_DEVICE(0x016a, &intel_ivybridge_d_info), /* GT2 server */ |
| 348 | INTEL_VGA_DEVICE(0x0402, &intel_haswell_d_info), /* GT1 desktop */ | ||
| 349 | INTEL_VGA_DEVICE(0x0412, &intel_haswell_d_info), /* GT2 desktop */ | ||
| 350 | INTEL_VGA_DEVICE(0x040a, &intel_haswell_d_info), /* GT1 server */ | ||
| 351 | INTEL_VGA_DEVICE(0x041a, &intel_haswell_d_info), /* GT2 server */ | ||
| 352 | INTEL_VGA_DEVICE(0x0406, &intel_haswell_m_info), /* GT1 mobile */ | ||
| 353 | INTEL_VGA_DEVICE(0x0416, &intel_haswell_m_info), /* GT2 mobile */ | ||
| 354 | INTEL_VGA_DEVICE(0x0c16, &intel_haswell_d_info), /* SDV */ | ||
| 348 | {0, 0, 0} | 355 | {0, 0, 0} |
| 349 | }; | 356 | }; |
| 350 | 357 | ||
| @@ -407,9 +414,11 @@ bool i915_semaphore_is_enabled(struct drm_device *dev) | |||
| 407 | if (i915_semaphores >= 0) | 414 | if (i915_semaphores >= 0) |
| 408 | return i915_semaphores; | 415 | return i915_semaphores; |
| 409 | 416 | ||
| 417 | #ifdef CONFIG_INTEL_IOMMU | ||
| 410 | /* Enable semaphores on SNB when IO remapping is off */ | 418 | /* Enable semaphores on SNB when IO remapping is off */ |
| 411 | if (INTEL_INFO(dev)->gen == 6) | 419 | if (INTEL_INFO(dev)->gen == 6 && intel_iommu_gfx_mapped) |
| 412 | return !intel_iommu_enabled; | 420 | return false; |
| 421 | #endif | ||
| 413 | 422 | ||
| 414 | return 1; | 423 | return 1; |
| 415 | } | 424 | } |
| @@ -622,15 +631,16 @@ static int i915_drm_thaw(struct drm_device *dev) | |||
| 622 | 631 | ||
| 623 | /* KMS EnterVT equivalent */ | 632 | /* KMS EnterVT equivalent */ |
| 624 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { | 633 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { |
| 634 | if (HAS_PCH_SPLIT(dev)) | ||
| 635 | ironlake_init_pch_refclk(dev); | ||
| 636 | |||
| 625 | mutex_lock(&dev->struct_mutex); | 637 | mutex_lock(&dev->struct_mutex); |
| 626 | dev_priv->mm.suspended = 0; | 638 | dev_priv->mm.suspended = 0; |
| 627 | 639 | ||
| 628 | error = i915_gem_init_hw(dev); | 640 | error = i915_gem_init_hw(dev); |
| 629 | mutex_unlock(&dev->struct_mutex); | 641 | mutex_unlock(&dev->struct_mutex); |
| 630 | 642 | ||
| 631 | if (HAS_PCH_SPLIT(dev)) | 643 | intel_modeset_init_hw(dev); |
