[v2] drm: also move DSI panels to the front of the connector list
diff mbox

Message ID 1479378548-32695-1-git-send-email-jani.nikula@intel.com
State New
Headers show

Commit Message

Jani Nikula Nov. 17, 2016, 10:29 a.m. UTC
We've overlooked adding DSI panels to the front of the connector
list. This seems to be the right thing to do, and I suspect this might
fix some issues, although I currently have no evidence to support this.

v2: also git add the comment change

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_modeset_helper.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Daniel Vetter Nov. 17, 2016, 10:59 a.m. UTC | #1
On Thu, Nov 17, 2016 at 12:29:08PM +0200, Jani Nikula wrote:
> We've overlooked adding DSI panels to the front of the connector
> list. This seems to be the right thing to do, and I suspect this might
> fix some issues, although I currently have no evidence to support this.
> 
> v2: also git add the comment change
> 
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Applied to drm-misc, thx.
-Daniel

> ---
>  drivers/gpu/drm/drm_modeset_helper.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
> index 2f452b3dd40e..eba1c6c72acd 100644
> --- a/drivers/gpu/drm/drm_modeset_helper.c
> +++ b/drivers/gpu/drm/drm_modeset_helper.c
> @@ -38,7 +38,7 @@
>   * Some userspace presumes that the first connected connector is the main
>   * display, where it's supposed to display e.g. the login screen. For
>   * laptops, this should be the main panel. Use this function to sort all
> - * (eDP/LVDS) panels to the front of the connector list, instead of
> + * (eDP/LVDS/DSI) panels to the front of the connector list, instead of
>   * painstakingly trying to initialize them in the right order.
>   */
>  void drm_helper_move_panel_connectors_to_head(struct drm_device *dev)
> @@ -51,7 +51,8 @@ void drm_helper_move_panel_connectors_to_head(struct drm_device *dev)
>  	list_for_each_entry_safe(connector, tmp,
>  				 &dev->mode_config.connector_list, head) {
>  		if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS ||
> -		    connector->connector_type == DRM_MODE_CONNECTOR_eDP)
> +		    connector->connector_type == DRM_MODE_CONNECTOR_eDP ||
> +		    connector->connector_type == DRM_MODE_CONNECTOR_DSI)
>  			list_move_tail(&connector->head, &panel_list);
>  	}
>  
> -- 
> 2.1.4
>
Andrzej Hajda Nov. 17, 2016, 12:16 p.m. UTC | #2
On 17.11.2016 11:29, Jani Nikula wrote:
> We've overlooked adding DSI panels to the front of the connector
> list. This seems to be the right thing to do, and I suspect this might
> fix some issues, although I currently have no evidence to support this.
>
> v2: also git add the comment change
>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>

Out of curiosity, why driver (i915) do not create connectors
just in proper order instead of sorting them later.


--
Regards
Andrzej

> ---
>  drivers/gpu/drm/drm_modeset_helper.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
> index 2f452b3dd40e..eba1c6c72acd 100644
> --- a/drivers/gpu/drm/drm_modeset_helper.c
> +++ b/drivers/gpu/drm/drm_modeset_helper.c
> @@ -38,7 +38,7 @@
>   * Some userspace presumes that the first connected connector is the main
>   * display, where it's supposed to display e.g. the login screen. For
>   * laptops, this should be the main panel. Use this function to sort all
> - * (eDP/LVDS) panels to the front of the connector list, instead of
> + * (eDP/LVDS/DSI) panels to the front of the connector list, instead of
>   * painstakingly trying to initialize them in the right order.
>   */
>  void drm_helper_move_panel_connectors_to_head(struct drm_device *dev)
> @@ -51,7 +51,8 @@ void drm_helper_move_panel_connectors_to_head(struct drm_device *dev)
>  	list_for_each_entry_safe(connector, tmp,
>  				 &dev->mode_config.connector_list, head) {
>  		if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS ||
> -		    connector->connector_type == DRM_MODE_CONNECTOR_eDP)
> +		    connector->connector_type == DRM_MODE_CONNECTOR_eDP ||
> +		    connector->connector_type == DRM_MODE_CONNECTOR_DSI)
>  			list_move_tail(&connector->head, &panel_list);
>  	}
>
Jani Nikula Nov. 17, 2016, 12:21 p.m. UTC | #3
On Thu, 17 Nov 2016, Andrzej Hajda <a.hajda@samsung.com> wrote:
> On 17.11.2016 11:29, Jani Nikula wrote:
>> We've overlooked adding DSI panels to the front of the connector
>> list. This seems to be the right thing to do, and I suspect this might
>> fix some issues, although I currently have no evidence to support this.
>>
>> v2: also git add the comment change
>>
>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
>
> Out of curiosity, why driver (i915) do not create connectors
> just in proper order instead of sorting them later.

