mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	drm/omap: DISPC: support double-pixel mode
We need double-pixel mode (pixel repetition) for interlace modes. This patch adds the necessary support to DISPC to output double-pixel mode. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
		
							parent
							
								
									61f3c40b48
								
							
						
					
					
						commit
						3a38ed53be
					
				
					 2 changed files with 10 additions and 0 deletions
				
			
		|  | @ -104,6 +104,8 @@ struct dispc_features { | |||
| 	bool supports_sync_align:1; | ||||
| 
 | ||||
| 	bool has_writeback:1; | ||||
| 
 | ||||
| 	bool supports_double_pixel:1; | ||||
| }; | ||||
| 
 | ||||
| #define DISPC_MAX_NR_FIFOS 5 | ||||
|  | @ -3287,6 +3289,10 @@ void dispc_mgr_set_timings(enum omap_channel channel, | |||
| 	} else { | ||||
| 		if (t.interlace) | ||||
| 			t.y_res /= 2; | ||||
| 
 | ||||
| 		if (dispc.feat->supports_double_pixel) | ||||
| 			REG_FLD_MOD(DISPC_CONTROL, t.double_pixel ? 1 : 0, | ||||
| 				19, 17); | ||||
| 	} | ||||
| 
 | ||||
| 	dispc_mgr_set_size(channel, t.x_res, t.y_res); | ||||
|  | @ -3951,6 +3957,7 @@ static const struct dispc_features omap44xx_dispc_feats = { | |||
| 	.set_max_preload	=	true, | ||||
| 	.supports_sync_align	=	true, | ||||
| 	.has_writeback		=	true, | ||||
| 	.supports_double_pixel	=	true, | ||||
| }; | ||||
| 
 | ||||
| static const struct dispc_features omap54xx_dispc_feats = { | ||||
|  | @ -3974,6 +3981,7 @@ static const struct dispc_features omap54xx_dispc_feats = { | |||
| 	.set_max_preload	=	true, | ||||
| 	.supports_sync_align	=	true, | ||||
| 	.has_writeback		=	true, | ||||
| 	.supports_double_pixel	=	true, | ||||
| }; | ||||
| 
 | ||||
| static int dispc_init_features(struct platform_device *pdev) | ||||
|  |  | |||
|  | @ -367,6 +367,8 @@ struct omap_video_timings { | |||
| 	enum omap_dss_signal_level de_level; | ||||
| 	/* Pixel clock edges to drive HSYNC and VSYNC signals */ | ||||
| 	enum omap_dss_signal_edge sync_pclk_edge; | ||||
| 
 | ||||
| 	bool double_pixel; | ||||
| }; | ||||
| 
 | ||||
| /* Hardcoded timings for tv modes. Venc only uses these to
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Tomi Valkeinen
						Tomi Valkeinen