aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2015-03-04 18:41:09 -0500
committerDave Airlie <airlied@redhat.com>2015-03-04 18:41:09 -0500
commit7547af91868f0ea940abc25460accc4025c5ce0a (patch)
treef7214956b6d744bd5625ec218acae44de2fbd5a5
parent87dc8b6cbdd9c9f39aaf215767f151b62791df5c (diff)
parentd4495cbaa5869d2ce8f4b1c9331d3a19b24eb98b (diff)
Merge tag 'drm-intel-next-2015-02-14' of git://anongit.freedesktop.org/drm-intel into drm-next
- use the atomic helpers for plane_upate/disable hooks (Matt Roper) - refactor the initial plane config code (Damien) - ppgtt prep patches for dynamic pagetable alloc (Ben Widawsky, reworked and rebased by a lot of other people) - framebuffer modifier support from Tvrtko Ursulin, drm core code from Rob Clark - piles of workaround patches for skl from Damien and Nick Hoath - vGPU support for xengt on the client side (Yu Zhang) - and the usual smaller things all over * tag 'drm-intel-next-2015-02-14' of git://anongit.freedesktop.org/drm-intel: (88 commits) drm/i915: Update DRIVER_DATE to 20150214 drm/i915: Remove references to previously removed UMS config option drm/i915/skl: Use a LRI for WaDisableDgMirrorFixInHalfSliceChicken5 drm/i915/skl: Fix always true comparison in a revision id check drm/i915/skl: Implement WaEnableLbsSlaRetryTimerDecrement drm/i915/skl: Implement WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken drm/i915: Add process identifier to requests drm/i915/skl: Implement WaBarrierPerformanceFixDisable drm/i915/skl: Implement WaCcsTlbPrefetchDisable:skl drm/i915/skl: Implement WaDisableChickenBitTSGBarrierAckForFFSliceCS drm/i915/skl: Implement WaDisableHDCInvalidation drm/i915/skl: Implement WaDisableLSQCROPERFforOCL drm/i915/skl: Implement WaDisablePartialResolveInVc drm/i915/skl: Introduce a SKL specific init_workarounds() drm/i915/skl: Document that we implement WaRsClearFWBitsAtReset drm/i915/skl: Implement WaSetGAPSunitClckGateDisable drm/i915/skl: Make the init clock gating function skylake specific drm/i915/skl: Provide a gen9 specific init_render_ring() drm/i915/skl: Document the WM read latency W/A with its name drm/i915/skl: Also detect eDRAM on SKL ...
-rw-r--r--Documentation/DocBook/drm.tmpl5
-rw-r--r--drivers/gpu/drm/drm_crtc.c14
-rw-r--r--drivers/gpu/drm/drm_crtc_helper.c1
-rw-r--r--drivers/gpu/drm/drm_ioctl.c3
-rw-r--r--drivers/gpu/drm/i915/Makefile3
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c16
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c8
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c21
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h37
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c9
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c44
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.h8
-rw-r--r--drivers/gpu/drm/i915/i915_gem_stolen.c8
-rw-r--r--drivers/gpu/drm/i915/i915_gpu_error.c5
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c5
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h48
-rw-r--r--drivers/gpu/drm/i915/i915_sysfs.c10
-rw-r--r--drivers/gpu/drm/i915/i915_trace.h8
-rw-r--r--drivers/gpu/drm/i915/i915_vgpu.c264
-rw-r--r--drivers/gpu/drm/i915/i915_vgpu.h91
-rw-r--r--drivers/gpu/drm/i915/intel_display.c261
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c4
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h18
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.c2
-rw-r--r--drivers/gpu/drm/i915/intel_dsi_cmd.h39
-rw-r--r--drivers/gpu/drm/i915/intel_fbc.c36
-rw-r--r--drivers/gpu/drm/i915/intel_fbdev.c3
-rw-r--r--drivers/gpu/drm/i915/intel_lrc.c109
-rw-r--r--drivers/gpu/drm/i915/intel_lrc.h8
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c114
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c217
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.h1
-rw-r--r--drivers/gpu/drm/i915/intel_runtime_pm.c220
-rw-r--r--drivers/gpu/drm/i915/intel_sprite.c19
-rw-r--r--drivers/gpu/drm/i915/intel_uncore.c40
-rw-r--r--include/drm/drm_crtc.h4
-rw-r--r--include/drm/i915_pciids.h28
-rw-r--r--include/uapi/drm/drm.h1
-rw-r--r--include/uapi/drm/drm_fourcc.h63
-rw-r--r--include/uapi/drm/drm_mode.h9
40 files changed, 1348 insertions, 456 deletions
diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index 03f1985a4bd1..249f0c9ede40 100644
--- a/Documentation/DocBook/drm.tmpl
+++ b/Documentation/DocBook/drm.tmpl
@@ -3979,6 +3979,11 @@ int num_ioctls;</synopsis>
3979!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_disable_interrupts 3979!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_disable_interrupts
3980!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_enable_interrupts 3980!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_enable_interrupts
3981 </sect2> 3981 </sect2>
3982 <sect2>
3983 <title>Intel GVT-g Guest Support(vGPU)</title>
3984!Pdrivers/gpu/drm/i915/i915_vgpu.c Intel GVT-g guest support
3985!Idrivers/gpu/drm/i915/i915_vgpu.c
3986 </sect2>
3982 </sect1> 3987 </sect1>
3983 <sect1> 3988 <sect1>
3984 <title>Display Hardware Handling</title> 3989 <title>Display Hardware Handling</title>
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 4dacee645153..29dbde5ecef7 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -3272,6 +3272,12 @@ static int framebuffer_check(const struct drm_mode_fb_cmd2 *r)
3272 DRM_DEBUG_KMS("bad pitch %u for plane %d\n", r->pitches[i], i); 3272 DRM_DEBUG_KMS("bad pitch %u for plane %d\n", r->pitches[i], i);
3273 return -EINVAL; 3273 return -EINVAL;
3274 } 3274 }
3275
3276 if (r->modifier[i] && !(r->flags & DRM_MODE_FB_MODIFIERS)) {
3277 DRM_DEBUG_KMS("bad fb modifier %llu for plane %d\n",
3278 r->modifier[i], i);
3279 return -EINVAL;
3280 }
3275 } 3281 }
3276 3282
3277 return 0; 3283 return 0;
@@ -3285,7 +3291,7 @@ static struct drm_framebuffer *add_framebuffer_internal(struct drm_device *dev,
3285 struct drm_framebuffer *fb; 3291 struct drm_framebuffer *fb;
3286 int ret; 3292 int ret;
3287 3293
3288 if (r->flags & ~DRM_MODE_FB_INTERLACED) { 3294 if (r->flags & ~(DRM_MODE_FB_INTERLACED | DRM_MODE_FB_MODIFIERS)) {
3289 DRM_DEBUG_KMS("bad framebuffer flags 0x%08x\n", r->flags); 3295 DRM_DEBUG_KMS("bad framebuffer flags 0x%08x\n", r->flags);
3290 return ERR_PTR(-EINVAL); 3296 return ERR_PTR(-EINVAL);
3291 } 3297 }
@@ -3301,6 +3307,12 @@ static struct drm_framebuffer *add_framebuffer_internal(struct drm_device *dev,
3301 return ERR_PTR(-EINVAL); 3307 return ERR_PTR(-EINVAL);
3302 } 3308 }
3303 3309
3310 if (r->flags & DRM_MODE_FB_MODIFIERS &&
3311 !dev->mode_config.allow_fb_modifiers) {
3312 DRM_DEBUG_KMS("driver does not support fb modifiers\n");
3313 return ERR_PTR(-EINVAL);
3314 }
3315
3304 ret = framebuffer_check(r); 3316 ret = framebuffer_check(r);
3305 if (ret) 3317 if (ret)
3306 return ERR_PTR(ret); 3318 return ERR_PTR(ret);
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index b1979e7bdc88..3053aab968f9 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -837,6 +837,7 @@ void drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
837 for (i = 0; i < 4; i++) { 837 for (i = 0; i < 4; i++) {
838 fb->pitches[i] = mode_cmd->pitches[i]; 838 fb->pitches[i] = mode_cmd->pitches[i];
839 fb->offsets[i] = mode_cmd->offsets[i]; 839 fb->offsets[i] = mode_cmd->offsets[i];
840 fb->modifier[i] = mode_cmd->modifier[i];
840 } 841 }
841 drm_fb_get_bpp_depth(mode_cmd->pixel_format, &fb->depth, 842 drm_fb_get_bpp_depth(mode_cmd->pixel_format, &fb->depth,
842 &fb->bits_per_pixel); 843 &fb->bits_per_pixel);
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index 3785d66721f2..a6d773a61c2d 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -321,6 +321,9 @@ static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_
321 else 321 else
322 req->value = 64; 322 req->value = 64;
323 break; 323 break;
324 case DRM_CAP_ADDFB2_MODIFIERS:
325 req->value = dev->mode_config.allow_fb_modifiers;
326 break;
324 default: 327 default:
325 return -EINVAL; 328 return -EINVAL;
326 } 329 }
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index f01922591679..f025e7fae253 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -83,6 +83,9 @@ i915-y += dvo_ch7017.o \
83 intel_sdvo.o \ 83 intel_sdvo.o \
84 intel_tv.o 84 intel_tv.o
85 85
86# virtual gpu code
87i915-y += i915_vgpu.o
88
86# legacy horrors 89# legacy horrors
87i915-y += i915_dma.o \ 90i915-y += i915_dma.o \
88 i915_ums.o 91 i915_ums.o
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 96e811fe24ca..164fa8286fb9 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1778,11 +1778,12 @@ static int i915_gem_framebuffer_info(struct seq_file *m, void *data)
1778 ifbdev = dev_priv->fbdev; 1778 ifbdev = dev_priv->fbdev;
1779 fb = to_intel_framebuffer(ifbdev->helper.fb); 1779 fb = to_intel_framebuffer(ifbdev->helper.fb);
1780 1780
1781 seq_printf(m, "fbcon size: %d x %d, depth %d, %d bpp, refcount %d, obj ", 1781 seq_printf(m, "fbcon size: %d x %d, depth %d, %d bpp, modifier 0x%llx, refcount %d, obj ",
1782 fb->base.width, 1782 fb->base.width,
1783 fb->base.height, 1783 fb->base.height,
1784 fb->base.depth, 1784 fb->base.depth,
1785 fb->base.bits_per_pixel, 1785 fb->base.bits_per_pixel,
1786 fb->base.modifier[0],
1786 atomic_read(&fb-&g