mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02: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
					
				
					 1 changed files with 13 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue