diff mbox series

[3/5] drm/bridge: ti-tfp410: Set connector type based on DT connector node

Message ID 20181206202610.18167-4-laurent.pinchart@ideasonboard.com (mailing list archive)
State New, archived
Headers show
Series drm: ti-tfp410 improvements | expand

Commit Message

Laurent Pinchart Dec. 6, 2018, 8:26 p.m. UTC
The TI TFP410 is a DVI encoder, not a full HDMI encoder. Its output can
be routed to a DVI-D connector, even if in many cases embedded systems
will use an HDMI connector to carry the DVI signals.

Instead of hardcoding the connector type to HDMI, retrieve the connector
type from its DT node.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/bridge/ti-tfp410.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Jyri Sarha Dec. 11, 2018, 1 p.m. UTC | #1
On 06/12/2018 22:26, Laurent Pinchart wrote:
> The TI TFP410 is a DVI encoder, not a full HDMI encoder. Its output can
> be routed to a DVI-D connector, even if in many cases embedded systems
> will use an HDMI connector to carry the DVI signals.
> 
> Instead of hardcoding the connector type to HDMI, retrieve the connector
> type from its DT node.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---

Reviewed-by: Jyri Sarha <jsarha@ti.com>

>  drivers/gpu/drm/bridge/ti-tfp410.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
> index c3e32138c6bb..e4280f5af9f5 100644
> --- a/drivers/gpu/drm/bridge/ti-tfp410.c
> +++ b/drivers/gpu/drm/bridge/ti-tfp410.c
> @@ -27,6 +27,7 @@
>  struct tfp410 {
>  	struct drm_bridge	bridge;
>  	struct drm_connector	connector;
> +	unsigned int		connector_type;
>  
>  	struct i2c_adapter	*ddc;
>  	struct gpio_desc	*hpd;
> @@ -126,7 +127,7 @@ static int tfp410_attach(struct drm_bridge *bridge)
>  	drm_connector_helper_add(&dvi->connector,
>  				 &tfp410_con_helper_funcs);
>  	ret = drm_connector_init(bridge->dev, &dvi->connector,
> -				 &tfp410_con_funcs, DRM_MODE_CONNECTOR_HDMIA);
> +				 &tfp410_con_funcs, dvi->connector_type);
>  	if (ret) {
>  		dev_err(dvi->dev, "drm_connector_init() failed: %d\n", ret);
>  		return ret;
> @@ -172,6 +173,11 @@ static int tfp410_get_connector_properties(struct tfp410 *dvi)
>  	if (!connector_node)
>  		return -ENODEV;
>  
> +	if (of_device_is_compatible(connector_node, "hdmi-connector"))
> +		dvi->connector_type = DRM_MODE_CONNECTOR_HDMIA;
> +	else
> +		dvi->connector_type = DRM_MODE_CONNECTOR_DVID;
> +
>  	dvi->hpd = fwnode_get_named_gpiod(&connector_node->fwnode,
>  					"hpd-gpios", 0, GPIOD_IN, "hpd");
>  	if (IS_ERR(dvi->hpd)) {
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c
index c3e32138c6bb..e4280f5af9f5 100644
--- a/drivers/gpu/drm/bridge/ti-tfp410.c
+++ b/drivers/gpu/drm/bridge/ti-tfp410.c
@@ -27,6 +27,7 @@ 
 struct tfp410 {
 	struct drm_bridge	bridge;
 	struct drm_connector	connector;
+	unsigned int		connector_type;
 
 	struct i2c_adapter	*ddc;
 	struct gpio_desc	*hpd;
@@ -126,7 +127,7 @@  static int tfp410_attach(struct drm_bridge *bridge)
 	drm_connector_helper_add(&dvi->connector,
 				 &tfp410_con_helper_funcs);
 	ret = drm_connector_init(bridge->dev, &dvi->connector,
-				 &tfp410_con_funcs, DRM_MODE_CONNECTOR_HDMIA);
+				 &tfp410_con_funcs, dvi->connector_type);
 	if (ret) {
 		dev_err(dvi->dev, "drm_connector_init() failed: %d\n", ret);
 		return ret;
@@ -172,6 +173,11 @@  static int tfp410_get_connector_properties(struct tfp410 *dvi)
 	if (!connector_node)
 		return -ENODEV;
 
+	if (of_device_is_compatible(connector_node, "hdmi-connector"))
+		dvi->connector_type = DRM_MODE_CONNECTOR_HDMIA;
+	else
+		dvi->connector_type = DRM_MODE_CONNECTOR_DVID;
+
 	dvi->hpd = fwnode_get_named_gpiod(&connector_node->fwnode,
 					"hpd-gpios", 0, GPIOD_IN, "hpd");
 	if (IS_ERR(dvi->hpd)) {