* [U-Boot] [PATCH 2/2] video: bcm2835: fix various output modes @ 2013-10-22 20:27 Andre Heider 2013-10-23 16:57 ` Stephen Warren 2013-10-24 18:00 ` [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value Andre Heider 0 siblings, 2 replies; 15+ messages in thread From: Andre Heider @ 2013-10-22 20:27 UTC (permalink / raw) To: u-boot 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. To always archive the required contiguousness for the used 16bpp, round the framebuffer width down so its aligned to a width of 16. [1] http://elinux.org/RPiconfig#Video_mode_options Signed-off-by: Andre Heider <a.heider@gmail.com> --- drivers/video/bcm2835.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/video/bcm2835.c b/drivers/video/bcm2835.c index 58a6163..1404340 100644 --- a/drivers/video/bcm2835.c +++ b/drivers/video/bcm2835.c @@ -52,7 +52,7 @@ void lcd_ctrl_init(void *lcdbase) return; } - w = msg_query->physical_w_h.body.resp.width; + w = ROUND(msg_query->physical_w_h.body.resp.width, 16); h = msg_query->physical_w_h.body.resp.height; debug("bcm2835: Setting up display for %d x %d\n", w, h); -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/2] video: bcm2835: fix various output modes 2013-10-22 20:27 [U-Boot] [PATCH 2/2] video: bcm2835: fix various output modes Andre Heider @ 2013-10-23 16:57 ` Stephen Warren 2013-10-23 20:06 ` Andre Heider 2013-10-24 18:14 ` Andre Heider 2013-10-24 18:00 ` [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value Andre Heider 1 sibling, 2 replies; 15+ messages in thread From: Stephen Warren @ 2013-10-23 16:57 UTC (permalink / raw) To: u-boot On 10/22/2013 09:27 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. > > To always archive the required contiguousness for the used 16bpp, round > the framebuffer width down so its aligned to a width of 16. This doesn't sound like the correct approach. By doing this, either the SET_PHYSICAL_W_H request will fail since the requested mode doesn't match the connected display device, or perhaps it'll work, but end up with a frame-buffer that's a different resolution than the video signal, so the HW will scale the image slightly, which will reduce quality. Instead, can't you obtain the buffer width and stride separately, and then configure the LCD core based on both those values, rather than assuming they're the same? ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/2] video: bcm2835: fix various output modes 2013-10-23 16:57 ` Stephen Warren @ 2013-10-23 20:06 ` Andre Heider 2013-10-24 18:14 ` Andre Heider 1 sibling, 0 replies; 15+ messages in thread From: Andre Heider @ 2013-10-23 20:06 UTC (permalink / raw) To: u-boot On Wed, Oct 23, 2013 at 05:57:53PM +0100, Stephen Warren wrote: > On 10/22/2013 09:27 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. > > > > To always archive the required contiguousness for the used 16bpp, round > > the framebuffer width down so its aligned to a width of 16. > > This doesn't sound like the correct approach. By doing this, either the > SET_PHYSICAL_W_H request will fail since the requested mode doesn't > match the connected display device, or perhaps it'll work, but end up > with a frame-buffer that's a different resolution than the video signal, > so the HW will scale the image slightly, which will reduce quality. SET_PHYSICAL_W_H works in any case, but yeah, it does get "funky" resolutions in some cases. The thing is, the firmware is stupid to begin with (duh). In my case, I do have both outputs connected. For the analog one, I have to set sdtv_* and overscan_* config settings. When the HDMI connection is active, the analog output is inactive, but yet the firmware applies the sdtv_* and overscan_* settings to the HDMI output too, so the clean 1:1 resolution is already gone... > Instead, can't you obtain the buffer width and stride separately, and > then configure the LCD core based on both those values, rather than > assuming they're the same? What I did try is to get the overscan values and add those to the requested resolution (that's where patch 1 comes from). That gives saner resolutions, but some are still broken for me. I agree that getting the pitch value would be the right thing to do, I do some digging to find a spot where to shove that into. Thanks, Andre ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/2] video: bcm2835: fix various output modes 2013-10-23 16:57 ` Stephen Warren 2013-10-23 20:06 ` Andre Heider @ 2013-10-24 18:14 ` Andre Heider 2013-10-24 22:08 ` Stephen Warren 1 sibling, 1 reply; 15+ messages in thread From: Andre Heider @ 2013-10-24 18:14 UTC (permalink / raw) To: u-boot Hi Stephen, On Wed, Oct 23, 2013 at 05:57:53PM +0100, Stephen Warren wrote: > Instead, can't you obtain the buffer width and stride separately, and > then configure the LCD core based on both those values, rather than > assuming they're the same? I just sent a v2 patch to do exactly that. Regarding overscan, I wonder why you zero out the initial overscan settings. If it was just to gain a contiguous frame buffer, can we keep the overscan settings now (assuming my v2 patch is accepted)? That way the framebuffer doesn't get cut off on the sides for old analog SDTV display devices. For HDTV, that means there's a border - but only if the user set the overscan_* values. Thanks, Andre ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH 2/2] video: bcm2835: fix various output modes 2013-10-24 18:14 ` Andre Heider @ 2013-10-24 22:08 ` Stephen Warren 0 siblings, 0 replies; 15+ messages in thread From: Stephen Warren @ 2013-10-24 22:08 UTC (permalink / raw) To: u-boot On 10/24/2013 07:14 PM, Andre Heider wrote: > Hi Stephen, > > On Wed, Oct 23, 2013 at 05:57:53PM +0100, Stephen Warren wrote: >> Instead, can't you obtain the buffer width and stride separately, and >> then configure the LCD core based on both those values, rather than >> assuming they're the same? > > I just sent a v2 patch to do exactly that. > > Regarding overscan, I wonder why you zero out the initial overscan > settings. I think it was because the firmware incorrectly decided by default that my HDMI device needed overscan, when in fact it can display the entire signal it's sent. If there's a way to control that in the config file, then perhaps that might be possible instead, or perhaps I should file a bug against the firmware, assuming I'm remembering correctly... ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value 2013-10-22 20:27 [U-Boot] [PATCH 2/2] video: bcm2835: fix various output modes Andre Heider 2013-10-23 16:57 ` Stephen Warren @ 2013-10-24 18:00 ` Andre Heider 2013-10-24 22:13 ` Stephen Warren ` (3 more replies) 1 sibling, 4 replies; 15+ messages in thread From: Andre Heider @ 2013-10-24 18:00 UTC (permalink / raw) To: u-boot 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. [1] http://elinux.org/RPiconfig#Video_mode_options Signed-off-by: Andre Heider <a.heider@gmail.com> --- drivers/video/bcm2835.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/video/bcm2835.c b/drivers/video/bcm2835.c index 58a6163..431b8a8 100644 --- a/drivers/video/bcm2835.c +++ b/drivers/video/bcm2835.c @@ -14,6 +14,8 @@ DECLARE_GLOBAL_DATA_PTR; /* Global variables that lcd.c expects to exist */ vidinfo_t panel_info; +static u32 bcm2835_pitch; + struct msg_query { struct bcm2835_mbox_hdr hdr; struct bcm2835_mbox_tag_physical_w_h physical_w_h; @@ -30,6 +32,7 @@ struct msg_setup { struct bcm2835_mbox_tag_virtual_offset virtual_offset; struct bcm2835_mbox_tag_overscan overscan; struct bcm2835_mbox_tag_allocate_buffer allocate_buffer; + struct bcm2835_mbox_tag_pitch pitch; u32 end_tag; }; @@ -80,6 +83,7 @@ void lcd_ctrl_init(void *lcdbase) msg_setup->overscan.body.req.right = 0; BCM2835_MBOX_INIT_TAG(&msg_setup->allocate_buffer, ALLOCATE_BUFFER); msg_setup->allocate_buffer.body.req.alignment = 0x100; + BCM2835_MBOX_INIT_TAG_NO_REQ(&msg_setup->pitch, GET_PITCH); ret = bcm2835_mbox_call_prop(BCM2835_MBOX_PROP_CHAN, &msg_setup->hdr); if (ret) { @@ -90,6 +94,7 @@ void lcd_ctrl_init(void *lcdbase) w = msg_setup->physical_w_h.body.resp.width; h = msg_setup->physical_w_h.body.resp.height; + bcm2835_pitch = msg_setup->pitch.body.resp.pitch; debug("bcm2835: Final resolution is %d x %d\n", w, h); @@ -102,4 +107,6 @@ void lcd_ctrl_init(void *lcdbase) void lcd_enable(void) { + if (bcm2835_pitch) + lcd_line_length = bcm2835_pitch; } -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value 2013-10-24 18:00 ` [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value Andre Heider @ 2013-10-24 22:13 ` Stephen Warren 2013-11-07 23:04 ` Anatolij Gustschin ` (2 subsequent siblings) 3 siblings, 0 replies; 15+ messages in thread From: Stephen Warren @ 2013-10-24 22:13 UTC (permalink / raw) To: u-boot 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? > } ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value 2013-10-24 18:00 ` [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value Andre Heider 2013-10-24 22:13 ` Stephen Warren @ 2013-11-07 23:04 ` Anatolij Gustschin 2013-11-09 10:00 ` [U-Boot] [PATCH] lcd: allow overriding lcd_get_size() Anatolij Gustschin 2013-11-09 10:07 ` [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value Anatolij Gustschin 3 siblings, 0 replies; 15+ messages in thread From: Anatolij Gustschin @ 2013-11-07 23:04 UTC (permalink / raw) To: u-boot On Thu, 24 Oct 2013 20:00:41 +0200 Andre Heider <a.heider@gmail.com> wrote: ... > @@ -90,6 +94,7 @@ void lcd_ctrl_init(void *lcdbase) > > w = msg_setup->physical_w_h.body.resp.width; > h = msg_setup->physical_w_h.body.resp.height; > + bcm2835_pitch = msg_setup->pitch.body.resp.pitch; > > debug("bcm2835: Final resolution is %d x %d\n", w, h); > > @@ -102,4 +107,6 @@ void lcd_ctrl_init(void *lcdbase) > > void lcd_enable(void) > { > + if (bcm2835_pitch) > + lcd_line_length = bcm2835_pitch; > } setting lcd_line_length in lcd_enable() is wrong, it should happen earlier, before lcd_clear() is called in the lcd.c driver. I suggest making the lcd_get_size() in lcd.c a weak function and then provide bcm2835 specific lcd_get_size() which sets the pitch as needed: diff --git a/common/lcd.c b/common/lcd.c index 5dd7948..60faa62 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -386,8 +386,13 @@ static void test_pattern(void) /************************************************************************/ /* ** GENERIC Initialization Routines */ /************************************************************************/ - -int lcd_get_size(int *line_length) +/* + * Implement a weak default function for getting the length/size + * from panel_info parameters. With some boards/drivers the + * length might need adjustments, so allow defining the driver + * specific lcd_get_size() function. + */ +__weak int lcd_get_size(int *line_length) { *line_length = (panel_info.vl_col * NBITS(panel_info.vl_bpix)) / 8; return *line_length * panel_info.vl_row; and diff --git a/drivers/video/bcm2835.c b/drivers/video/bcm2835.c index 58a6163..45b470a 100644 --- a/drivers/video/bcm2835.c +++ b/drivers/video/bcm2835.c @@ -103,3 +103,9 @@ void lcd_ctrl_init(void *lcdbase) void lcd_enable(void) { } + +void lcd_get_size(int *line_length) +{ + *line_length = bcm2835_pitch; + return *line_length * panel_info.vl_row; +} Anatolij ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH] lcd: allow overriding lcd_get_size() 2013-10-24 18:00 ` [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value Andre Heider 2013-10-24 22:13 ` Stephen Warren 2013-11-07 23:04 ` Anatolij Gustschin @ 2013-11-09 10:00 ` Anatolij Gustschin 2013-11-12 8:44 ` Anatolij Gustschin 2013-11-09 10:07 ` [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value Anatolij Gustschin 3 siblings, 1 reply; 15+ messages in thread From: Anatolij Gustschin @ 2013-11-09 10:00 UTC (permalink / raw) To: u-boot Remove the redundant lcd_line_length initialisation which sneaked in when an earlier version of the patch of commit 6d330719 has been rebased. Some lcd drivers need to setup lcd_line_length not from the panel_info parameters but by different means. Make the lcd_get_size() weak to allow setting lcd_line_length in a driver specific way. Signed-off-by: Anatolij Gustschin <agust@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> --- common/lcd.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/common/lcd.c b/common/lcd.c index 5dd7948..56bf067 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -386,8 +386,13 @@ static void test_pattern(void) /************************************************************************/ /* ** GENERIC Initialization Routines */ /************************************************************************/ - -int lcd_get_size(int *line_length) +/* + * With most lcd drivers the line length is set up + * by calculating it from panel_info parameters. Some + * drivers need to calculate the line length differently, + * so make the function weak to allow overriding it. + */ +__weak int lcd_get_size(int *line_length) { *line_length = (panel_info.vl_col * NBITS(panel_info.vl_bpix)) / 8; return *line_length * panel_info.vl_row; @@ -495,7 +500,6 @@ static int lcd_init(void *lcdbase) debug("[LCD] Using LCD frambuffer at %p\n", lcd_base); lcd_get_size(&lcd_line_length); - lcd_line_length = (panel_info.vl_col * NBITS(panel_info.vl_bpix)) / 8; lcd_is_enabled = 1; lcd_clear(); lcd_enable(); -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH] lcd: allow overriding lcd_get_size() 2013-11-09 10:00 ` [U-Boot] [PATCH] lcd: allow overriding lcd_get_size() Anatolij Gustschin @ 2013-11-12 8:44 ` Anatolij Gustschin 0 siblings, 0 replies; 15+ messages in thread From: Anatolij Gustschin @ 2013-11-12 8:44 UTC (permalink / raw) To: u-boot On Sat, 9 Nov 2013 11:00:09 +0100 Anatolij Gustschin <agust@denx.de> wrote: > Remove the redundant lcd_line_length initialisation which > sneaked in when an earlier version of the patch of commit > 6d330719 has been rebased. > > Some lcd drivers need to setup lcd_line_length not from the > panel_info parameters but by different means. Make the > lcd_get_size() weak to allow setting lcd_line_length in > a driver specific way. > > Signed-off-by: Anatolij Gustschin <agust@denx.de> > Cc: Stephen Warren <swarren@wwwdotorg.org> > --- > common/lcd.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) applied to u-boot-video/master, thanks! Anatolij ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value 2013-10-24 18:00 ` [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value Andre Heider ` (2 preceding siblings ...) 2013-11-09 10:00 ` [U-Boot] [PATCH] lcd: allow overriding lcd_get_size() Anatolij Gustschin @ 2013-11-09 10:07 ` Anatolij Gustschin 2013-11-09 12:25 ` Andre Heider ` (2 more replies) 3 siblings, 3 replies; 15+ messages in thread From: Anatolij Gustschin @ 2013-11-09 10:07 UTC (permalink / raw) To: u-boot From: Andre Heider <a.heider@gmail.com> 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. [1] http://elinux.org/RPiconfig#Video_mode_options Signed-off-by: Andre Heider <a.heider@gmail.com> Cc: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Anatolij Gustschin <agust@denx.de> --- Changes in v3: - set lcd_line_length by driver specific lcd_get_size() since setting it in lcd_enable() is not correct. This patch version depends on patch http://patchwork.ozlabs.org/patch/289957 Please test these both patches on rpi_b, thanks! drivers/video/bcm2835.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/video/bcm2835.c b/drivers/video/bcm2835.c index 58a6163..1f18231 100644 --- a/drivers/video/bcm2835.c +++ b/drivers/video/bcm2835.c @@ -14,6 +14,8 @@ DECLARE_GLOBAL_DATA_PTR; /* Global variables that lcd.c expects to exist */ vidinfo_t panel_info; +static u32 bcm2835_pitch; + struct msg_query { struct bcm2835_mbox_hdr hdr; struct bcm2835_mbox_tag_physical_w_h physical_w_h; @@ -30,6 +32,7 @@ struct msg_setup { struct bcm2835_mbox_tag_virtual_offset virtual_offset; struct bcm2835_mbox_tag_overscan overscan; struct bcm2835_mbox_tag_allocate_buffer allocate_buffer; + struct bcm2835_mbox_tag_pitch pitch; u32 end_tag; }; @@ -80,6 +83,7 @@ void lcd_ctrl_init(void *lcdbase) msg_setup->overscan.body.req.right = 0; BCM2835_MBOX_INIT_TAG(&msg_setup->allocate_buffer, ALLOCATE_BUFFER); msg_setup->allocate_buffer.body.req.alignment = 0x100; + BCM2835_MBOX_INIT_TAG_NO_REQ(&msg_setup->pitch, GET_PITCH); ret = bcm2835_mbox_call_prop(BCM2835_MBOX_PROP_CHAN, &msg_setup->hdr); if (ret) { @@ -90,6 +94,7 @@ void lcd_ctrl_init(void *lcdbase) w = msg_setup->physical_w_h.body.resp.width; h = msg_setup->physical_w_h.body.resp.height; + bcm2835_pitch = msg_setup->pitch.body.resp.pitch; debug("bcm2835: Final resolution is %d x %d\n", w, h); @@ -103,3 +108,9 @@ void lcd_ctrl_init(void *lcdbase) void lcd_enable(void) { } + +int lcd_get_size(int *line_length) +{ + *line_length = bcm2835_pitch; + return *line_length * panel_info.vl_row; +} -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value 2013-11-09 10:07 ` [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value Anatolij Gustschin @ 2013-11-09 12:25 ` Andre Heider 2013-11-12 8:39 ` Anatolij Gustschin 2013-11-11 16:45 ` Stephen Warren 2013-11-12 8:48 ` Anatolij Gustschin 2 siblings, 1 reply; 15+ messages in thread From: Andre Heider @ 2013-11-09 12:25 UTC (permalink / raw) To: u-boot Hi Anatolij, On Sat, Nov 09, 2013 at 11:07:53AM +0100, Anatolij Gustschin wrote: > From: Andre Heider <a.heider@gmail.com> > > 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. > > [1] http://elinux.org/RPiconfig#Video_mode_options > > Signed-off-by: Andre Heider <a.heider@gmail.com> > Cc: Stephen Warren <swarren@wwwdotorg.org> > Signed-off-by: Anatolij Gustschin <agust@denx.de> > --- > Changes in v3: > - set lcd_line_length by driver specific lcd_get_size() since > setting it in lcd_enable() is not correct. This patch version > depends on patch http://patchwork.ozlabs.org/patch/289957 > Please test these both patches on rpi_b, thanks! I just tested these on my rpi, and confirm that it still works. Thanks, Andre ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value 2013-11-09 12:25 ` Andre Heider @ 2013-11-12 8:39 ` Anatolij Gustschin 0 siblings, 0 replies; 15+ messages in thread From: Anatolij Gustschin @ 2013-11-12 8:39 UTC (permalink / raw) To: u-boot Hi Andre, On Sat, 9 Nov 2013 13:25:58 +0100 Andre Heider <a.heider@gmail.com> wrote: ... > I just tested these on my rpi, and confirm that it still works. Thanks for testing! Anatolij ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value 2013-11-09 10:07 ` [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value Anatolij Gustschin 2013-11-09 12:25 ` Andre Heider @ 2013-11-11 16:45 ` Stephen Warren 2013-11-12 8:48 ` Anatolij Gustschin 2 siblings, 0 replies; 15+ messages in thread From: Stephen Warren @ 2013-11-11 16:45 UTC (permalink / raw) To: u-boot On 11/09/2013 03:07 AM, Anatolij Gustschin wrote: > From: Andre Heider <a.heider@gmail.com> > > 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. > > [1] http://elinux.org/RPiconfig#Video_mode_options Acked-by: Stephen Warren <swarren@wwwdotorg.org> ^ permalink raw reply [flat|nested] 15+ messages in thread
* [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value 2013-11-09 10:07 ` [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value Anatolij Gustschin 2013-11-09 12:25 ` Andre Heider 2013-11-11 16:45 ` Stephen Warren @ 2013-11-12 8:48 ` Anatolij Gustschin 2 siblings, 0 replies; 15+ messages in thread From: Anatolij Gustschin @ 2013-11-12 8:48 UTC (permalink / raw) To: u-boot On Sat, 9 Nov 2013 11:07:53 +0100 Anatolij Gustschin <agust@denx.de> wrote: > From: Andre Heider <a.heider@gmail.com> > > 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. > > [1] http://elinux.org/RPiconfig#Video_mode_options > > Signed-off-by: Andre Heider <a.heider@gmail.com> > Cc: Stephen Warren <swarren@wwwdotorg.org> > Signed-off-by: Anatolij Gustschin <agust@denx.de> > --- > Changes in v3: > - set lcd_line_length by driver specific lcd_get_size() since > setting it in lcd_enable() is not correct. This patch version > depends on patch http://patchwork.ozlabs.org/patch/289957 > Please test these both patches on rpi_b, thanks! > > drivers/video/bcm2835.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) applied to u-boot-video/master, thanks! Anatolij ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2013-11-12 8:48 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-10-22 20:27 [U-Boot] [PATCH 2/2] video: bcm2835: fix various output modes Andre Heider 2013-10-23 16:57 ` Stephen Warren 2013-10-23 20:06 ` Andre Heider 2013-10-24 18:14 ` Andre Heider 2013-10-24 22:08 ` Stephen Warren 2013-10-24 18:00 ` [U-Boot] [PATCH v2 2/2] video: bcm2835: respect the pitch value Andre Heider 2013-10-24 22:13 ` Stephen Warren 2013-11-07 23:04 ` Anatolij Gustschin 2013-11-09 10:00 ` [U-Boot] [PATCH] lcd: allow overriding lcd_get_size() Anatolij Gustschin 2013-11-12 8:44 ` Anatolij Gustschin 2013-11-09 10:07 ` [U-Boot] [PATCH v3 2/2] video: bcm2835: respect the pitch value Anatolij Gustschin 2013-11-09 12:25 ` Andre Heider 2013-11-12 8:39 ` Anatolij Gustschin 2013-11-11 16:45 ` Stephen Warren 2013-11-12 8:48 ` Anatolij Gustschin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox