diff mbox

[1/6,v2] drm/omap: add new connector types

Message ID 1494314187-12816-1-git-send-email-tomi.valkeinen@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Tomi Valkeinen May 9, 2017, 7:16 a.m. UTC
We have been using DRM_MODE_CONNECTOR_Unknown for many of our outputs
because there has not been a proper connector type for them.

We now have connector type for DPI so let's take it into use. At the
same time, add better connector types for the remaining outputs too.

This patch sets the following outputs to use the following connector
types:

DPI -> DPI
DBI -> DPI (MIPI DBI is very similar to DPI at the bus level)
SDI -> LVDS (SDI, TI Flatlink 3G, is a type of LVDS)
VENC -> SVIDEO (it could also be composite, but we don't have that
        information here, so svideo should be quite good match)

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/gpu/drm/omapdrm/omap_drv.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Jyri Sarha May 9, 2017, 7:36 a.m. UTC | #1
On 05/09/17 10:16, Tomi Valkeinen wrote:
> We have been using DRM_MODE_CONNECTOR_Unknown for many of our outputs
> because there has not been a proper connector type for them.
> 
> We now have connector type for DPI so let's take it into use. At the
> same time, add better connector types for the remaining outputs too.
> 
> This patch sets the following outputs to use the following connector
> types:
> 
> DPI -> DPI
> DBI -> DPI (MIPI DBI is very similar to DPI at the bus level)
> SDI -> LVDS (SDI, TI Flatlink 3G, is a type of LVDS)
> VENC -> SVIDEO (it could also be composite, but we don't have that
>         information here, so svideo should be quite good match)

I don't think the above comment is valid anymore.

> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---
>  drivers/gpu/drm/omapdrm/omap_drv.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index e1f47f0b3ccf..16c537837742 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -214,6 +214,19 @@ static int get_connector_type(struct omap_dss_device *dssdev)
>  		return DRM_MODE_CONNECTOR_DVID;
>  	case OMAP_DISPLAY_TYPE_DSI:
>  		return DRM_MODE_CONNECTOR_DSI;
> +	case OMAP_DISPLAY_TYPE_DPI:
> +	case OMAP_DISPLAY_TYPE_DBI:
> +		return DRM_MODE_CONNECTOR_DPI;
> +	case OMAP_DISPLAY_TYPE_VENC:
> +		if (of_device_is_compatible(dssdev->dev->of_node,
> +		    "omapdss,svideo-connector"))
> +			return DRM_MODE_CONNECTOR_SVIDEO;
> +		if (of_device_is_compatible(dssdev->dev->of_node,
> +		    "omapdss,composite-video-connector"))
> +			return DRM_MODE_CONNECTOR_Composite;
> +		return DRM_MODE_CONNECTOR_Unknown;
> +	case OMAP_DISPLAY_TYPE_SDI:
> +		return DRM_MODE_CONNECTOR_LVDS;
>  	default:
>  		return DRM_MODE_CONNECTOR_Unknown;
>  	}
>
Tomi Valkeinen May 9, 2017, 7:41 a.m. UTC | #2
On 09/05/17 10:36, Jyri Sarha wrote:
> On 05/09/17 10:16, Tomi Valkeinen wrote:
>> We have been using DRM_MODE_CONNECTOR_Unknown for many of our outputs
>> because there has not been a proper connector type for them.
>>
>> We now have connector type for DPI so let's take it into use. At the
>> same time, add better connector types for the remaining outputs too.
>>
>> This patch sets the following outputs to use the following connector
>> types:
>>
>> DPI -> DPI
>> DBI -> DPI (MIPI DBI is very similar to DPI at the bus level)
>> SDI -> LVDS (SDI, TI Flatlink 3G, is a type of LVDS)
>> VENC -> SVIDEO (it could also be composite, but we don't have that
>>         information here, so svideo should be quite good match)
> 
> I don't think the above comment is valid anymore.

Ah, right =). I'll drop that from the desc.

 Tomi
Laurent Pinchart May 9, 2017, 10:35 p.m. UTC | #3
Hi Tomi,

Thank you for the patch.

On Tuesday 09 May 2017 10:16:27 Tomi Valkeinen wrote:
> We have been using DRM_MODE_CONNECTOR_Unknown for many of our outputs
> because there has not been a proper connector type for them.
> 
> We now have connector type for DPI so let's take it into use. At the
> same time, add better connector types for the remaining outputs too.
> 
> This patch sets the following outputs to use the following connector
> types:
> 
> DPI -> DPI
> DBI -> DPI (MIPI DBI is very similar to DPI at the bus level)
> SDI -> LVDS (SDI, TI Flatlink 3G, is a type of LVDS)
> VENC -> SVIDEO (it could also be composite, but we don't have that
>         information here, so svideo should be quite good match)
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---
>  drivers/gpu/drm/omapdrm/omap_drv.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c
> b/drivers/gpu/drm/omapdrm/omap_drv.c index e1f47f0b3ccf..16c537837742
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -214,6 +214,19 @@ static int get_connector_type(struct omap_dss_device
> *dssdev) return DRM_MODE_CONNECTOR_DVID;
>  	case OMAP_DISPLAY_TYPE_DSI:
>  		return DRM_MODE_CONNECTOR_DSI;
> +	case OMAP_DISPLAY_TYPE_DPI:
> +	case OMAP_DISPLAY_TYPE_DBI:
> +		return DRM_MODE_CONNECTOR_DPI;
> +	case OMAP_DISPLAY_TYPE_VENC:
> +		if (of_device_is_compatible(dssdev->dev->of_node,
> +		    "omapdss,svideo-connector"))
> +			return DRM_MODE_CONNECTOR_SVIDEO;
> +		if (of_device_is_compatible(dssdev->dev->of_node,
> +		    "omapdss,composite-video-connector"))
> +			return DRM_MODE_CONNECTOR_Composite;

Checking the compat string here feels like a bit of a hack to me. Wouldn't it 
be simpler and cleaner to add the connector type to the omap_dss_device 
structure ? That's more work though, so as a first step I think I could 
tolerate this hack if you really feel lazy ;-) Although, maybe we should just 
return SVIDEO unconditionally for VENC for now and fix that later.

> +		return DRM_MODE_CONNECTOR_Unknown;
> +	case OMAP_DISPLAY_TYPE_SDI:
> +		return DRM_MODE_CONNECTOR_LVDS;
>  	default:
>  		return DRM_MODE_CONNECTOR_Unknown;
>  	}
Tomi Valkeinen May 10, 2017, 6:59 a.m. UTC | #4
On 10/05/17 01:35, Laurent Pinchart wrote:
> Hi Tomi,
> 
> Thank you for the patch.
> 
> On Tuesday 09 May 2017 10:16:27 Tomi Valkeinen wrote:
>> We have been using DRM_MODE_CONNECTOR_Unknown for many of our outputs
>> because there has not been a proper connector type for them.
>>
>> We now have connector type for DPI so let's take it into use. At the
>> same time, add better connector types for the remaining outputs too.
>>
>> This patch sets the following outputs to use the following connector
>> types:
>>
>> DPI -> DPI
>> DBI -> DPI (MIPI DBI is very similar to DPI at the bus level)
>> SDI -> LVDS (SDI, TI Flatlink 3G, is a type of LVDS)
>> VENC -> SVIDEO (it could also be composite, but we don't have that
>>         information here, so svideo should be quite good match)
>>
>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
>> ---
>>  drivers/gpu/drm/omapdrm/omap_drv.c | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c
>> b/drivers/gpu/drm/omapdrm/omap_drv.c index e1f47f0b3ccf..16c537837742
>> 100644
>> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
>> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
>> @@ -214,6 +214,19 @@ static int get_connector_type(struct omap_dss_device
>> *dssdev) return DRM_MODE_CONNECTOR_DVID;
>>  	case OMAP_DISPLAY_TYPE_DSI:
>>  		return DRM_MODE_CONNECTOR_DSI;
>> +	case OMAP_DISPLAY_TYPE_DPI:
>> +	case OMAP_DISPLAY_TYPE_DBI:
>> +		return DRM_MODE_CONNECTOR_DPI;
>> +	case OMAP_DISPLAY_TYPE_VENC:
>> +		if (of_device_is_compatible(dssdev->dev->of_node,
>> +		    "omapdss,svideo-connector"))
>> +			return DRM_MODE_CONNECTOR_SVIDEO;
>> +		if (of_device_is_compatible(dssdev->dev->of_node,
>> +		    "omapdss,composite-video-connector"))
>> +			return DRM_MODE_CONNECTOR_Composite;
> 
> Checking the compat string here feels like a bit of a hack to me. Wouldn't it 
> be simpler and cleaner to add the connector type to the omap_dss_device 
> structure ? That's more work though, so as a first step I think I could 
> tolerate this hack if you really feel lazy ;-) Although, maybe we should just 
> return SVIDEO unconditionally for VENC for now and fix that later.

Yes, it looks a bit ugly to me too. I've been reluctant to add more
things to omap_dss_device and to the panel/encoder drivers, as I think
each thing there will make it more difficult to convert driver the model
to more DRM'ish model.

So, I think I'll just use the SVIDEO as I had originally.

 Tomi
diff mbox

Patch

diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index e1f47f0b3ccf..16c537837742 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -214,6 +214,19 @@  static int get_connector_type(struct omap_dss_device *dssdev)
 		return DRM_MODE_CONNECTOR_DVID;
 	case OMAP_DISPLAY_TYPE_DSI:
 		return DRM_MODE_CONNECTOR_DSI;
+	case OMAP_DISPLAY_TYPE_DPI:
+	case OMAP_DISPLAY_TYPE_DBI:
+		return DRM_MODE_CONNECTOR_DPI;
+	case OMAP_DISPLAY_TYPE_VENC:
+		if (of_device_is_compatible(dssdev->dev->of_node,
+		    "omapdss,svideo-connector"))
+			return DRM_MODE_CONNECTOR_SVIDEO;
+		if (of_device_is_compatible(dssdev->dev->of_node,
+		    "omapdss,composite-video-connector"))
+			return DRM_MODE_CONNECTOR_Composite;
+		return DRM_MODE_CONNECTOR_Unknown;
+	case OMAP_DISPLAY_TYPE_SDI:
+		return DRM_MODE_CONNECTOR_LVDS;
 	default:
 		return DRM_MODE_CONNECTOR_Unknown;
 	}