Skip to contentSkip to conversation

atmel_lcdfb: Eliminate unneeded #include <asm/arch/hardware.h>

PATCH New Haavard Skinnemoen 5 participants 15 messages Sep 1, 2008 – Oct 27, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/5 atmel_lcdfb: Eliminate unneeded #include <asm/arch/hardware.h>

atmel_lcdfb doesn't actually need anything from asm/arch/hardware.h. It includes a file that does, asm/arch/gpio.h, but this file doesn't include <asm/arch/hardware.h> like it's supposed to.

Add the missing include to asm/arch/gpio.h and remove the workaround from the atmel_lcdfb driver. This makes the driver compile on avr32.

---
 drivers/video/atmel_lcdfb.c      |    1 -
 include/asm-arm/arch-at91/gpio.h |    1 +
 2 files changed, 1 insertions(+), 1 deletions(-)
drivers/video/atmel_lcdfb.c +0 -1
index b332a82..7f0dceb 100644
@@ -24,7 +24,6 @@
 
 #include <common.h>
 #include <asm/io.h>
-#include <asm/arch/hardware.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/clk.h>
 #include <lcd.h>
include/asm-arm/arch-at91/gpio.h +1 -0
index c4d7b97..e2d375b 100644
@@ -16,6 +16,7 @@
 #include <asm/io.h>
 #include <asm/errno.h>
 #include <asm/arch/at91_pio.h>
+#include <asm/arch/hardware.h>
 
 #define PIN_BASE		32
 
Signature · 1 line
1.5.6.3
#1 lore raw

PATCH 2/5 atmel_lcdfb: Straighten out funky vl_sync logic

If the board _didn't_ request INVLINE_INVERTED, we set INVLINE_INVERTED, otherwise we don't. WTF?

---
 drivers/video/atmel_lcdfb.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)
drivers/video/atmel_lcdfb.c +1 -4
index 7f0dceb..3a51cc7 100644
@@ -107,10 +107,7 @@ void lcd_ctrl_init(void *lcdbase)
 	if (panel_info.vl_tft)
 		value |= ATMEL_LCDC_DISTYPE_TFT;
 
-	if (!(panel_info.vl_sync & ATMEL_LCDC_INVLINE_INVERTED))
-		value |= ATMEL_LCDC_INVLINE_INVERTED;
-	if (!(panel_info.vl_sync & ATMEL_LCDC_INVFRAME_INVERTED))
-		value |= ATMEL_LCDC_INVFRAME_INVERTED;
+	value |= panel_info.vl_sync;
 	value |= (panel_info.vl_bpix << 5);
 	lcdc_writel(panel_info.mmio, ATMEL_LCDC_LCDCON2, value);
 
Signature · 1 line
1.5.6.3
#2 lore raw

PATCH 3/5 lcd: Implement lcd_printf()

lcd_printf() has a prototype in include/lcd.h but no implementation. Fix this by borrowing the lcd_printf() implementation from the cogent board code (which appears to use its own LCD framework.)

---
 common/lcd.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
common/lcd.c +14 -0
index 25f8664..82e557e 100644
@@ -225,6 +225,20 @@ void lcd_puts (const char *s)
 	}
 }
 
+/*----------------------------------------------------------------------*/
+
+void lcd_printf(const char *fmt, ...)
+{
+	va_list args;
+	char buf[CFG_PBSIZE];
+
+	va_start(args, fmt);
+	vsprintf(buf, fmt, args);
+	va_end(args);
+
+	lcd_puts(buf);
+}
+
 /************************************************************************/
 /* ** Low-Level Graphics Routines					*/
 /************************************************************************/
Signature · 1 line
1.5.6.3
#3 lore raw

PATCH 4/5 lcd: Set lcd_is_enabled before clearing the screen

This allows the logo/info rendering routines to use the regular lcd_putc/lcd_puts/lcd_printf calls.

---
 common/lcd.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
common/lcd.c +1 -1
index 82e557e..6ad2133 100644
@@ -440,6 +440,7 @@ static int lcd_init (void *lcdbase)
 	debug ("[LCD] Initializing LCD frambuffer at %p\n", lcdbase);
 
 	lcd_ctrl_init (lcdbase);
+	lcd_is_enabled = 1;
 	lcd_clear (NULL, 1, 1, NULL);	/* dummy args */
 	lcd_enable ();
 
@@ -450,7 +451,6 @@ static int lcd_init (void *lcdbase)
 #else
 	console_row = 1;	/* leave 1 blank line below logo */
 #endif
-	lcd_is_enabled = 1;
 
 	return 0;
 }
Signature · 1 line
1.5.6.3
#4 lore raw

PATCH 5/5 lcd: Let the board code show board-specific info

The information displayed when CONFIG_LCD_INFO is set is inherently board-specific, so it should be done by the board code. The current code dealing with this only handles two cases, and is already a horrible mess of #ifdeffery.

Yes, this duplicates some code, but it also allows boards to print more board-specific information; this used to be very difficult.

---
 board/atmel/at91cap9adk/at91cap9adk.c     |   29 ++++++++++
 board/atmel/at91sam9261ek/at91sam9261ek.c |   29 ++++++++++
 board/atmel/at91sam9263ek/at91sam9263ek.c |   29 ++++++++++
 board/atmel/at91sam9rlek/at91sam9rlek.c   |   29 ++++++++++
 board/lwmon/lwmon.c                       |   29 ++++++++++
 board/tqc/tqm8xx/tqm8xx.c                 |   26 +++++++++
 common/lcd.c                              |   84 ++---------------------------
 include/lcd.h                             |    2 +
 8 files changed, 178 insertions(+), 79 deletions(-)
board/atmel/at91cap9adk/at91cap9adk.c +29 -0
index c5082a0..31f468a 100644
@@ -324,6 +324,35 @@ static void at91cap9_lcd_hw_init(void)
 
 	gd->fb_base = 0;
 }
+
+#ifdef CONFIG_LCD_INFO
+#include <nand.h>
+#include <version.h>
+
+void lcd_show_board_info(void)
+{
+	ulong dram_size, nand_size;
+	int i;
+	char temp[32];
+
+	lcd_printf ("%s\n", U_BOOT_VERSION);
+	lcd_printf ("(C) 2008 ATMEL Corp\n");
+	lcd_printf ("at91support at atmel.com\n");
+	lcd_printf ("%s CPU at %s MHz\n",
+		AT91_CPU_NAME,
+		strmhz(temp, AT91_MAIN_CLOCK));
+
+	dram_size = 0;
+	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++)
+		dram_size += gd->bd->bi_dram[i].size;
+	nand_size = 0;
+	for (i = 0; i < CFG_MAX_NAND_DEVICE; i++)
+		nand_size += nand_info[i].size;
+	lcd_printf ("  %ld MB SDRAM, %ld MB NAND\n",
+		dram_size >> 20,
+		nand_size >> 20 );
+}
+#endif /* CONFIG_LCD_INFO */
 #endif
 
 int board_init(void)
board/atmel/at91sam9261ek/at91sam9261ek.c +29 -0
index 647aab5..5a48ee4 100644
@@ -209,6 +209,35 @@ static void at91sam9261ek_lcd_hw_init(void)
 
 	gd->fb_base = AT91SAM9261_SRAM_BASE;
 }
+
+#ifdef CONFIG_LCD_INFO
+#include <nand.h>
+#include <version.h>
+
+void lcd_show_board_info(void)
+{
+	ulong dram_size, nand_size;
+	int i;
+	char temp[32];
+
+	lcd_printf ("%s\n", U_BOOT_VERSION);
+	lcd_printf ("(C) 2008 ATMEL Corp\n");
+	lcd_printf ("at91support at atmel.com\n");
+	lcd_printf ("%s CPU at %s MHz\n",
+		AT91_CPU_NAME,
+		strmhz(temp, AT91_MAIN_CLOCK));
+
+	dram_size = 0;
+	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++)
+		dram_size += gd->bd->bi_dram[i].size;
+	nand_size = 0;
+	for (i = 0; i < CFG_MAX_NAND_DEVICE; i++)
+		nand_size += nand_info[i].size;
+	lcd_printf ("  %ld MB SDRAM, %ld MB NAND\n",
+		dram_size >> 20,
+		nand_size >> 20 );
+}
+#endif /* CONFIG_LCD_INFO */
 #endif
 
 int board_init(void)
