Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: honor forced connector modes v2
@ 2014-02-20 20:28 Jesse Barnes
  2014-02-20 20:48 ` Chris Wilson
  2014-03-04 18:13 ` Daniel Vetter
  0 siblings, 2 replies; 3+ messages in thread
From: Jesse Barnes @ 2014-02-20 20:28 UTC (permalink / raw)
  To: intel-gfx

In the move over to use BIOS connector configs, we lost the ability to
force a specific set of connectors on or off.  Try to remedy that by
dropping back to the old behavior if we detect a hard coded connector
config.

v2: don't deref connector state for disabled connectors (Jesse)

Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_fbdev.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index 7693728..5935544 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -293,6 +293,24 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
 	bool *save_enabled;
 	bool any_enabled = false;
 
+	/*
+	 * If the user specified any force options, just bail here
+	 * and use that config.
+	 */
+	for (i = 0; i < fb_helper->connector_count; i++) {
+		struct drm_fb_helper_connector *fb_conn;
+		struct drm_connector *connector;
+
+		fb_conn = fb_helper->connector_info[i];
+		connector = fb_conn->connector;
+
+		if (!enabled[i])
+			continue;
+
+		if (connector->force != DRM_FORCE_UNSPECIFIED)
+			return false;
+	}
+
 	save_enabled = kcalloc(dev->mode_config.num_connector, sizeof(bool),
 			       GFP_KERNEL);
 	if (!save_enabled)
-- 
1.7.9.5

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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/i915: honor forced connector modes v2
  2014-02-20 20:28 [PATCH] drm/i915: honor forced connector modes v2 Jesse Barnes
@ 2014-02-20 20:48 ` Chris Wilson
  2014-03-04 18:13 ` Daniel Vetter
  1 sibling, 0 replies; 3+ messages in thread
From: Chris Wilson @ 2014-02-20 20:48 UTC (permalink / raw)
  To: Jesse Barnes; +Cc: intel-gfx

On Thu, Feb 20, 2014 at 12:28:07PM -0800, Jesse Barnes wrote:
> In the move over to use BIOS connector configs, we lost the ability to
> force a specific set of connectors on or off.  Try to remedy that by
> dropping back to the old behavior if we detect a hard coded connector
> config.
> 
> v2: don't deref connector state for disabled connectors (Jesse)
> 
> Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

Borrowing this idea, but extending it to only bail if we need to turn
stuff on (i.e. helps with video=LVDS:d etc):

diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index 19be4bfbcc59..6feacf574697 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -312,8 +312,18 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
 			continue;
 		}
 
+		if (connector->force == DRM_FORCE_OFF) {
+			DRM_DEBUG_KMS("connector %d is disabled by user, skipping\n",
+				      connector->base.id);
+			enabled[i] = false;
+			continue;
+		}
+
 		encoder = connector->encoder;
 		if (!encoder || WARN_ON(!encoder->crtc)) {
+			if (connector->force > DRM_FORCE_OFF)
+				goto bail;
+
 			DRM_DEBUG_KMS("connector %d has no encoder or crtc, skipping\n",
 				      connector->base.id);
 			enabled[i] = false;
@@ -327,12 +337,9 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
 		 * with a single CRTC, since our cloning support may not
 		 * match the BIOS.
 		 */
-		for (j = 0; j < fb_helper->connector_count; j++) {
-			if (crtcs[j] == new_crtc) {
-				any_enabled = false;
-				goto out;
-			}
-		}
+		for (j = 0; j < fb_helper->connector_count; j++)
+			if (crtcs[j] == new_crtc)
+				goto bail;
 
 		DRM_DEBUG_KMS("looking for cmdline mode on connector %d\n",
 			      fb_conn->connector->base.id);
@@ -375,8 +382,8 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
 		any_enabled = true;
 	}
 
-out:
 	if (!any_enabled) {
+bail:
 		memcpy(enabled, save_enabled, dev->mode_config.num_connector);
 		kfree(save_enabled);
 		return false;


-- 
Chris Wilson, Intel Open Source Technology Centre

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/i915: honor forced connector modes v2
  2014-02-20 20:28 [PATCH] drm/i915: honor forced connector modes v2 Jesse Barnes
  2014-02-20 20:48 ` Chris Wilson
@ 2014-03-04 18:13 ` Daniel Vetter
  1 sibling, 0 replies; 3+ messages in thread
From: Daniel Vetter @ 2014-03-04 18:13 UTC (permalink / raw)
  To: Jesse Barnes; +Cc: intel-gfx

On Thu, Feb 20, 2014 at 12:28:07PM -0800, Jesse Barnes wrote:
> In the move over to use BIOS connector configs, we lost the ability to
> force a specific set of connectors on or off.  Try to remedy that by
> dropping back to the old behavior if we detect a hard coded connector
> config.
> 
> v2: don't deref connector state for disabled connectors (Jesse)
> 
> Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

Queued for -next, thanks for the patch.
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_fbdev.c |   18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
> index 7693728..5935544 100644
> --- a/drivers/gpu/drm/i915/intel_fbdev.c
> +++ b/drivers/gpu/drm/i915/intel_fbdev.c
> @@ -293,6 +293,24 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
>  	bool *save_enabled;
>  	bool any_enabled = false;
>  
> +	/*
> +	 * If the user specified any force options, just bail here
> +	 * and use that config.
> +	 */
> +	for (i = 0; i < fb_helper->connector_count; i++) {
> +		struct drm_fb_helper_connector *fb_conn;
> +		struct drm_connector *connector;
> +
> +		fb_conn = fb_helper->connector_info[i];
> +		connector = fb_conn->connector;
> +
> +		if (!enabled[i])
> +			continue;
> +
> +		if (connector->force != DRM_FORCE_UNSPECIFIED)
> +			return false;
> +	}
> +
>  	save_enabled = kcalloc(dev->mode_config.num_connector, sizeof(bool),
>  			       GFP_KERNEL);
>  	if (!save_enabled)
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-03-04 18:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-20 20:28 [PATCH] drm/i915: honor forced connector modes v2 Jesse Barnes
2014-02-20 20:48 ` Chris Wilson
2014-03-04 18:13 ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox