summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/gma500/gtt.h
diff options
context:
space:
mode:
authorAlan Cox2011-11-29 23:27:22 +0100
committerDave Airlie2011-12-06 10:55:39 +0100
commita6ba582d264f67074f669f76172e8a2afadff2a4 (patch)
tree424d22e0085589cf76d987aaebd1281cb0ea48ac /drivers/gpu/drm/gma500/gtt.h
parentgma500: frame buffer locking (diff)
downloadkernel-qcow2-linux-a6ba582d264f67074f669f76172e8a2afadff2a4.tar.gz
kernel-qcow2-linux-a6ba582d264f67074f669f76172e8a2afadff2a4.tar.xz
kernel-qcow2-linux-a6ba582d264f67074f669f76172e8a2afadff2a4.zip
gma500: gtt based hardware scrolling console
Add support for GTT based scrolling. Instead of pushing bits around we simply use the GTT to change the mappings. This provides us with a very fast way to scroll the display providing we have enough memory to allocate on 4K line boundaries. In practice this seems to be the case except for very big displays such as HDMI, and the usual configurations are netbooks/tablets. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/gma500/gtt.h')
-rw-r--r--drivers/gpu/drm/gma500/gtt.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/gma500/gtt.h b/drivers/gpu/drm/gma500/gtt.h
index e0e1cb6f9bd6..aa1742387f5a 100644
--- a/drivers/gpu/drm/gma500/gtt.h
+++ b/drivers/gpu/drm/gma500/gtt.h
@@ -49,6 +49,7 @@ struct gtt_range {
bool mmapping; /* Is mmappable */
struct page **pages; /* Backing pages if present */
int npage; /* Number of backing pages */
+ int roll; /* Roll applied to the GTT entries */
};
extern struct gtt_range *psb_gtt_alloc_range(struct drm_device *dev, int len,
@@ -57,5 +58,7 @@ extern void psb_gtt_kref_put(struct gtt_range *gt);
extern void psb_gtt_free_range(struct drm_device *dev, struct gtt_range *gt);
extern int psb_gtt_pin(struct gtt_range *gt);
extern void psb_gtt_unpin(struct gtt_range *gt);
+extern void psb_gtt_roll(struct drm_device *dev,
+ struct gtt_range *gt, int roll);
#endif