
On 10/24/2013 07:00 PM, Andre Heider wrote:
Depending on the firmware's video options [1] the active SDTV or HDTV mode can yield a framebuffer with noncontiguous horizontal lines, giving a messed up display, for both, u-boot and the loaded kernel.
Fix this by setting lcd_line_length to the pitch value of the configured framebuffer.
This sounds like the right concept.
diff --git a/drivers/video/bcm2835.c b/drivers/video/bcm2835.c
void lcd_enable(void) {
- if (bcm2835_pitch)
Why make this conditional? Does the firmware sometimes not return the correct pitch and/or does lcd_enable() get called before lcd_ctrl_init() so the global hasn't been set up? Either of those seem like nasty bugs that should be fixed...
lcd_line_length = bcm2835_pitch;
Why set lcd_line_length at a different time than the mailbox message is executed? Can't lcd_line_length be set at the end of lcd_ctrl_init(), thus avoiding the global variable bcm2835_pitch?
}