Commit fecac46cf8757dc4f00a7812310e060f3b0c6eb4
Committed by
Anatolij Gustschin
1 parent
395166cffb
Exists in
master
and in
54 other branches
lcd: Fix BMP decode bug that skips the wrong padded row
This change fixed 2 things: - Rename padded_line to padded_width since it is (width + padded_row) not line. - When finished a line, should skip the padded_row that is (padded_width - width) instead of (width - padded_width). Reference: http://en.wikipedia.org/wiki/BMP_file_format Signed-off-by: Tom Wai-Hong Tam <waihong@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
Showing 1 changed file with 4 additions and 4 deletions Side-by-side Diff
common/lcd.c
... | ... | @@ -675,7 +675,7 @@ |
675 | 675 | uchar *fb; |
676 | 676 | bmp_image_t *bmp=(bmp_image_t *)bmp_image; |
677 | 677 | uchar *bmap; |
678 | - ushort padded_line; | |
678 | + ushort padded_width; | |
679 | 679 | unsigned long width, height, byte_width; |
680 | 680 | unsigned long pwidth = panel_info.vl_col; |
681 | 681 | unsigned colors, bpix, bmp_bpix; |
... | ... | @@ -762,7 +762,7 @@ |
762 | 762 | } |
763 | 763 | #endif |
764 | 764 | |
765 | - padded_line = (width&0x3) ? ((width&~0x3)+4) : (width); | |
765 | + padded_width = (width&0x3) ? ((width&~0x3)+4) : (width); | |
766 | 766 | |
767 | 767 | #ifdef CONFIG_SPLASH_SCREEN_ALIGN |
768 | 768 | splash_align_axis(&x, pwidth, width); |
... | ... | @@ -796,7 +796,7 @@ |
796 | 796 | fb += sizeof(uint16_t) / sizeof(*fb); |
797 | 797 | } |
798 | 798 | } |
799 | - bmap += (width - padded_line); | |
799 | + bmap += (padded_width - width); | |
800 | 800 | fb -= (byte_width + lcd_line_length); |
801 | 801 | } |
802 | 802 | break; |
... | ... | @@ -808,7 +808,7 @@ |
808 | 808 | for (j = 0; j < width; j++) |
809 | 809 | fb_put_word(&fb, &bmap); |
810 | 810 | |
811 | - bmap += (padded_line - width) * 2; | |
811 | + bmap += (padded_width - width) * 2; | |
812 | 812 | fb -= (width * 2 + lcd_line_length); |
813 | 813 | } |
814 | 814 | break; |