summaryrefslogtreecommitdiffstats
path: root/drivers/staging/gma500/gtt.h
diff options
context:
space:
mode:
authorAlan Cox <alan@linux.intel.com>2011-09-22 19:43:47 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2011-09-26 17:32:54 -0700
commitef86de5832a2eee01c5dc4199cee0c48e9c14c3e (patch)
tree20ce3e3d82a3effacea0805190d05efce26b5272 /drivers/staging/gma500/gtt.h
parentc7e285bedb20cc0cfe999e1b285ab31a19e1902c (diff)
downloadop-kernel-dev-ef86de5832a2eee01c5dc4199cee0c48e9c14c3e.zip
op-kernel-dev-ef86de5832a2eee01c5dc4199cee0c48e9c14c3e.tar.gz
staging: 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. It works out nicely on the usual configurations are netbooks and tablets. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/gma500/gtt.h')
-rw-r--r--drivers/staging/gma500/gtt.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/staging/gma500/gtt.h b/drivers/staging/gma500/gtt.h
index e0e1cb6..aa17423 100644
--- a/drivers/staging/gma500/gtt.h
+++ b/drivers/staging/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
OpenPOWER on IntegriCloud