In dual-link mode the LVDS0 encoder transmits even-numbered pixels, and sends odd-numbered pixels to the LVDS1 encoder for transmission on a separate link. To implement support for this mode of operation, determine if the LVDS connection operates in dual-link mode by querying the next device in the pipeline, locate the companion encoder, and control it directly through its bridge operations. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org> Tested-by: Jacopo Mondi <jacopo+renesas@jmondi.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
		
			
				
	
	
		
			33 lines
		
	
	
		
			848 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			848 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
/*
 | 
						|
 * rcar_lvds.h  --  R-Car LVDS Encoder
 | 
						|
 *
 | 
						|
 * Copyright (C) 2013-2018 Renesas Electronics Corporation
 | 
						|
 *
 | 
						|
 * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __RCAR_LVDS_H__
 | 
						|
#define __RCAR_LVDS_H__
 | 
						|
 | 
						|
struct drm_bridge;
 | 
						|
 | 
						|
#if IS_ENABLED(CONFIG_DRM_RCAR_LVDS)
 | 
						|
int rcar_lvds_clk_enable(struct drm_bridge *bridge, unsigned long freq);
 | 
						|
void rcar_lvds_clk_disable(struct drm_bridge *bridge);
 | 
						|
bool rcar_lvds_dual_link(struct drm_bridge *bridge);
 | 
						|
#else
 | 
						|
static inline int rcar_lvds_clk_enable(struct drm_bridge *bridge,
 | 
						|
				       unsigned long freq)
 | 
						|
{
 | 
						|
	return -ENOSYS;
 | 
						|
}
 | 
						|
static inline void rcar_lvds_clk_disable(struct drm_bridge *bridge) { }
 | 
						|
static inline bool rcar_lvds_dual_link(struct drm_bridge *bridge)
 | 
						|
{
 | 
						|
	return false;
 | 
						|
}
 | 
						|
#endif /* CONFIG_DRM_RCAR_LVDS */
 | 
						|
 | 
						|
#endif /* __RCAR_LVDS_H__ */
 |