Просмотр исходного кода

fbdev: sh_mobile_lcdc: Fix overlay registers update during pan operation

Updating overlay registers require switching to overlay update mode.
This was correctly done when configuring the overlay format and size,
but not when updating the base address registers during pan operation.
Fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Laurent Pinchart 13 лет назад
Родитель
Сommit
8be7c66995
1 измененных файлов с 5 добавлено и 0 удалено
  1. 5 0
      drivers/video/sh_mobile_lcdcfb.c

+ 5 - 0
drivers/video/sh_mobile_lcdcfb.c

@@ -1539,9 +1539,14 @@ static int sh_mobile_lcdc_overlay_pan(struct fb_var_screeninfo *var,
 		ovl->base_addr_c = base_addr_c;
 	}
 
+	lcdc_write(ovl->channel->lcdc, LDBCR, LDBCR_UPC(ovl->index));
+
 	lcdc_write_overlay(ovl, LDBnBSAYR(ovl->index), ovl->base_addr_y);
 	lcdc_write_overlay(ovl, LDBnBSACR(ovl->index), ovl->base_addr_c);
 
+	lcdc_write(ovl->channel->lcdc, LDBCR,
+		   LDBCR_UPF(ovl->index) | LDBCR_UPD(ovl->index));
+
 	ovl->pan_offset = pan_offset;
 
 	return 0;