board/atmel/at91sam9263ek/at91sam9263ek.c +29 -0
index 927fc91..84db2c5 100644
@@ -258,6 +258,35 @@ static void at91sam9263ek_lcd_hw_init(void)
 
 	gd->fb_base = AT91SAM9263_SRAM0_BASE;
 }
+
+#ifdef CONFIG_LCD_INFO
+#include <nand.h>
+#include <version.h>
+
+void lcd_show_board_info(void)
+{
+	ulong dram_size, nand_size;
+	int i;
+	char temp[32];
+
+	lcd_printf ("%s\n", U_BOOT_VERSION);
+	lcd_printf ("(C) 2008 ATMEL Corp\n");
+	lcd_printf ("at91support at atmel.com\n");
+	lcd_printf ("%s CPU at %s MHz\n",
+		AT91_CPU_NAME,
+		strmhz(temp, AT91_MAIN_CLOCK));
+
+	dram_size = 0;
+	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++)
+		dram_size += gd->bd->bi_dram[i].size;
+	nand_size = 0;
+	for (i = 0; i < CFG_MAX_NAND_DEVICE; i++)
+		nand_size += nand_info[i].size;
+	lcd_printf ("  %ld MB SDRAM, %ld MB NAND\n",
+		dram_size >> 20,
+		nand_size >> 20 );
+}
+#endif /* CONFIG_LCD_INFO */
 #endif
 
 int board_init(void)
board/atmel/at91sam9rlek/at91sam9rlek.c +29 -0
index 509e7c3..22115e5 100644
@@ -181,6 +181,35 @@ static void at91sam9rlek_lcd_hw_init(void)
 
 	gd->fb_base = 0;
 }
+
+#ifdef CONFIG_LCD_INFO
+#include <nand.h>
+#include <version.h>
+
+void lcd_show_board_info(void)
+{
+	ulong dram_size, nand_size;
+	int i;
+	char temp[32];
+
+	lcd_printf ("%s\n", U_BOOT_VERSION);
+	lcd_printf ("(C) 2008 ATMEL Corp\n");
+	lcd_printf ("at91support at atmel.com\n");
+	lcd_printf ("%s CPU at %s MHz\n",
+		AT91_CPU_NAME,
+		strmhz(temp, AT91_MAIN_CLOCK));
+
+	dram_size = 0;
+	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++)
+		dram_size += gd->bd->bi_dram[i].size;
+	nand_size = 0;
+	for (i = 0; i < CFG_MAX_NAND_DEVICE; i++)
+		nand_size += nand_info[i].size;
+	lcd_printf ("  %ld MB SDRAM, %ld MB NAND\n",
+		dram_size >> 20,
+		nand_size >> 20 );
+}
+#endif /* CONFIG_LCD_INFO */
 #endif
 
 
board/lwmon/lwmon.c +29 -0
index 4a2d8e4..695eddd 100644
@@ -759,6 +759,35 @@ static uchar *key_match (uchar *kbd_data)
 }
 #endif /* CONFIG_PREBOOT */
 
+#ifdef CONFIG_LCD_INFO
+#include <lcd.h>
+#include <version.h>
+
+void lcd_show_board_info(void)
+{
+	char temp[32];
+
+	lcd_printf ("%s (%s - %s)\n", U_BOOT_VERSION, __DATE__, __TIME__);
+	lcd_printf ("(C) 2008 DENX Software Engineering GmbH\n");
+	lcd_printf ("    Wolfgang DENK, wd at denx.de\n");
+#ifdef CONFIG_LCD_INFO_BELOW_LOGO
+	lcd_printf ("MPC823 CPU at %s MHz\n",
+		strmhz(temp, gd->cpu_clk));
+	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 3,
+					info, strlen(info));
+	lcd_printf ("  %ld MB RAM, %ld MB Flash\n",
+		gd->ram_size >> 20,
+		gd->bd->bi_flashsize >> 20 );
+#else
+	/* leave one blank line */
+	lcd_printf ("\nMPC823 CPU at %s MHz, %ld MB RAM, %ld MB Flash\n",
+		strmhz(temp, gd->cpu_clk),
+		gd->ram_size >> 20,
+		gd->bd->bi_flashsize >> 20 );
+#endif /* CONFIG_LCD_INFO_BELOW_LOGO */
+}
+#endif /* CONFIG_LCD_INFO */
+
 /*---------------Board Special Commands: PIC read/write ---------------*/
 
 #if defined(CONFIG_CMD_BSP)
