dm: video: correctly clean background in 16bit mode
In 16 bit mode we have to copy two bytes per pixels repeatedly and not four. Otherwise we will see a striped pattern. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
3aeb0cbe12
commit
d7a75d3cd7
@ -91,14 +91,26 @@ void video_clear(struct udevice *dev)
|
||||
{
|
||||
struct video_priv *priv = dev_get_uclass_priv(dev);
|
||||
|
||||
if (priv->bpix == VIDEO_BPP32) {
|
||||
switch (priv->bpix) {
|
||||
case VIDEO_BPP16: {
|
||||
u16 *ppix = priv->fb;
|
||||
u16 *end = priv->fb + priv->fb_size;
|
||||
|
||||
while (ppix < end)
|
||||
*ppix++ = priv->colour_bg;
|
||||
break;
|
||||
}
|
||||
case VIDEO_BPP32: {
|
||||
u32 *ppix = priv->fb;
|
||||
u32 *end = priv->fb + priv->fb_size;
|
||||
|
||||
while (ppix < end)
|
||||
*ppix++ = priv->colour_bg;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
memset(priv->fb, priv->colour_bg, priv->fb_size);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user