aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-04 02:29:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-04 02:29:23 -0400
commit612a9aab56a93533e76e3ad91642db7033e03b69 (patch)
tree8402096973f67af941f9392f7da06cca03e0b58a /include/drm
parent3a494318b14b1bc0f59d2d6ce84c505c74d82d2a (diff)
parent268d28371cd326be4dfcd7eba5917bf4b9d30c8f (diff)
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm merge (part 1) from Dave Airlie: "So first of all my tree and uapi stuff has a conflict mess, its my fault as the nouveau stuff didn't hit -next as were trying to rebase regressions out of it before we merged. Highlights: - SH mobile modesetting driver and associated helpers - some DRM core documentation - i915 modesetting rework, haswell hdmi, haswell and vlv fixes, write combined pte writing, ilk rc6 support, - nouveau: major driver rework into a hw core driver, makes features like SLI a lot saner to implement, - psb: add eDP/DP support for Cedarview - radeon: 2 layer page tables, async VM pte updates, better PLL selection for > 2 screens, better ACPI interactions The rest is general grab bag of fixes. So why part 1? well I have the exynos pull req which came in a bit late but was waiting for me to do something they shouldn't have and it looks fairly safe, and David Howells has some more header cleanups he'd like me to pull, that seem like a good idea, but I'd like to get this merge out of the way so -next dosen't get blocked." Tons of conflicts mostly due to silly include line changes, but mostly mindless. A few other small semantic conflicts too, noted from Dave's pre-merged branch. * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (447 commits) drm/nv98/crypt: fix fuc build with latest envyas drm/nouveau/devinit: fixup various issues with subdev ctor/init ordering drm/nv41/vm: fix and enable use of "real" pciegart drm/nv44/vm: fix and enable use of "real" pciegart drm/nv04/dmaobj: fixup vm target handling in preparation for nv4x pcie drm/nouveau: store supported dma mask in vmmgr drm/nvc0/ibus: initial implementation of subdev drm/nouveau/therm: add support for fan-control modes drm/nouveau/hwmon: rename pwm0* to pmw1* to follow hwmon's rules drm/nouveau/therm: calculate the pwm divisor on nv50+ drm/nouveau/fan: rewrite the fan tachometer driver to get more precision, faster drm/nouveau/therm: move thermal-related functions to the therm subdev drm/nouveau/bios: parse the pwm divisor from the perf table drm/nouveau/therm: use the EXTDEV table to detect i2c monitoring devices drm/nouveau/therm: rework thermal table parsing drm/nouveau/gpio: expose the PWM/TOGGLE parameter found in the gpio vbios table drm/nouveau: fix pm initialization order drm/nouveau/bios: check that fixed tvdac gpio data is valid before using it drm/nouveau: log channel debug/error messages from client object rather than drm client drm/nouveau: have drm debugging macros build on top of core macros ...
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drmP.h1
-rw-r--r--include/drm/drm_crtc.h24
-rw-r--r--include/drm/drm_fb_cma_helper.h27
-rw-r--r--include/drm/drm_fourcc.h2
-rw-r--r--include/drm/drm_gem_cma_helper.h44
-rw-r--r--include/drm/drm_sarea.h2
-rw-r--r--include/drm/i915_drm.h36
-rw-r--r--include/drm/intel-gtt.h10
8 files changed, 134 insertions, 12 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 54054e41ec38..3fd82809b2d4 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1368,6 +1368,7 @@ extern int drm_remove_magic(struct drm_master *master, drm_magic_t magic);
1368 1368
1369/* Cache management (drm_cache.c) */ 1369/* Cache management (drm_cache.c) */
1370void drm_clflush_pages(struct page *pages[], unsigned long num_pages); 1370void drm_clflush_pages(struct page *pages[], unsigned long num_pages);
1371void drm_clflush_sg(struct sg_table *st);
1371void drm_clflush_virt_range(char *addr, unsigned long length); 1372void drm_clflush_virt_range(char *addr, unsigned long length);
1372 1373
1373 /* Locking IOCTL support (drm_lock.h) */ 1374 /* Locking IOCTL support (drm_lock.h) */
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 86a0da4635a6..1816bb31273a 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -216,11 +216,10 @@ struct drm_display_info {
216 u32 color_formats; 216 u32 color_formats;
217 217
218 u8 cea_rev; 218 u8 cea_rev;
219
220 char *raw_edid; /* if any */
221}; 219};
222 220
223struct drm_framebuffer_funcs { 221struct drm_framebuffer_funcs {
222 /* note: use drm_framebuffer_remove() */
224 void (*destroy)(struct drm_framebuffer *framebuffer); 223 void (*destroy)(struct drm_framebuffer *framebuffer);
225 int (*create_handle)(struct drm_framebuffer *fb, 224 int (*create_handle)(struct drm_framebuffer *fb,
226 struct drm_file *file_priv, 225 struct drm_file *file_priv,
@@ -245,6 +244,16 @@ struct drm_framebuffer_funcs {
245 244
246struct drm_framebuffer { 245struct drm_framebuffer {
247 struct drm_device *dev; 246 struct drm_device *dev;
247 /*
248 * Note that the fb is refcounted for the benefit of driver internals,
249 * for example some hw, disabling a CRTC/plane is asynchronous, and
250 * scanout does not actually complete until the next vblank. So some
251 * cleanup (like releasing the reference(s) on the backing GEM bo(s))
252 * should be deferred. In cases like this, the driver would like to
253 * hold a ref to the fb even though it has already been removed from
254 * userspace perspective.
255 */
256 struct kref refcount;
248 struct list_head head; 257 struct list_head head;
249 struct drm_mode_object base; 258 struct drm_mode_object base;
250 const struct drm_framebuffer_funcs *funcs; 259 const struct drm_framebuffer_funcs *funcs;
@@ -360,6 +369,9 @@ struct drm_crtc_funcs {
360 * @enabled: is this CRTC enabled? 369 * @enabled: is this CRTC enabled?
361 * @mode: current mode timings 370 * @mode: current mode timings
362 * @hwmode: mode timings as programmed to hw regs 371 * @hwmode: mode timings as programmed to hw regs
372 * @invert_dimensions: for purposes of error checking crtc vs fb sizes,
373 * invert the width/height of the crtc. This is used if the driver
374 * is performing 90 or 270 degree rotated scanout
363 * @x: x position on screen 375 * @x: x position on screen
364 * @y: y position on screen 376 * @y: y position on screen
365 * @funcs: CRTC control functions 377 * @funcs: CRTC control functions
@@ -393,6 +405,8 @@ struct drm_crtc {
393 */ 405 */
394 struct drm_display_mode hwmode; 406 struct drm_display_mode hwmode;
395 407
408 bool invert_dimensions;
409
396 int x, y; 410 int x, y;
397 const struct drm_crtc_funcs *funcs; 411 const struct drm_crtc_funcs *funcs;
398 412
@@ -594,6 +608,7 @@ struct drm_connector {
594 int video_latency[2]; /* [0]: progressive, [1]: interlaced */ 608 int video_latency[2]; /* [0]: progressive, [1]: interlaced */
595 int audio_latency[2]; 609 int audio_latency[2];
596 int null_edid_counter; /* needed to workaround some HW bugs where we get all 0s */ 610 int null_edid_counter; /* needed to workaround some HW bugs where we get all 0s */
611 unsigned bad_edid_counter;
597}; 612};
598 613
599/** 614/**
@@ -921,6 +936,9 @@ extern void drm_framebuffer_set_object(struct drm_device *dev,
921extern int drm_framebuffer_init(struct drm_device *dev, 936extern int drm_framebuffer_init(struct drm_device *dev,
922 struct drm_framebuffer *fb, 937 struct drm_framebuffer *fb,
923 const struct drm_framebuffer_funcs *funcs); 938 const struct drm_framebuffer_funcs *funcs);
939extern void drm_framebuffer_unreference(struct drm_framebuffer *fb);
940extern void drm_framebuffer_reference(struct drm_framebuffer *fb);
941extern void drm_framebuffer_remove(struct drm_framebuffer *fb);
924extern void drm_framebuffer_cleanup(struct drm_framebuffer *fb); 942extern void drm_framebuffer_cleanup(struct drm_framebuffer *fb);
925extern int drmfb_probe(struct drm_device *dev, struct drm_crtc *crtc); 943extern int drmfb_probe(struct drm_device *dev, struct drm_crtc *crtc);
926extern int drmfb_remove(struct drm_device *dev, struct drm_framebuffer *fb); 944extern int drmfb_remove(struct drm_device *dev, struct drm_framebuffer *fb);
@@ -1036,7 +1054,7 @@ extern int drm_add_modes_noedid(struct drm_connector *connector,
1036 int hdisplay, int vdisplay); 1054 int hdisplay, int vdisplay);
1037 1055
1038extern int drm_edid_header_is_valid(const u8 *raw_edid); 1056extern int drm_edid_header_is_valid(const u8 *raw_edid);
1039extern bool drm_edid_block_valid(u8 *raw_edid, int block); 1057extern bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid);
1040extern bool drm_edid_is_valid(struct edid *edid); 1058extern bool drm_edid_is_valid(struct edid *edid);
1041struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev, 1059struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
1042 int hsize, int vsize, int fresh, 1060 int hsize, int vsize, int fresh,
diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
new file mode 100644
index 000000000000..76c709837543
--- /dev/null
+++ b/include/drm/drm_fb_cma_helper.h
@@ -0,0 +1,27 @@
1#ifndef __DRM_FB_CMA_HELPER_H__
2#define __DRM_FB_CMA_HELPER_H__
3
4struct drm_fbdev_cma;
5struct drm_gem_cma_object;
6
7struct drm_framebuffer;
8struct drm_device;
9struct drm_file;
10struct drm_mode_fb_cmd2;
11
12struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
13 unsigned int preferred_bpp, unsigned int num_crtc,
14 unsigned int max_conn_count);
15void drm_fbdev_cma_fini(struct drm_fbdev_cma *fbdev_cma);
16
17void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
18void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
19
20struct drm_framebuffer *drm_fb_cma_create(struct drm_device *dev,
21 struct drm_file *file_priv, struct drm_mode_fb_cmd2 *mode_cmd);
22
23struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
24 unsigned int plane);
25
26#endif
27
diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h
index f4621184a9b4..646ae5f39f42 100644
--- a/include/drm/drm_fourcc.h
+++ b/include/drm/drm_fourcc.h
@@ -106,6 +106,8 @@
106#define DRM_FORMAT_NV21 fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */ 106#define DRM_FORMAT_NV21 fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */
107#define DRM_FORMAT_NV16 fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */ 107#define DRM_FORMAT_NV16 fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */
108#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */ 108#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
109#define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
110#define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
109 111
110/* special NV12 tiled format */ 112/* special NV12 tiled format */
111#define DRM_FORMAT_NV12MT fourcc_code('T', 'M', '1', '2') /* 2x2 subsampled Cr:Cb plane 64x32 macroblocks */ 113#define DRM_FORMAT_NV12MT fourcc_code('T', 'M', '1', '2') /* 2x2 subsampled Cr:Cb plane 64x32 macroblocks */
diff --git a/include/drm/drm_gem_cma_helper.h b/include/drm/drm_gem_cma_helper.h
new file mode 100644
index 000000000000..f0f6b1af25ad
--- /dev/null
+++ b/include/drm/drm_gem_cma_helper.h
@@ -0,0 +1,44 @@
1#ifndef __DRM_GEM_CMA_HELPER_H__
2#define __DRM_GEM_CMA_HELPER_H__
3
4struct drm_gem_cma_object {
5 struct drm_gem_object base;
6 dma_addr_t paddr;
7 void *vaddr;
8};
9
10static inline struct drm_gem_cma_object *
11to_drm_gem_cma_obj(struct drm_gem_object *gem_obj)
12{
13 return container_of(gem_obj, struct drm_gem_cma_object, base);
14}
15
16/* free gem object. */
17void drm_gem_cma_free_object(struct drm_gem_object *gem_obj);
18
19/* create memory region for drm framebuffer. */
20int drm_gem_cma_dumb_create(struct drm_file *file_priv,
21 struct drm_device *drm, struct drm_mode_create_dumb *args);
22
23/* map memory region for drm framebuffer to user space. */
24int drm_gem_cma_dumb_map_offset(struct drm_file *file_priv,
25 struct drm_device *drm, uint32_t handle, uint64_t *offset);
26
27/* set vm_flags and we can change the vm attribute to other one at here. */
28int drm_gem_cma_mmap(struct file *filp, struct vm_area_struct *vma);
29
30/*
31 * destroy memory region allocated.
32 * - a gem handle and physical memory region pointed by a gem object
33 * would be released by drm_gem_handle_delete().
34 */
35int drm_gem_cma_dumb_destroy(struct drm_file *file_priv,
36 struct drm_device *drm, unsigned int handle);
37
38/* allocate physical memory. */
39struct drm_gem_cma_object *drm_gem_cma_create(struct drm_device *drm,
40 unsigned int size);
41
42extern const struct vm_operations_struct drm_gem_cma_vm_ops;
43
44#endif /* __DRM_GEM_CMA_HELPER_H__ */
diff --git a/include/drm/drm_sarea.h b/include/drm/drm_sarea.h
index d3aedc90b9fd..413a5642d49f 100644
--- a/include/drm/drm_sarea.h
+++ b/include/drm/drm_sarea.h
@@ -37,6 +37,8 @@
37/* SAREA area needs to be at least a page */ 37/* SAREA area needs to be at least a page */
38#if defined(__alpha__) 38#if defined(__alpha__)
39#define SAREA_MAX 0x2000U 39#define SAREA_MAX 0x2000U
40#elif defined(__mips__)
41#define SAREA_MAX 0x4000U
40#elif defined(__ia64__) 42#elif defined(__ia64__)
41#define SAREA_MAX 0x10000U /* 64kB */ 43#define SAREA_MAX 0x10000U /* 64kB */
42#else 44#else
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index 814a42c89422..a940d4e18917 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -203,6 +203,9 @@ typedef struct _drm_i915_sarea {
203#define DRM_I915_GEM_WAIT 0x2c 203#define DRM_I915_GEM_WAIT 0x2c
204#define DRM_I915_GEM_CONTEXT_CREATE 0x2d 204#define DRM_I915_GEM_CONTEXT_CREATE 0x2d
205#define DRM_I915_GEM_CONTEXT_DESTROY 0x2e 205#define DRM_I915_GEM_CONTEXT_DESTROY 0x2e
206#define DRM_I915_GEM_SET_CACHING 0x2f
207#define DRM_I915_GEM_GET_CACHING 0x30
208#define DRM_I915_REG_READ 0x31
206 209
207#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) 210#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
208#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) 211#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -227,6 +230,8 @@ typedef struct _drm_i915_sarea {
227#define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin) 230#define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
228#define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin) 231#define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
229#define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy) 232#define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
233#define DRM_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_SET_CACHING, struct drm_i915_gem_caching)
234#define DRM_IOCTL_I915_GEM_GET_CACHING DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_GET_CACHING, struct drm_i915_gem_caching)
230#define DRM_IOCTL_I915_GEM_THROTTLE DRM_IO ( DRM_COMMAND_BASE + DRM_I915_GEM_THROTTLE) 235#define DRM_IOCTL_I915_GEM_THROTTLE DRM_IO ( DRM_COMMAND_BASE + DRM_I915_GEM_THROTTLE)
231#define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT) 236#define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
232#define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT) 237#define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
@@ -249,6 +254,7 @@ typedef struct _drm_i915_sarea {
249#define DRM_IOCTL_I915_GEM_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_WAIT, struct drm_i915_gem_wait) 254#define DRM_IOCTL_I915_GEM_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_WAIT, struct drm_i915_gem_wait)
250#define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create) 255#define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create)
251#define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy) 256#define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy)
257#define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read)
252 258
253/* Allow drivers to submit batchbuffers directly to hardware, relying 259/* Allow drivers to submit batchbuffers directly to hardware, relying
254 * on the security mechanisms provided by hardware. 260 * on the security mechanisms provided by hardware.
@@ -305,6 +311,9 @@ typedef struct drm_i915_irq_wait {
305#define I915_PARAM_HAS_LLC 17 311#define I915_PARAM_HAS_LLC 17
306#define I915_PARAM_HAS_ALIASING_PPGTT 18 312#define I915_PARAM_HAS_ALIASING_PPGTT 18
307#define I915_PARAM_HAS_WAIT_TIMEOUT 19 313#define I915_PARAM_HAS_WAIT_TIMEOUT 19
314#define I915_PARAM_HAS_SEMAPHORES 20
315#define I915_PARAM_HAS_PRIME_VMAP_FLUSH 21
316#define I915_PARAM_RSVD_FOR_FUTURE_USE 22
308 317
309typedef struct drm_i915_getparam { 318typedef struct drm_i915_getparam {
310 int param; 319 int param;
@@ -698,10 +707,31 @@ struct drm_i915_gem_busy {
698 /** Handle of the buffer to check for busy */ 707 /** Handle of the buffer to check for busy */
699 __u32 handle; 708 __u32 handle;
700 709
701 /** Return busy status (1 if busy, 0 if idle) */ 710 /** Return busy status (1 if busy, 0 if idle).
711 * The high word is used to indicate on which rings the object
712 * currently resides:
713 * 16:31 - busy (r or r/w) rings (16 render, 17 bsd, 18 blt, etc)
714 */
702 __u32 busy; 715 __u32 busy;
703}; 716};
704 717
718#define I915_CACHING_NONE 0
719#define I915_CACHING_CACHED 1
720
721struct drm_i915_gem_caching {
722 /**
723 * Handle of the buffer to set/get the caching level of. */
724 __u32 handle;
725
726 /**
727 * Cacheing level to apply or return value
728 *
729 * bits0-15 are for generic caching control (i.e. the above defined
730 * values). bits16-31 are reserved for platform-specific variations
731 * (e.g. l3$ caching on gen7). */
732 __u32 caching;
733};
734
705#define I915_TILING_NONE 0 735#define I915_TILING_NONE 0
706#define I915_TILING_X 1 736#define I915_TILING_X 1
707#define I915_TILING_Y 2 737#define I915_TILING_Y 2
@@ -918,4 +948,8 @@ struct drm_i915_gem_context_destroy {
918 __u32 pad; 948 __u32 pad;
919}; 949};
920 950
951struct drm_i915_reg_read {
952 __u64 offset;
953 __u64 val; /* Return value */
954};
921#endif /* _I915_DRM_H_ */ 955#endif /* _I915_DRM_H_ */
diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
index 8e29d551bb3c..2e37e9f02e71 100644
--- a/include/drm/intel-gtt.h
+++ b/include/drm/intel-gtt.h
@@ -30,16 +30,10 @@ void intel_gmch_remove(void);
30bool intel_enable_gtt(void); 30bool intel_enable_gtt(void);
31 31
32void intel_gtt_chipset_flush(void); 32void intel_gtt_chipset_flush(void);
33void intel_gtt_unmap_memory(struct scatterlist *sg_list, int num_sg); 33void intel_gtt_insert_sg_entries(struct sg_table *st,
34void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries);
35int intel_gtt_map_memory(struct page **pages, unsigned int num_entries,
36 struct scatterlist **sg_list, int *num_sg);
37void intel_gtt_insert_sg_entries(struct scatterlist *sg_list,
38 unsigned int sg_len,
39 unsigned int pg_start, 34 unsigned int pg_start,
40 unsigned int flags); 35 unsigned int flags);
41void intel_gtt_insert_pages(unsigned int first_entry, unsigned int num_entries, 36void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries);
42 struct page **pages, unsigned int flags);
43 37
44/* Special gtt memory types */ 38/* Special gtt memory types */
45#define AGP_DCACHE_MEMORY 1 39#define AGP_DCACHE_MEMORY 1