aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-02-07 20:08:10 -0500
committerDave Airlie <airlied@redhat.com>2013-02-07 20:08:10 -0500
commitcd17ef4114ad5c514b17e6a0bb02a309ab90b692 (patch)
tree9c162eaa96931597b83e165702e3483ba5c6bb1e /include
parent67c964000236497e00c646472cd6b70b5c5109c8 (diff)
parent7d37beaaf3dbc6ff16f4d32a4dd6f8c557c6ab50 (diff)
Merge tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Daniel writes: "Probably the last feature pull for 3.9, there's some fixes outstanding thought that I'd like to sneak in. And maybe 3.8 takes a bit longer ... Anyway, highlights of this pull: - Kill the horrible IS_DISPLAYREG hack to handle the mmio offset movements on vlv, big thanks to Ville. - Dynamic power well support for Haswell, shaves away a bit when only using the eDP port on pipe A (Paulo). Plus unclaimed register fixes uncovered by this. - Clarifications of the gpu hang/reset state transitions, hopefully fixing a few spurious -EIO deaths in userspace. - Haswell ELD fixes. - Some more (pp)gtt cleanups from Ben. - A few smaller things all over. Plus all the stuff from the previous rather small pull request: - Broadcast RBG improvements and reduced color range fixes from Ville. - Ben is on a "kill legacy gtt code for good" spree, first pile of patches included. - No-relocs and bo lut improvements for faster execbuf from Chris. - Some refactorings from Imre." * tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel: (101 commits) GPU/i915: Fix acpi_bus_get_device() check in drivers/gpu/drm/i915/intel_opregion.c drm/i915: Set the SR01 "screen off" bit in i915_redisable_vga() too drm/i915: Kill IS_DISPLAYREG() drm/i915: Introduce i915_vgacntrl_reg() drm/i915: gen6_gmch_remove can be static drm/i915: dynamic Haswell display power well support drm/i915: check the power down well on assert_pipe() drm/i915: don't send DP "idle" pattern before "normal" on HSW PORT_A drm/i915: don't run hsw power well code on !hsw drm/i915: kill cargo-culted locking from power well code drm/i915: Only run idle processing from i915_gem_retire_requests_worker drm/i915: Fix CAGF for HSW drm/i915: Reclaim GTT space for failed PPGTT drm/i915: remove intel_gtt structure drm/i915: Add probe and remove to the gtt ops drm/i915: extract hw ppgtt setup/cleanup code drm/i915: pte_encode is gen6+ drm/i915: vfuncs for ppgtt drm/i915: vfuncs for gtt_clear_range/insert_entries drm/i915: Error state should print /sys/kernel/debug ...
Diffstat (limited to 'include')
-rw-r--r--include/drm/drm_crtc.h1
-rw-r--r--include/drm/intel-gtt.h19
-rw-r--r--include/uapi/drm/i915_drm.h20
3 files changed, 22 insertions, 18 deletions
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 66b2732f175a..e90c8dcc028d 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -1063,6 +1063,7 @@ extern u8 *drm_find_cea_extension(struct edid *edid);
1063extern u8 drm_match_cea_mode(struct drm_display_mode *to_match); 1063extern u8 drm_match_cea_mode(struct drm_display_mode *to_match);
1064extern bool drm_detect_hdmi_monitor(struct edid *edid); 1064extern bool drm_detect_hdmi_monitor(struct edid *edid);
1065extern bool drm_detect_monitor_audio(struct edid *edid); 1065extern bool drm_detect_monitor_audio(struct edid *edid);
1066extern bool drm_rgb_quant_range_selectable(struct edid *edid);
1066extern int drm_mode_page_flip_ioctl(struct drm_device *dev, 1067extern int drm_mode_page_flip_ioctl(struct drm_device *dev,
1067 void *data, struct drm_file *file_priv); 1068 void *data, struct drm_file *file_priv);
1068extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, 1069extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev,
diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
index 3e3a166a2690..cf105557fea9 100644
--- a/include/drm/intel-gtt.h
+++ b/include/drm/intel-gtt.h
@@ -3,24 +3,7 @@
3#ifndef _DRM_INTEL_GTT_H 3#ifndef _DRM_INTEL_GTT_H
4#define _DRM_INTEL_GTT_H 4#define _DRM_INTEL_GTT_H
5 5
6struct intel_gtt { 6void intel_gtt_get(size_t *gtt_total, size_t *stolen_size);
7 /* Size of memory reserved for graphics by the BIOS */
8 unsigned int stolen_size;
9 /* Total number of gtt entries. */
10 unsigned int gtt_total_entries;
11 /* Part of the gtt that is mappable by the cpu, for those chips where
12 * this is not the full gtt. */
13 unsigned int gtt_mappable_entries;
14 /* Whether i915 needs to use the dmar apis or not. */
15 unsigned int needs_dmar : 1;
16 /* Whether we idle the gpu before mapping/unmapping */
17 unsigned int do_idle_maps : 1;
18 /* Share the scratch page dma with ppgtts. */
19 dma_addr_t scratch_page_dma;
20 struct page *scratch_page;
21 /* needed for ioremap in drm/i915 */
22 phys_addr_t gma_bus_addr;
23} *intel_gtt_get(void);
24 7
25int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev, 8int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
26 struct agp_bridge_data *bridge); 9 struct agp_bridge_data *bridge);
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index c4d2e9c74002..07d59419fe6b 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -308,6 +308,8 @@ typedef struct drm_i915_irq_wait {
308#define I915_PARAM_RSVD_FOR_FUTURE_USE 22 308#define I915_PARAM_RSVD_FOR_FUTURE_USE 22
309#define I915_PARAM_HAS_SECURE_BATCHES 23 309#define I915_PARAM_HAS_SECURE_BATCHES 23
310#define I915_PARAM_HAS_PINNED_BATCHES 24 310#define I915_PARAM_HAS_PINNED_BATCHES 24
311#define I915_PARAM_HAS_EXEC_NO_RELOC 25
312#define I915_PARAM_HAS_EXEC_HANDLE_LUT 26
311 313
312typedef struct drm_i915_getparam { 314typedef struct drm_i915_getparam {
313 int param; 315 int param;
@@ -628,7 +630,11 @@ struct drm_i915_gem_exec_object2 {
628 __u64 offset; 630 __u64 offset;
629 631
630#define EXEC_OBJECT_NEEDS_FENCE (1<<0) 632#define EXEC_OBJECT_NEEDS_FENCE (1<<0)
633#define EXEC_OBJECT_NEEDS_GTT (1<<1)
634#define EXEC_OBJECT_WRITE (1<<2)
635#define __EXEC_OBJECT_UNKNOWN_FLAGS -(EXEC_OBJECT_WRITE<<1)
631 __u64 flags; 636 __u64 flags;
637
632 __u64 rsvd1; 638 __u64 rsvd1;
633 __u64 rsvd2; 639 __u64 rsvd2;
634}; 640};
@@ -687,6 +693,20 @@ struct drm_i915_gem_execbuffer2 {
687 */ 693 */
688#define I915_EXEC_IS_PINNED (1<<10) 694#define I915_EXEC_IS_PINNED (1<<10)
689 695
696/** Provide a hint to the kernel that the command stream and auxilliary
697 * state buffers already holds the correct presumed addresses and so the
698 * relocation process may be skipped if no buffers need to be moved in
699 * preparation for the execbuffer.
700 */
701#define I915_EXEC_NO_RELOC (1<<11)
702
703/** Use the reloc.handle as an index into the exec object array rather
704 * than as the per-file handle.
705 */
706#define I915_EXEC_HANDLE_LUT (1<<12)
707
708#define __I915_EXEC_UNKNOWN_FLAGS -(I915_EXEC_HANDLE_LUT<<1)
709
690#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) 710#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
691#define i915_execbuffer2_set_context_id(eb2, context) \ 711#define i915_execbuffer2_set_context_id(eb2, context) \
692 (eb2).rsvd1 = context & I915_EXEC_CONTEXT_ID_MASK 712 (eb2).rsvd1 = context & I915_EXEC_CONTEXT_ID_MASK