Re: [PATCH hwc] drm_hwcomposer: Add HDMI connector as a valid type

2017-11-01 Thread Robert Foss
Hi Rob,

Pushed to master.


Rob.

On Wed, 2017-11-01 at 12:50 -0500, Rob Herring wrote:
> From: Robert Foss 
> 
> 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 
> Signed-off-by: Rob Herring 
> ---
> 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  : 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  : connectors_) {
> +if (conn->external() && !found_primary) {
> +  conn->set_display(0);
> +  found_primary = true;
> +}
>}
> +
>if (res)
>  drmModeFreeResources(res);
>  

signature.asc
Description: This is a digitally signed message part
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH hwc] drm_hwcomposer: Add HDMI connector as a valid type

2017-11-01 Thread Rob Herring
From: Robert Foss 

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 
Signed-off-by: Rob Herring 
---
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  : 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  : connectors_) {
+if (conn->external() && !found_primary) {
+  conn->set_display(0);
+  found_primary = true;
+}
   }
+
   if (res)
 drmModeFreeResources(res);
 
-- 
2.14.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel