Hi Daniel, Thanks for the patch.
On Saturday 27 October 2012 15:52:04 Daniel Vetter wrote: > Userspace seems to like this, see > > commit cb0953d734348e8862d6d7edc666cfb3bf6d8fae > Author: Adam Jackson <ajax at redhat.com> > Date: Fri Jul 16 14:46:29 2010 -0400 > > drm/i915: Initialize LVDS and eDP outputs before anything else > > This makes them sort to the front in X, which makes them likely to be > the primary outputs if you haven't specified a preference in your DE, > which is likely to be what you want. > > Signed-off-by: Adam Jackson <ajax at redhat.com> > Signed-off-by: Eric Anholt <eric at anholt.net> > > Sorting the connector list after the fact is much easier than trying > to be clever with the init sequence. > > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch> > --- > drivers/gpu/drm/drm_crtc_helper.c | 18 ++++++++++++++++++ > include/drm/drm_crtc_helper.h | 2 ++ > 2 files changed, 20 insertions(+) You forgot Documentation/DocBook/drm.tmpl :-) > > diff --git a/drivers/gpu/drm/drm_crtc_helper.c > b/drivers/gpu/drm/drm_crtc_helper.c index 1227adf..7105168 100644 > --- a/drivers/gpu/drm/drm_crtc_helper.c > +++ b/drivers/gpu/drm/drm_crtc_helper.c > @@ -39,6 +39,24 @@ > #include <drm/drm_fb_helper.h> > #include <drm/drm_edid.h> > > +void drm_helper_move_panel_connectors_to_head(struct drm_device *dev) > +{ > + struct drm_connector *connector, *tmp; > + struct list_head panel_list; > + > + INIT_LIST_HEAD(&panel_list); > + > + 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) > + list_move_tail(&connector->head, &panel_list); > + } > + > + list_splice(&panel_list, &dev->mode_config.connector_list); > +} > +EXPORT_SYMBOL(drm_helper_move_panel_connectors_to_head); > + > static bool drm_kms_helper_poll = true; > module_param_named(poll, drm_kms_helper_poll, bool, 0600); > > diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h > index e01cc80..defee28 100644 > --- a/include/drm/drm_crtc_helper.h > +++ b/include/drm/drm_crtc_helper.h > @@ -137,6 +137,8 @@ extern bool drm_helper_encoder_in_use(struct drm_encoder > *encoder); > > extern void drm_helper_connector_dpms(struct drm_connector *connector, int > mode); > > +extern void drm_helper_move_panel_connectors_to_head(struct drm_device *); > + > extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb, > struct drm_mode_fb_cmd2 *mode_cmd); -- Regards, Laurent Pinchart