board/tqc/tqm8xx/tqm8xx.c +26 -0
index 96b6103..ea89d5a 100644
@@ -504,6 +504,32 @@ int misc_init_r (void)
 }
 #endif	/* CONFIG_NSCU */
 
+#ifdef CONFIG_LCD_INFO
+#include <lcd.h>
+
+void lcd_show_board_info(void)
+{
+	lcd_printf ("%s (%s - %s)\n", U_BOOT_VERSION, __DATE__, __TIME__);
+	lcd_printf ("(C) 2008 DENX Software Engineering GmbH\n");
+	lcd_printf ("    Wolfgang DENK, wd at denx.de\n");
+#ifdef CONFIG_LCD_INFO_BELOW_LOGO
+	lcd_printf ("MPC823 CPU at %s MHz\n",
+		strmhz(temp, gd->cpu_clk));
+	lcd_drawchars (LCD_INFO_X, LCD_INFO_Y + VIDEO_FONT_HEIGHT * 3,
+					info, strlen(info));
+	lcd_printf ("  %ld MB RAM, %ld MB Flash\n",
+		gd->ram_size >> 20,
+		gd->bd->bi_flashsize >> 20 );
+#else
+	/* leave one blank line */
+	lcd_printf ("\nMPC823 CPU at %s MHz, %ld MB RAM, %ld MB Flash\n",
+		strmhz(temp, gd->cpu_clk),
+		gd->ram_size >> 20,
+		gd->bd->bi_flashsize >> 20 );
+#endif /* CONFIG_LCD_INFO_BELOW_LOGO */
+}
+#endif /* CONFIG_LCD_INFO */
+
 /* ---------------------------------------------------------------------------- */
 /* TK885D specific initializaion						*/
 /* ---------------------------------------------------------------------------- */
common/lcd.c +5 -79

102 lines not on this page · raw message

include/lcd.h +2 -0
index 44ac8ef..ead9e1d 100644
@@ -197,6 +197,8 @@ void	lcd_putc	(const char c);
 void	lcd_puts	(const char *s);
 void	lcd_printf	(const char *fmt, ...);
 
+/* Allow boards to customize the information displayed */
+void lcd_show_board_info(void);
 
 /************************************************************************/
 /* ** BITMAP DISPLAY SUPPORT						*/
Signature · 1 line
1.5.6.3
#5 lore raw

PATCH 5/5 lcd: Let the board code show board-specific info

Quoted 9 lines · Haavard Skinnemoen

The information displayed when CONFIG_LCD_INFO is set is inherently board-specific, so it should be done by the board code. The current code dealing with this only handles two cases, and is already a horrible mess of #ifdeffery.

Yes, this duplicates some code, but it also allows boards to print more board-specific information; this used to be very difficult.

Quoted 10 lines
---
 board/atmel/at91cap9adk/at91cap9adk.c     |   29 ++++++++++
 board/atmel/at91sam9261ek/at91sam9261ek.c |   29 ++++++++++
 board/atmel/at91sam9263ek/at91sam9263ek.c |   29 ++++++++++
 board/atmel/at91sam9rlek/at91sam9rlek.c   |   29 ++++++++++
 board/lwmon/lwmon.c                       |   29 ++++++++++
 board/tqc/tqm8xx/tqm8xx.c                 |   26 +++++++++
 common/lcd.c                              |   84 ++---------------------------
 include/lcd.h                             |    2 +
 8 files changed, 178 insertions(+), 79 deletions(-)

Jean-Christophe, you ACKed this patch in
http://lists.denx.de/pipermail/u-boot/2008-October/042389.html.

Should it go through u-boot-video repository or do you intend to pick it up?

Note that it needs some fixes:
s/CFG_MAX_NAND_DEVICE/CONFIG_SYS_MAX_NAND_DEVICE

Best regards,
Anatolij

Signature · 3 lines
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: office at denx.de
#6 lore raw

PATCH 5/5 lcd: Let the board code show board-specific info

Quoted 21 lines · Anatolij Gustschin
Quoted 9 lines · Haavard Skinnemoen

The information displayed when CONFIG_LCD_INFO is set is inherently board-specific, so it should be done by the board code. The current code dealing with this only handles two cases, and is already a horrible mess of #ifdeffery.

