[PATCH 3/8] drm: bridge: thc63lvd1024: Add support for LVDS mode map

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Apr 23 12:12:54 UTC 2018


Hi Jacopo,

On Monday, 23 April 2018 10:41:56 EEST jacopo mondi wrote:
> On Sun, Apr 22, 2018 at 10:02:51PM +0200, Peter Rosin wrote:
> > On 2018-04-19 11:31, Jacopo Mondi wrote:
> >> The THC63LVD1024 LVDS to RGB bridge supports two different LVDS mapping
> >> modes, selectable by means of an external pin.
> >> 
> >> Add support for configurable LVDS input mapping modes, using the newly
> >> introduced support for bridge input image formats.
> >> 
> >> Signed-off-by: Jacopo Mondi <jacopo+renesas at jmondi.org>
> >> ---
> >> 
> >>  drivers/gpu/drm/bridge/thc63lvd1024.c | 41 ++++++++++++++++++++++++++++
> >>  1 file changed, 41 insertions(+)
> >> 
> >> diff --git a/drivers/gpu/drm/bridge/thc63lvd1024.c
> >> b/drivers/gpu/drm/bridge/thc63lvd1024.c index 48527f8..a3071a1 100644
> >> --- a/drivers/gpu/drm/bridge/thc63lvd1024.c
> >> +++ b/drivers/gpu/drm/bridge/thc63lvd1024.c

[snip]

> >> +static int thc63_set_bus_fmt(struct thc63_dev *thc63)
> >> +{
> >> +	u32 bus_fmt;
> >> +	u32 map;
> >> +	int ret;
> >> +
> >> +	ret = of_property_read_u32(thc63->dev->of_node, "thine,map", &map);
> >> +	if (ret) {
> >> +		dev_err(thc63->dev,
> >> +			"Unable to parse property \"thine,map\": %d\n", ret);
> >> +		return ret;
> >> +	}
> >> +
> >> +	switch (map) {
> >> +	case THC63_LVDS_MAP_MODE1:
> >> +		bus_fmt = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA;
> >> +		break;
> >> +	case THC63_LVDS_MAP_MODE2:
> >> +		bus_fmt = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG;
> > 
> > Why do you assume rgb888/1x7x4 here? It might as well be rgb666/1x7x3
> > or rgb101010/1x7x5, no?
> 
> I should combine the 'map' pin input mode property with the 'bus_width' one
> to find that out probably.

Yes, but that could also be left for later, when the need to support those 
formats arise, especially given that include/uapi/linux/media-bus-format.h has 
no 1x7x5 formats yet.

> >> +		break;
> >> +	default:
> >> +		dev_err(thc63->dev,
> >> +			"Invalid value for property \"thine,map\": %u\n", map);
> >> +		return -EINVAL;
> >> +	}
> >> +
> >> +	drm_bridge_set_bus_formats(&thc63->bridge, &bus_fmt, 1);
> >> +
> >> +	return 0;
> >> +}

-- 
Regards,

Laurent Pinchart





More information about the dri-devel mailing list