diff options
author | Alan Cox <alan@linux.intel.com> | 2011-11-29 23:27:22 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-12-06 10:55:39 +0100 |
commit | a6ba582d264f67074f669f76172e8a2afadff2a4 (patch) | |
tree | 424d22e0085589cf76d987aaebd1281cb0ea48ac /drivers/gpu/drm/gma500/gtt.h | |
parent | gma500: frame buffer locking (diff) | |
download | linux-a6ba582d264f67074f669f76172e8a2afadff2a4.tar.xz 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.h | 3 |
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 |