Hi Rob, Pushed to master. Rob. On Wed, 2017-11-01 at 12:50 -0500, Rob Herring wrote: > From: Robert Foss <robert.foss@xxxxxxxxxxxxx> > > Accept DRM_MODE_CONNECTOR_HDMIA connector type. > > Look for primary DrmConnector amongst external connectors > after looking for primary amongst internal ones first. > > Signed-off-by: Robert Foss <robert.foss@xxxxxxxxxxxxx> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > --- > This is needed to get dev boards like DB410c to work. > > drmconnector.cpp | 10 +++++++++- > drmconnector.h | 4 +++- > drmresources.cpp | 16 ++++++++++++++-- > 3 files changed, 26 insertions(+), 4 deletions(-) > > diff --git a/drmconnector.cpp b/drmconnector.cpp > index ccb38e2f00dc..247f56bde748 100644 > --- a/drmconnector.cpp > +++ b/drmconnector.cpp > @@ -67,11 +67,19 @@ void DrmConnector::set_display(int display) { > display_ = display; > } > > -bool DrmConnector::built_in() const { > +bool DrmConnector::internal() const { > return type_ == DRM_MODE_CONNECTOR_LVDS || type_ == > DRM_MODE_CONNECTOR_eDP || > type_ == DRM_MODE_CONNECTOR_DSI || type_ == > DRM_MODE_CONNECTOR_VIRTUAL; > } > > +bool DrmConnector::external() const { > + return type_ == DRM_MODE_CONNECTOR_HDMIA; > +} > + > +bool DrmConnector::valid_type() const { > + return internal() || external(); > +} > + > int DrmConnector::UpdateModes() { > int fd = drm_->fd(); > > diff --git a/drmconnector.h b/drmconnector.h > index e1488bb42a9a..5601e069f003 100644 > --- a/drmconnector.h > +++ b/drmconnector.h > @@ -44,7 +44,9 @@ class DrmConnector { > int display() const; > void set_display(int display); > > - bool built_in() const; > + bool internal() const; > + bool external() const; > + bool valid_type() const; > > int UpdateModes(); > > diff --git a/drmresources.cpp b/drmresources.cpp > index 67a853c587b3..32dd37636e73 100644 > --- a/drmresources.cpp > +++ b/drmresources.cpp > @@ -154,16 +154,28 @@ int DrmResources::Init() { > break; > } > > - if (conn->built_in() && !found_primary) { > + connectors_.emplace_back(std::move(conn)); > + } > + > + // First look for primary amongst internal connectors > + for (auto &conn : connectors_) { > + if (conn->internal() && !found_primary) { > conn->set_display(0); > found_primary = true; > } else { > conn->set_display(display_num); > ++display_num; > } > + } > > - connectors_.emplace_back(std::move(conn)); > + // Then look for primary amongst external connectors > + for (auto &conn : connectors_) { > + if (conn->external() && !found_primary) { > + conn->set_display(0); > + found_primary = true; > + } > } > + > if (res) > drmModeFreeResources(res); >
Attachment:
signature.asc
Description: This is a digitally signed message part
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel