From: Tom Wai-Hong Tam <waih...@chromium.org> For bpix == 16, each pixel is 2-byte. fb offset should shift more x bytes.
Signed-off-by: Tom Wai-Hong Tam <waih...@chromium.org> Signed-off-by: Simon Glass <s...@chromium.org> --- common/lcd.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common/lcd.c b/common/lcd.c index 7c6cb09..004a6be 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -775,8 +775,10 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y) height = panel_info.vl_row - y; bmap = (uchar *)bmp + le32_to_cpu(bmp->header.data_offset); - fb = (uchar *) (lcd_base + - (y + height - 1) * lcd_line_length + x * bpix / 8); + fb = (uchar *) (lcd_base + (y + height - 1) * lcd_line_length + x); + /* additional fb shift for bpix == 16 since each pixel is 2-byte */ + if (bpix == 16) + fb += x; switch (bmp_bpix) { case 1: /* pass through */ -- 1.7.7.3 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot