From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anatolij Gustschin Date: Fri, 8 Jun 2012 15:09:07 +0200 Subject: [U-Boot] [PATCH 3/7] common lcd: simplify bitmap_plot In-Reply-To: <1337859764-16086-4-git-send-email-grinberg@compulab.co.il> References: <1337859764-16086-1-git-send-email-grinberg@compulab.co.il> <1337859764-16086-4-git-send-email-grinberg@compulab.co.il> Message-ID: <20120608150907.6825bb2b@wker> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On Thu, 24 May 2012 14:42:40 +0300 Igor Grinberg wrote: > From: Nikita Kiryanov > > Simplify bitmap_plot in terms of number of #ifdefs by making some of the > code into an external macro > > Signed-off-by: Nikita Kiryanov > Signed-off-by: Igor Grinberg > --- > common/lcd.c | 26 ++++++++++++++------------ > 1 files changed, 14 insertions(+), 12 deletions(-) > > diff --git a/common/lcd.c b/common/lcd.c > index 3b2f25f..448e0f0 100644 > --- a/common/lcd.c > +++ b/common/lcd.c > @@ -498,6 +498,18 @@ static int lcd_getbgcolor(void) > /************************************************************************/ > /* ** Chipset depending Bitmap / Logo stuff... */ > /************************************************************************/ > +#ifdef CONFIG_ATMEL_LCD > +#ifdef CONFIG_ATMEL_LCD_BGR555 > +#define LUT_ENTRY(colreg) (((colreg) & 0x000F) << 11) | \ > + (((colreg) & 0x00F0) << 2) | \ > + (((colreg) & 0x0F00) >> 7); > +#else /* CONFIG_ATMEL_LCD_RGB565 */ > +#define LUT_ENTRY(colreg) (((colreg) & 0x000F) << 1) | \ > + (((colreg) & 0x00F0) << 3) | \ > + (((colreg) & 0x0F00) >> 4); > +#endif > +#endif > + > #ifdef CONFIG_LCD_LOGO > void bitmap_plot(int x, int y) > { > @@ -545,19 +557,9 @@ void bitmap_plot(int x, int y) > for (i = 0; i < ARRAY_SIZE(bmp_logo_palette); ++i) { > ushort colreg = bmp_logo_palette[i]; > #ifdef CONFIG_ATMEL_LCD > - uint lut_entry; > -#ifdef CONFIG_ATMEL_LCD_BGR555 > - lut_entry = ((colreg & 0x000F) << 11) | > - ((colreg & 0x00F0) << 2) | > - ((colreg & 0x0F00) >> 7); > -#else /* CONFIG_ATMEL_LCD_RGB565 */ > - lut_entry = ((colreg & 0x000F) << 1) | > - ((colreg & 0x00F0) << 3) | > - ((colreg & 0x0F00) << 4); > -#endif > - *(cmap + BMP_LOGO_OFFSET) = lut_entry; > + *(cmap + BMP_LOGO_OFFSET) = LUT_ENTRY(colreg); > cmap++; > -#else /* !CONFIG_ATMEL_LCD */ > +#else > #ifdef CONFIG_SYS_INVERT_COLORS > *cmap++ = 0xffff - colreg; > #else Here it should be possible to use lcd_setcolreg() in the for loop, too. I would prefer this approach instead of adding LUT_ENTRY macro. Thanks, Anatolij