Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71835caa authored by Thierry Reding's avatar Thierry Reding
Browse files

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: default avatarThierry Reding <treding@nvidia.com>
parent 7b2c2845
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -253,6 +253,19 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
	cmd.height = sizes->surface_height;
	cmd.pitches[0] = round_up(sizes->surface_width * bytes_per_pixel,
				  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,
						     sizes->surface_depth);