mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-24 14:25:56 +00:00
video: Allow driver to specify the line length
At present line_length is always calculated in video_post_probe(). But some hardware may use a different line length, e.g. with a 1366-wide display. Allow the driver to set this value if needed. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
8f5bfb7615
commit
06696ebe67
3 changed files with 7 additions and 2 deletions
|
@ -331,6 +331,7 @@ int vbe_setup_video_priv(struct vesa_mode_info *vesa,
|
||||||
return log_msg_ret("No x resolution", -ENXIO);
|
return log_msg_ret("No x resolution", -ENXIO);
|
||||||
uc_priv->xsize = vesa->x_resolution;
|
uc_priv->xsize = vesa->x_resolution;
|
||||||
uc_priv->ysize = vesa->y_resolution;
|
uc_priv->ysize = vesa->y_resolution;
|
||||||
|
uc_priv->line_length = vesa->bytes_per_scanline;
|
||||||
switch (vesa->bits_per_pixel) {
|
switch (vesa->bits_per_pixel) {
|
||||||
case 32:
|
case 32:
|
||||||
case 24:
|
case 24:
|
||||||
|
|
|
@ -226,7 +226,9 @@ static int video_post_probe(struct udevice *dev)
|
||||||
|
|
||||||
/* Set up the line and display size */
|
/* Set up the line and display size */
|
||||||
priv->fb = map_sysmem(plat->base, plat->size);
|
priv->fb = map_sysmem(plat->base, plat->size);
|
||||||
|
if (!priv->line_length)
|
||||||
priv->line_length = priv->xsize * VNBYTES(priv->bpix);
|
priv->line_length = priv->xsize * VNBYTES(priv->bpix);
|
||||||
|
|
||||||
priv->fb_size = priv->line_length * priv->ysize;
|
priv->fb_size = priv->line_length * priv->ysize;
|
||||||
|
|
||||||
/* Set up colors */
|
/* Set up colors */
|
||||||
|
|
|
@ -61,7 +61,9 @@ enum video_log2_bpp {
|
||||||
* @font_size: Font size in pixels (0 to use a default value)
|
* @font_size: Font size in pixels (0 to use a default value)
|
||||||
* @fb: Frame buffer
|
* @fb: Frame buffer
|
||||||
* @fb_size: Frame buffer size
|
* @fb_size: Frame buffer size
|
||||||
* @line_length: Length of each frame buffer line, in bytes
|
* @line_length: Length of each frame buffer line, in bytes. This can be
|
||||||
|
* set by the driver, but if not, the uclass will set it after
|
||||||
|
* probing
|
||||||
* @colour_fg: Foreground colour (pixel value)
|
* @colour_fg: Foreground colour (pixel value)
|
||||||
* @colour_bg: Background colour (pixel value)
|
* @colour_bg: Background colour (pixel value)
|
||||||
* @flush_dcache: true to enable flushing of the data cache after
|
* @flush_dcache: true to enable flushing of the data cache after
|
||||||
|
|
Loading…
Add table
Reference in a new issue