Yes, this duplicates some code, but it also allows boards to print more board-specific information; this used to be very difficult.

Quoted 10 lines
---
 board/atmel/at91cap9adk/at91cap9adk.c     |   29 ++++++++++
 board/atmel/at91sam9261ek/at91sam9261ek.c |   29 ++++++++++
 board/atmel/at91sam9263ek/at91sam9263ek.c |   29 ++++++++++
 board/atmel/at91sam9rlek/at91sam9rlek.c   |   29 ++++++++++
 board/lwmon/lwmon.c                       |   29 ++++++++++
 board/tqc/tqm8xx/tqm8xx.c                 |   26 +++++++++
 common/lcd.c                              |   84 ++---------------------------
 include/lcd.h                             |    2 +
 8 files changed, 178 insertions(+), 79 deletions(-)
Quoted 8 lines

Jean-Christophe, you ACKed this patch in
http://lists.denx.de/pipermail/u-boot/2008-October/042389.html.

Should it go through u-boot-video repository or do you intend to pick it up?

Note that it needs some fixes:
s/CFG_MAX_NAND_DEVICE/CONFIG_SYS_MAX_NAND_DEVICE

Apply it I'll pull your tree when you've done

Best Regards,
J.

#7 lore raw

PATCH 5/5 lcd: Let the board code show board-specific info

In reply to Haavard Skinnemoen
Quoted 9 lines · Haavard Skinnemoen

The information displayed when CONFIG_LCD_INFO is set is inherently board-specific, so it should be done by the board code. The current code dealing with this only handles two cases, and is already a horrible mess of #ifdeffery.

Yes, this duplicates some code, but it also allows boards to print more board-specific information; this used to be very difficult.

Quoted 10 lines
---
 board/atmel/at91cap9adk/at91cap9adk.c     |   29 ++++++++++
 board/atmel/at91sam9261ek/at91sam9261ek.c |   29 ++++++++++
 board/atmel/at91sam9263ek/at91sam9263ek.c |   29 ++++++++++
 board/atmel/at91sam9rlek/at91sam9rlek.c   |   29 ++++++++++
 board/lwmon/lwmon.c                       |   29 ++++++++++
 board/tqc/tqm8xx/tqm8xx.c                 |   26 +++++++++
 common/lcd.c                              |   84 ++---------------------------
 include/lcd.h                             |    2 +
 8 files changed, 178 insertions(+), 79 deletions(-)

Applied to u-boot-video/master repo. Thanks!

Also fixed by s/CFG_MAX_NAND_DEVICE/CONFIG_SYS_MAX_NAND_DEVICE as it is needed since commit 6d0f6bcf337c5261c08fabe12982178c2c489d76.

Best regards,
Anatolij

Signature · 3 lines
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: office at denx.de
#8 lore raw

PATCH 4/5 lcd: Set lcd_is_enabled before clearing the screen

In reply to Haavard Skinnemoen
Quoted 4 lines · Haavard Skinnemoen

This allows the logo/info rendering routines to use the regular lcd_putc/lcd_puts/lcd_printf calls.

Applied to u-boot-video/master repo. Thanks.

Best regards,
Anatolij

Signature · 3 lines
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: office at denx.de
#9 lore raw

PATCH 3/5 lcd: Implement lcd_printf()

In reply to Haavard Skinnemoen
Quoted 5 lines · Haavard Skinnemoen

lcd_printf() has a prototype in include/lcd.h but no implementation. Fix this by borrowing the lcd_printf() implementation from the cogent board code (which appears to use its own LCD framework.)

Applied to u-boot-video/master repo. Thanks.

Also fixed it by s/CFG_PBSIZE/CONFIG_SYS_PBSIZE as it is needed since commit 6d0f6bcf337c5261c08fabe12982178c2c489d76.

Best regards,
Anatolij

Signature · 3 lines
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: office at denx.de
#10 lore raw

PATCH 3/5 lcd: Implement lcd_printf()

Dear Anatolij Gustschin,

Quoted 11 lines · In message <[email protected]> you wrote:
Quoted 5 lines · Haavard Skinnemoen

lcd_printf() has a prototype in include/lcd.h but no implementation. Fix this by borrowing the lcd_printf() implementation from the cogent board code (which appears to use its own LCD framework.)

Applied to u-boot-video/master repo. Thanks.

Also fixed it by s/CFG_PBSIZE/CONFIG_SYS_PBSIZE as it is needed since commit 6d0f6bcf337c5261c08fabe12982178c2c489d76.

Can you please send a pull request for u-boot-video soon?

Thanks in advance.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
When it is incorrect, it is, at least *authoritatively* incorrect.
                                    - Hitchiker's Guide To The Galaxy
#11 lore raw

PATCH 2/5 atmel_lcdfb: Straighten out funky vl_sync logic

In reply to Haavard Skinnemoen

Hi Haavard,

Quoted 13 lines

If the board _didn't_ request INVLINE_INVERTED, we set INVLINE_INVERTED, otherwise we don't. WTF?

---
 drivers/video/atmel_lcdfb.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)
drivers/video/atmel_lcdfb.c +0 -0
index 7f0dceb..3a51cc7 100644

drivers/video/atmel_lcdfb.c void lcd_ctrl_init(void *lcdbase) · line 110

Quoted 8 lines
drivers/video/atmel_lcdfb.c +1 -4
@@ -107,10 +107,7 @@ void lcd_ctrl_init(void *lcdbase)
 	if (panel_info.vl_tft)
 		value |= ATMEL_LCDC_DISTYPE_TFT;
 
-	if (!(panel_info.vl_sync & ATMEL_LCDC_INVLINE_INVERTED))
-		value |= ATMEL_LCDC_INVLINE_INVERTED;
-	if (!(panel_info.vl_sync & ATMEL_LCDC_INVFRAME_INVERTED))
-		value |= ATMEL_LCDC_INVFRAME_INVERTED;
+	value |= panel_info.vl_sync;

What about

	value |= panel_info.vl_sync & (ATMEL_LCDC_INVLINE_INVERTED | ATMEL_LCDC_INVFRAME_INVERTED);

[break lines where convenient] Apart from this being the formal equivalent to the original code, this would make it more clear what can go in, no?

Cheers
Detlev

Signature · 7 lines
["From 2.4 to 2.6 to 2.7" discussing release numbering of the Linux kernel]
Let the bike-shed-painting begin.
                                     -- Linus Torvalds 
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
#12 lore raw

PATCH 2/5 atmel_lcdfb: Straighten out funky vl_sync logic

Quoted 7 lines · Detlev Zundel

What about

	value |= panel_info.vl_sync & (ATMEL_LCDC_INVLINE_INVERTED | ATMEL_LCDC_INVFRAME_INVERTED);

[break lines where convenient] Apart from this being the formal equivalent to the original code, this would make it more clear what can go in, no?

Well, there's also INVVD, INVCLK and INVDVAL which the original code doesn't care about at all. I'm not sure if all of them are suitable for the vl_sync field, but perhaps the field should be renamed.

In Linux, there's just a default_lcdcon2 field which the board code can use to set any flags it wants. I'm not sure if the driver should really bother too much about those flags anyway -- almost all of them depend on the type of display, how it's hooked up, etc.

Haavard

#13 lore raw

PATCH 2/5 atmel_lcdfb: Straighten out funky vl_sync logic

In reply to Haavard Skinnemoen
Quoted 4 lines · Haavard Skinnemoen

If the board _didn't_ request INVLINE_INVERTED, we set INVLINE_INVERTED, otherwise we don't. WTF?

Applied to u-boot-video/master repo. Thanks.

Best regards,
Anatolij

Signature · 3 lines
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: office at denx.de
#14 lore raw

PATCH 1/5 atmel_lcdfb: Eliminate unneeded #include <asm/arch/hardware.h>

In reply to Haavard Skinnemoen
Quoted 9 lines · Haavard Skinnemoen

atmel_lcdfb doesn't actually need anything from asm/arch/hardware.h. It includes a file that does, asm/arch/gpio.h, but this file doesn't include <asm/arch/hardware.h> like it's supposed to.

Add the missing include to asm/arch/gpio.h and remove the workaround from the atmel_lcdfb driver. This makes the driver compile on avr32.

---

Applied to u-boot-video repository. Thanks.

Jean-Christophe ACKed this in

http://lists.denx.de/pipermail/u-boot/2008-October/042389.html

so I'm going to push it through u-boot-video repo.

Best regards,
Anatolij

Signature · 3 lines
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: office at denx.de