mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 08:21:36 +01:00 
			
		
		
		
	Merge branch 'master' of git://git.denx.de/u-boot-video
This commit is contained in:
		
						commit
						7027d5622d
					
				
							
								
								
									
										24
									
								
								common/lcd.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								common/lcd.c
									
									
									
									
									
								
							| @ -63,7 +63,7 @@ | |||||||
| /************************************************************************/ | /************************************************************************/ | ||||||
| #ifdef CONFIG_LCD_LOGO | #ifdef CONFIG_LCD_LOGO | ||||||
| # include <bmp_logo.h>		/* Get logo data, width and height	*/ | # include <bmp_logo.h>		/* Get logo data, width and height	*/ | ||||||
| # if (CONSOLE_COLOR_WHITE >= BMP_LOGO_OFFSET) | # if (CONSOLE_COLOR_WHITE >= BMP_LOGO_OFFSET) && (LCD_BPP != LCD_COLOR16) | ||||||
| #  error Default Color Map overlaps with Logo Color Map | #  error Default Color Map overlaps with Logo Color Map | ||||||
| # endif | # endif | ||||||
| #endif | #endif | ||||||
| @ -218,8 +218,12 @@ static void lcd_drawchars (ushort x, ushort y, uchar *str, int count) | |||||||
| 
 | 
 | ||||||
| 	for (row=0;  row < VIDEO_FONT_HEIGHT;  ++row, dest += lcd_line_length)  { | 	for (row=0;  row < VIDEO_FONT_HEIGHT;  ++row, dest += lcd_line_length)  { | ||||||
| 		uchar *s = str; | 		uchar *s = str; | ||||||
| 		uchar *d = dest; |  | ||||||
| 		int i; | 		int i; | ||||||
|  | #if LCD_BPP == LCD_COLOR16 | ||||||
|  | 		ushort *d = (ushort *)dest; | ||||||
|  | #else | ||||||
|  | 		uchar *d = dest; | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| #if LCD_BPP == LCD_MONOCHROME | #if LCD_BPP == LCD_MONOCHROME | ||||||
| 		uchar rest = *d & -(1 << (8-off)); | 		uchar rest = *d & -(1 << (8-off)); | ||||||
| @ -244,7 +248,7 @@ static void lcd_drawchars (ushort x, ushort y, uchar *str, int count) | |||||||
| 				bits <<= 1; | 				bits <<= 1; | ||||||
| 			} | 			} | ||||||
| #elif LCD_BPP == LCD_COLOR16 | #elif LCD_BPP == LCD_COLOR16 | ||||||
| 			for (c=0; c<16; ++c) { | 			for (c=0; c<8; ++c) { | ||||||
| 				*d++ = (bits & 0x80) ? | 				*d++ = (bits & 0x80) ? | ||||||
| 						lcd_color_fg : lcd_color_bg; | 						lcd_color_fg : lcd_color_bg; | ||||||
| 				bits <<= 1; | 				bits <<= 1; | ||||||
| @ -521,6 +525,13 @@ void bitmap_plot (int x, int y) | |||||||
| 		cmap = (ushort *)&(cp->lcd_cmap[BMP_LOGO_OFFSET*sizeof(ushort)]); | 		cmap = (ushort *)&(cp->lcd_cmap[BMP_LOGO_OFFSET*sizeof(ushort)]); | ||||||
| #elif defined(CONFIG_ATMEL_LCD) | #elif defined(CONFIG_ATMEL_LCD) | ||||||
| 		cmap = (uint *) (panel_info.mmio + ATMEL_LCDC_LUT(0)); | 		cmap = (uint *) (panel_info.mmio + ATMEL_LCDC_LUT(0)); | ||||||
|  | #else | ||||||
|  | 		/*
 | ||||||
|  | 		 * default case: generic system with no cmap (most likely 16bpp) | ||||||
|  | 		 * We set cmap to the source palette, so no change is done. | ||||||
|  | 		 * This avoids even more ifdef in the next stanza | ||||||
|  | 		 */ | ||||||
|  | 		cmap = bmp_logo_palette; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 		WATCHDOG_RESET(); | 		WATCHDOG_RESET(); | ||||||
| @ -559,10 +570,15 @@ void bitmap_plot (int x, int y) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	else { /* true color mode */ | 	else { /* true color mode */ | ||||||
|  | 		u16 col16; | ||||||
| 		fb16 = (ushort *)(lcd_base + y * lcd_line_length + x); | 		fb16 = (ushort *)(lcd_base + y * lcd_line_length + x); | ||||||
| 		for (i=0; i<BMP_LOGO_HEIGHT; ++i) { | 		for (i=0; i<BMP_LOGO_HEIGHT; ++i) { | ||||||
| 			for (j=0; j<BMP_LOGO_WIDTH; j++) { | 			for (j=0; j<BMP_LOGO_WIDTH; j++) { | ||||||
| 				fb16[j] = bmp_logo_palette[(bmap[j])]; | 				col16 = bmp_logo_palette[(bmap[j]-16)]; | ||||||
|  | 				fb16[j] = | ||||||
|  | 					((col16 & 0x000F) << 1) | | ||||||
|  | 					((col16 & 0x00F0) << 3) | | ||||||
|  | 					((col16 & 0x0F00) << 4); | ||||||
| 				} | 				} | ||||||
| 			bmap += BMP_LOGO_WIDTH; | 			bmap += BMP_LOGO_WIDTH; | ||||||
| 			fb16 += panel_info.vl_col; | 			fb16 += panel_info.vl_col; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user