mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-26 14:14:01 +08:00
drm/tegra: fb: Force alpha formats
Tegra20 and Tegra30 don't actually support the 24-bit RGB formats that don't have an alpha component. In order to allow the fbdev emulation to run on those chips, force the 32-bit RGBA formats. Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
7b2c2845e5
commit
71835caa00
@ -253,6 +253,19 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
|
|||||||
cmd.height = sizes->surface_height;
|
cmd.height = sizes->surface_height;
|
||||||
cmd.pitches[0] = round_up(sizes->surface_width * bytes_per_pixel,
|
cmd.pitches[0] = round_up(sizes->surface_width * bytes_per_pixel,
|
||||||
tegra->pitch_align);
|
tegra->pitch_align);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Early generations of Tegra (Tegra20 and Tegra30) do not support any
|
||||||
|
* of the X* or *X formats, only their A* or *A equivalents. Force the
|
||||||
|
* legacy framebuffer format to include an alpha component so that the
|
||||||
|
* framebuffer emulation can be supported on all generations.
|
||||||
|
*/
|
||||||
|
if (sizes->surface_bpp == 32 && sizes->surface_depth == 24)
|
||||||
|
sizes->surface_depth = 32;
|
||||||
|
|
||||||
|
if (sizes->surface_bpp == 16 && sizes->surface_depth == 15)
|
||||||
|
sizes->surface_depth = 16;
|
||||||
|
|
||||||
cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
|
cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
|
||||||
sizes->surface_depth);
|
sizes->surface_depth);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user