commit 270b30420c5e0d5f779aa76882367f9265c5aa7d
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Sat Oct 27 15:52:05 2012 +0200

    drm/i915: move panel connectors to the front
    
    This essentially reverts
    
    commit cb0953d734348e8862d6d7edc666cfb3bf6d8fae
    Author: Adam Jackson <ajax@redhat.com>
    Date:   Fri Jul 16 14:46:29 2010 -0400
    
        drm/i915: Initialize LVDS and eDP outputs before anything else
    
    simply because it doesn't scale: It misses SDVO and DVO panels,
    and now with DDI encoders on haswell this is becoming unmanageable.
    
    Instead we simply sort the connector list after everything is
    set up.
    
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

>
>
> --
> Regards
> Andrzej
>
>> ---
>>  drivers/gpu/drm/drm_modeset_helper.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
>> index 2f452b3dd40e..eba1c6c72acd 100644
>> --- a/drivers/gpu/drm/drm_modeset_helper.c
>> +++ b/drivers/gpu/drm/drm_modeset_helper.c
>> @@ -38,7 +38,7 @@
>>   * Some userspace presumes that the first connected connector is the main
>>   * display, where it's supposed to display e.g. the login screen. For
>>   * laptops, this should be the main panel. Use this function to sort all
>> - * (eDP/LVDS) panels to the front of the connector list, instead of
>> + * (eDP/LVDS/DSI) panels to the front of the connector list, instead of
>>   * painstakingly trying to initialize them in the right order.
>>   */
>>  void drm_helper_move_panel_connectors_to_head(struct drm_device *dev)
>> @@ -51,7 +51,8 @@ void drm_helper_move_panel_connectors_to_head(struct drm_device *dev)
>>  	list_for_each_entry_safe(connector, tmp,
>>  				 &dev->mode_config.connector_list, head) {
>>  		if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS ||
>> -		    connector->connector_type == DRM_MODE_CONNECTOR_eDP)
>> +		    connector->connector_type == DRM_MODE_CONNECTOR_eDP ||
>> +		    connector->connector_type == DRM_MODE_CONNECTOR_DSI)
>>  			list_move_tail(&connector->head, &panel_list);
>>  	}
>>  
>
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Patch
diff mbox

diff --git a/drivers/gpu/drm/drm_modeset_helper.c b/drivers/gpu/drm/drm_modeset_helper.c
index 2f452b3dd40e..eba1c6c72acd 100644
--- a/drivers/gpu/drm/drm_modeset_helper.c
+++ b/drivers/gpu/drm/drm_modeset_helper.c
@@ -38,7 +38,7 @@ 
  * Some userspace presumes that the first connected connector is the main
  * display, where it's supposed to display e.g. the login screen. For
  * laptops, this should be the main panel. Use this function to sort all
- * (eDP/LVDS) panels to the front of the connector list, instead of
+ * (eDP/LVDS/DSI) panels to the front of the connector list, instead of
  * painstakingly trying to initialize them in the right order.
  */
 void drm_helper_move_panel_connectors_to_head(struct drm_device *dev)
@@ -51,7 +51,8 @@  void drm_helper_move_panel_connectors_to_head(struct drm_device *dev)
 	list_for_each_entry_safe(connector, tmp,
 				 &dev->mode_config.connector_list, head) {
 		if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS ||
-		    connector->connector_type == DRM_MODE_CONNECTOR_eDP)
+		    connector->connector_type == DRM_MODE_CONNECTOR_eDP ||
+		    connector->connector_type == DRM_MODE_CONNECTOR_DSI)
 			list_move_tail(&connector->head, &panel_list);
 	}