summaryrefslogtreecommitdiff
path: root/drivers/video/mmp/fb/mmpfb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/mmp/fb/mmpfb.c')
-rw-r--r--drivers/video/mmp/fb/mmpfb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/video/mmp/fb/mmpfb.c b/drivers/video/mmp/fb/mmpfb.c
index 19fd913f462d..7ab31eb76a8c 100644
--- a/drivers/video/mmp/fb/mmpfb.c
+++ b/drivers/video/mmp/fb/mmpfb.c
@@ -395,12 +395,18 @@ static int var_update(struct fb_info *info)
static void mmpfb_set_win(struct fb_info *info)
{
struct mmpfb_info *fbi = info->par;
+ struct fb_var_screeninfo *var = &info->var;
struct mmp_win win;
+ u32 stride;
memset(&win, 0, sizeof(win));
win.xsrc = win.xdst = fbi->mode.xres;
win.ysrc = win.ydst = fbi->mode.yres;
win.pix_fmt = fbi->pix_fmt;
+ stride = pixfmt_to_stride(win.pix_fmt);
+ win.pitch[0] = var->xres_virtual * stride;
+ win.pitch[1] = win.pitch[2] =
+ (stride == 1) ? (var->xres_virtual >> 1) : 0;
mmp_overlay_set_win(fbi->overlay, &win);
}