Hello Gary, some comments/questions below:
Gary Jennejohn wrote: > Note that the LOGO_X/LOG_Y macros are defined in RRvision.h to center > the logo on the screen and might be useful for other boards. > Signed-off-by: Gary Jennejohn <[EMAIL PROTECTED]> add empty line between commit message and Signed-off-by line. > --- > common/lcd.c | 9 +++- > cpu/mpc8xx/lcd.c | 138 > +++++++++++++++++++++++++++++++++++++++++++++++++--- > cpu/mpc8xx/video.c | 22 ++++++++- > 3 files changed, 159 insertions(+), 10 deletions(-) > > diff --git a/common/lcd.c b/common/lcd.c > index ebf377a..e54d4f5 100644 > --- a/common/lcd.c > +++ b/common/lcd.c > @@ -70,6 +70,13 @@ > # if (CONSOLE_COLOR_WHITE >= BMP_LOGO_OFFSET) > # error Default Color Map overlaps with Logo Color Map > # endif > + > +# ifndef CONFIG_LCD_LOGO_X > +# define CONFIG_LCD_LOGO_X 0 -----------------------------^^^^^^ please, use TAB here. > +# endif > +# ifndef CONFIG_LCD_LOGO_Y > +# define CONFIG_LCD_LOGO_Y 0 -----------------------------^^^^^^ Ditto. > +# endif > #endif > > DECLARE_GLOBAL_DATA_PTR; > @@ -768,7 +775,7 @@ static void *lcd_logo (void) > #endif /* CONFIG_SPLASH_SCREEN */ > > #ifdef CONFIG_LCD_LOGO > - bitmap_plot (0, 0); > + bitmap_plot (CONFIG_LCD_LOGO_X, CONFIG_LCD_LOGO_Y); > #endif /* CONFIG_LCD_LOGO */ > > #ifdef CONFIG_MPC823 > diff --git a/cpu/mpc8xx/lcd.c b/cpu/mpc8xx/lcd.c > index 3c64a9b..aff5465 100644 > --- a/cpu/mpc8xx/lcd.c > +++ b/cpu/mpc8xx/lcd.c > @@ -55,6 +55,10 @@ > #undef CONFIG_LCD_INFO > #endif > > +#if defined(CONFIG_RRVISION) && defined(TTTECH_NO_SCREEN_INFO) > +#undef CONFIG_LCD_INFO > +#endif > + > /*----------------------------------------------------------------------*/ > #ifdef CONFIG_KYOCERA_KCS057QV1AJ > /* > @@ -114,7 +118,7 @@ vidinfo_t panel_info = { > */ > vidinfo_t panel_info = { > 640, 480, 212, 158, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH, > - 3, 0, 0, 1, 1, 144, 2, 0, 33 > + 3, 0, 0, 1, 1, 88, 2, 0, 33 > /* wbl, vpw, lcdac, wbf */ > }; > #endif /* CONFIG_NEC_NL6448BC33_54 */ > @@ -122,16 +126,83 @@ vidinfo_t panel_info = { > > #ifdef CONFIG_SHARP_LQ104V7DS01 > /* > - * SHARP LQ104V7DS01. 6.5", 640x480. Active, color, single scan. > + * SHARP LQ104V7DS01. 10", 640x480. Active, color, single scan. > */ > vidinfo_t panel_info = { > - 640, 480, 132, 99, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_LOW, > - 3, 0, 0, 1, 1, 25, 1, 0, 33 > + 660, 480, 0, 0, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH, -------^^^ is this intentional or a typo? > + 3, 0, 0, 1, 1, 99, 30, 0, 20 > /* wbl, vpw, lcdac, wbf */ > }; > #endif /* CONFIG_SHARP_LQ104V7DS01 */ > /*----------------------------------------------------------------------*/ > > +/*----------------------------------------------------------------------*/ > + > +#ifdef CONFIG_SHARP_LQ104V1DG61 > +/* > + * SHARP LQ104V1DG61. 10", 640x480. Active, color, single scan. > + */ > +vidinfo_t panel_info = { > + 640, 480, 0, 0, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH, > + 3, 0, 0, 1, 1, 80, 30, 0, 20 > + > +}; > +#endif /* CONFIG_SHARP_LQ104V1DG61 */ > +/*----------------------------------------------------------------------*/ > + > +/*----------------------------------------------------------------------*/ > + > +#ifdef CONFIG_NEC_NL8060BC26 > +#undef LCD_DF > +#define LCD_DF 4 > +/* > + * NEC_NL8060BC26. 10.4"", 800x600. Active, color, single scan. > + */ > +vidinfo_t panel_info = { > + 800, 600, 211, 158, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH, > + 3, 0, 0, 1, 1, 80, 30, 0, 20 > +}; > +#endif /* CONFIG_NEC_NL8060BC26 */ > +/*----------------------------------------------------------------------*/ > + > +/*----------------------------------------------------------------------*/ > + > +#ifdef CONFIG_PM070WL3 > +#undef LCD_DF > +#define LCD_DF 4 > +/* > + * PM070-WL3. 7"", 800x480. Active, color, single scan. > + */ > +vidinfo_t panel_info = { > + 800, 480, 153, 92, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH, > + 3, 0, 0, 1, 1, 80, 30, 0, 20 > +}; > +#endif /* CONFIG_PM070WL3 */ > +/*----------------------------------------------------------------------*/ > + > + remove one empty line above. > +#ifdef CONFIG_HLD1045AE1 > +vidinfo_t panel_info = { > + 640, 480, 0, 0, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH, > + 3, 0, 0, 1, 1, 80, 3, 0, 33 > + /* wbl, vpw, lcdac, wbf */ > +}; > +#endif /* CONFIG_HLD1045AE1 */ > +/*----------------------------------------------------------------------*/ > + > +#ifdef CONFIG_AUO_T070W1D1 > +#undef LCD_DF > +#define LCD_DF 12 > + > +vidinfo_t panel_info = { > + 480, 240, 0, 0, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH, > + 3, 1, 0, 1, 1, 80, 4, 0, 16 > + /* wbl, vpw, lcdac, wbf */ > +}; > +#define CONFIG_LCD_INFO_BELOW_LOGO > +#endif /* CONFIG_AUO_T070W1D1 */ > +/*----------------------------------------------------------------------*/ > + > #ifdef CONFIG_SHARP_16x9 > /* > * Sharp 320x240. Active, color, single scan. It isn't 16x9, and I am > @@ -144,6 +215,44 @@ vidinfo_t panel_info = { > #endif /* CONFIG_SHARP_16x9 */ > /*----------------------------------------------------------------------*/ > > +#ifdef CONFIG_SHARP_LQ050Q5DR01 > +/* > + * Sharp LQ050Q5DR01 display. Active, color, single scan. > + */ > +#undef LCD_DF > +#define LCD_DF 12 > + > +vidinfo_t panel_info = { > + 320, 241, 0, 0, CFG_HIGH, CFG_HIGH, CFG_HIGH, CFG_HIGH, CFG_HIGH, ------------^^^ is this intentional or a typo? > + 3, 1, 0, 1, 1, 15, 4, 0, 3 > + /* wbl, vpw, lcdac, wbf */ > +}; > +#define CONFIG_LCD_INFO_BELOW_LOGO > +#endif /* CONFIG_SHARP_LQ050Q5DR01 */ > +/*----------------------------------------------------------------------*/ > + > +#ifdef CONFIG_SHARP_LQ070Q5TR01 > +/* > + * Sharp LQ070Q5DR01 display. Active, color, single scan. > + * !!! The actual screen size is only 480x240, but the HSYNC period has to > + * be at least 680 pixels. The HSYNC period is given by 4 + vl_width + wbl. > + * Changing wbl moves the picture on the screen. The only parameter to change > + * is the screen width. Therefore we need a bitplane wider than the screen. > + * The same holds for the VSYNC period. This is given byx VPW + WBF + > vl_height. > + * Changing VPW or WBF moves the picture up/down. Therefore we can only > + * change vl_height. As a consequence the bitplane needs to be higher > + * than the screen as well. > + */ > + > +vidinfo_t panel_info = { > + 680, 246, 0, 0, CFG_HIGH, CFG_HIGH, CFG_HIGH, CFG_HIGH, CFG_HIGH, > + 3, 0, 0, 1, 1, 7, 4, 0, 3 > + /* wbl, vpw, lcdac, wbf */ > +}; > +#define CONFIG_LCD_INFO_BELOW_LOGO > +#endif /* CONFIG_SHARP_LQ070Q5TR01 */ > +/*----------------------------------------------------------------------*/ > + > #ifdef CONFIG_SHARP_LQ057Q3DC02 > /* > * Sharp LQ057Q3DC02 display. Active, color, single scan. > @@ -170,6 +279,7 @@ vidinfo_t panel_info = { > /* wbl, vpw, lcdac, wbf */ > }; > #endif /* CONFIG_SHARP_LQ64D341 */ > +/*-----------------------------------------------------------------*/ > > #ifdef CONFIG_SHARP_LQ065T9DR51U > /* > @@ -396,6 +506,23 @@ void lcd_ctrl_init (void *lcdbase) > immr->im_ioport.iop_pddat |= 0x0200; > #endif > > +/* > + * Workaround for RRVision with 10" LCD Display. see issue26199. > + * This Workaround works with the Displays SHARP LQ104V7DS01 and SHARP > + * LQ104V1DG61 > + */ > +#if defined(CONFIG_RRVISION) && (defined(CONFIG_SHARP_LQ104V7DS01) || \ > + defined(CONFIG_SHARP_LQ104V1DG61)) > + /* PDPAR Bit 6 - DD6 => 0 */ > + immr->im_ioport.iop_pdpar &= ~0x0200; > + > + /* PDDIR Bit 6 - DR6 => 1 */ > + immr->im_ioport.iop_pddir |= 0x0200; > + > + /* PDDAT Bit 6 - D6 => 0 */ > + immr->im_ioport.iop_pddat &= ~0x0200; > +#endif /* CONFIG_SHARP_LQ104V7DS01 */ > + > /* Load the physical address of the linear frame buffer > * into the LCD controller. > * BIG NOTE: This has to be modified to load A and B depending > @@ -483,7 +610,6 @@ lcd_setcolreg (ushort regno, ushort red, ushort green, > ushort blue) > /*----------------------------------------------------------------------*/ > > #if LCD_BPP == LCD_MONOCHROME > -static > void lcd_initcolregs (void) > { > volatile immap_t *immr = (immap_t *) CFG_IMMR; > @@ -564,12 +690,10 @@ void lcd_enable (void) > #endif > #ifdef CONFIG_RRVISION > debug ("PC4->Output(1): enable LVDS\n"); > - debug ("PC5->Output(0): disable PAL clock\n"); > immr->im_ioport.iop_pddir |= 0x1000; > immr->im_ioport.iop_pcpar &= ~(0x0C00); > immr->im_ioport.iop_pcdir |= 0x0C00 ; > immr->im_ioport.iop_pcdat |= 0x0800 ; > - immr->im_ioport.iop_pcdat &= ~(0x0400); > debug ("PDPAR=0x%04X PDDIR=0x%04X PDDAT=0x%04X\n", > immr->im_ioport.iop_pdpar, > immr->im_ioport.iop_pddir, > diff --git a/cpu/mpc8xx/video.c b/cpu/mpc8xx/video.c > index 8bf8e46..5bbd693 100644 > --- a/cpu/mpc8xx/video.c > +++ b/cpu/mpc8xx/video.c > @@ -68,6 +68,10 @@ DECLARE_GLOBAL_DATA_PTR; > #define VIDEO_INFO_X VIDEO_LOGO_WIDTH+8 > #define VIDEO_INFO_Y 16 > > +#if defined(CONFIG_RRVISION) && defined(TTTECH_NO_SCREEN_INFO) > +#undef VIDEO_INFO > +#endif > + > /************************************************************************/ > /* ** VIDEO ENCODER CONSTANTS > */ > /************************************************************************/ > @@ -115,10 +119,15 @@ DECLARE_GLOBAL_DATA_PTR; > #define VIDEO_BURST_LEN (VIDEO_COLS/8) > > #ifdef VIDEO_MODE_YUYV > + > +#if defined(CONFIG_RRVISION) > +#define VIDEO_BG_COL 0x80108010 /* Background color in YUYV > format */ > +#else > #define VIDEO_BG_COL 0x80D880D8 /* Background color in YUYV format */ > +#endif /* CONFIG_RRVISION */ > #else > #define VIDEO_BG_COL 0xF8F8F8F8 /* Background color in RGB format */ > -#endif > +#endif /* VIDEO_MODE_YUYV */ > > /************************************************************************/ > /* ** FONT AND LOGO DATA */ > @@ -132,6 +141,14 @@ DECLARE_GLOBAL_DATA_PTR; > #define VIDEO_LOGO_WIDTH DEF_U_BOOT_LOGO_WIDTH > #define VIDEO_LOGO_HEIGHT DEF_U_BOOT_LOGO_HEIGHT > #define VIDEO_LOGO_ADDR &u_boot_logo > + > +#ifndef CONFIG_VIDEO_LOGO_X > +#define CONFIG_VIDEO_LOGO_X 0 ------------------------------^^ remove one TAB. > +#endif > +#ifndef CONFIG_VIDEO_LOGO_Y > +#define CONFIG_VIDEO_LOGO_Y 0 ------------------------------^^ Ditto. > +#endif > + > #endif > > /************************************************************************/ > @@ -1171,7 +1188,8 @@ static void *video_logo (void) > char info[80]; > #endif /* VIDEO_INFO */ > > - easylogo_plot (VIDEO_LOGO_ADDR, screen, width, 0, 0); > + easylogo_plot (VIDEO_LOGO_ADDR, screen, width, CONFIG_VIDEO_LOGO_X, > + CONFIG_VIDEO_LOGO_Y); ----------------^^^^^^^^^^^^^^^^^^^^^ align this with left parenthesis in above line, please. > > #ifdef VIDEO_INFO > sprintf (info, "%s (%s - %s) ", U_BOOT_VERSION, __DATE__, __TIME__); Another question: are you also going to update README file by describing new LOGO_X/LOG_Y macros? Best regargs, Anatolij -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: [EMAIL PROTECTED] ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users