[PATCH] drm/i915: don't preserve inherited configs with nothing on

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It can be corrected later and may be what was actually desired, but
generally isn't, so if we find nothing is enabled, let the core DRM fb
helper figure something out.

Signed-off-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
---
 drivers/gpu/drm/i915/intel_fbdev.c |   24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index 85bfb3d..a7b398e 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -288,7 +288,17 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
 				    struct drm_display_mode **modes,
 				    bool *enabled, int width, int height)
 {
+	struct drm_device *dev = fb_helper->dev;
 	int i, j;
+	bool *save_enabled;
+	bool any_enabled = false;
+
+	save_enabled = kcalloc(dev->mode_config.num_connector, sizeof(bool),
+			       GFP_KERNEL);
+	if (!save_enabled)
+		return false;
+
+	memcpy(save_enabled, enabled, dev->mode_config.num_connector);
 
 	for (i = 0; i < fb_helper->connector_count; i++) {
 		struct drm_fb_helper_connector *fb_conn;
@@ -320,8 +330,10 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
 		 * match the BIOS.
 		 */
 		for (j = 0; j < fb_helper->connector_count; j++) {
-			if (crtcs[j] == new_crtc)
-				return false;
+			if (crtcs[j] == new_crtc) {
+				any_enabled = false;
+				goto out;
+			}
 		}
 
 		DRM_DEBUG_KMS("looking for cmdline mode on connector %d\n",
@@ -361,6 +373,14 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
 			      drm_get_connector_name(connector),
 			      encoder->crtc->base.id,
 			      modes[i]->name);
+
+		any_enabled = true;
+	}
+
+out:
+	if (!any_enabled) {
+		memcpy(enabled, save_enabled, dev->mode_config.num_connector);
+		return false;
 	}
 
 	return true;
-- 
1.7.9.5

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux