aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS4
-rw-r--r--drivers/char/agp/intel-agp.c4
-rw-r--r--drivers/gpu/drm/i915/Makefile1
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c9
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c4
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c33
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h11
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c39
-rw-r--r--drivers/gpu/drm/i915/i915_gem_evict.c14
-rw-r--r--drivers/gpu/drm/i915/i915_gem_execbuffer.c18
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c174
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h46
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c6
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c6
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c755
-rw-r--r--drivers/gpu/drm/i915/intel_display.c371
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h33
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c278
-rw-r--r--drivers/gpu/drm/i915/intel_i2c.c4
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c92
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.h6
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c11
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/
2373F: include/drm/ 2373F: include/drm/
2374 2374
2375INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets) 2375INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
2376M: Keith Packard <keithp@keithp.com> 2376M: Daniel Vetter <daniel.vetter@ffwll.ch>
2377L: intel-gfx@lists.freedesktop.org (subscribers-only) 2377L: intel-gfx@lists.freedesktop.org (subscribers-only)
2378L: dri-devel@lists.freedesktop.org 2378L: dri-devel@lists.freedesktop.org
2379T: git git://git.kernel.org/pub/scm/linux/kernel/git/keithp/linux.git 2379T: git git://people.freedesktop.org/~danvet/drm-intel
2380S: Supported 2380S: Supported
2381F: drivers/gpu/drm/i915 2381F: drivers/gpu/drm/i915
2382F: include/drm/i915* 2382F: 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);